JPH065507B2 - 推論計算機 - Google Patents
推論計算機Info
- Publication number
- JPH065507B2 JPH065507B2 JP61185043A JP18504386A JPH065507B2 JP H065507 B2 JPH065507 B2 JP H065507B2 JP 61185043 A JP61185043 A JP 61185043A JP 18504386 A JP18504386 A JP 18504386A JP H065507 B2 JPH065507 B2 JP H065507B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- argument
- tag
- bits
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は推論計算機に係り、特にユニフィケーション処
理の実行速度を高速化するために好適な、タグを用いた
推論計算機に関する。
理の実行速度を高速化するために好適な、タグを用いた
推論計算機に関する。
従来のユニフィケーション処理では、情報処理学会第3
0回全国大会講演論文集(1985年)「並列推論マシ
ンPIM−Rにおけるプロセス内部表現」(6C−7,
P.197)に示すごとく、ゴール側とクローズ側の引
数を表わすデータにタグ部を設け、そのタグにより引数
の種類を識別し次の処理を決定していた。しかしタグ部
をデータ内から取り出す処理は、プログラムで記述され
ており、データをマスクし、ビットをシフトさせること
により行なわれていた。
0回全国大会講演論文集(1985年)「並列推論マシ
ンPIM−Rにおけるプロセス内部表現」(6C−7,
P.197)に示すごとく、ゴール側とクローズ側の引
数を表わすデータにタグ部を設け、そのタグにより引数
の種類を識別し次の処理を決定していた。しかしタグ部
をデータ内から取り出す処理は、プログラムで記述され
ており、データをマスクし、ビットをシフトさせること
により行なわれていた。
〔発明が解決しようとする問題点〕 この方式では、タグ部をデータから取り出す処理だけで
も多大のステップ数即ち時間を要し、しかもコール側
と、クローズ側の引数に対して、それぞれ同じ処理が必
要である。その為に1度のユニフィケーション処理を行
なう毎に、同じ処理を2度も繰り返さなければ、ゴール
側とクローズ側の引数同士の組み合わせを知ることはで
きなかった。
も多大のステップ数即ち時間を要し、しかもコール側
と、クローズ側の引数に対して、それぞれ同じ処理が必
要である。その為に1度のユニフィケーション処理を行
なう毎に、同じ処理を2度も繰り返さなければ、ゴール
側とクローズ側の引数同士の組み合わせを知ることはで
きなかった。
従って、タグによる引数の識別や引数同士の組み合わせ
による次の処理ルーチンの決定とそこへの分岐などとい
った一連の処理を考え合わせると、ユニフィケーション
の前処理に当たる「引数の組み合わせに従った処理の分
岐」は、実行過程が複雑で時間も掛かった。以上の様
に、上記文献に示される様な従来のユニフィケーション
処理では、以上で述べた一例の処理、しいてはユニフィ
ケーション全体の処理の高速化の点に問題があった。
による次の処理ルーチンの決定とそこへの分岐などとい
った一連の処理を考え合わせると、ユニフィケーション
の前処理に当たる「引数の組み合わせに従った処理の分
岐」は、実行過程が複雑で時間も掛かった。以上の様
に、上記文献に示される様な従来のユニフィケーション
処理では、以上で述べた一例の処理、しいてはユニフィ
ケーション全体の処理の高速化の点に問題があった。
本発明の目的は、処理手順(ステップ数)が少なく、従
って、処理時間が短く、より高速で効率の良い、タグを
用いたデータ処理装置を提供することにある。
って、処理時間が短く、より高速で効率の良い、タグを
用いたデータ処理装置を提供することにある。
プロログ(Prolog)実行における主要な処理がユ
ニフィケーション(統一化)処理である。その処理は、
対応する述語内のゴール側とクローズ側の引数同士の比
較と書き込みである。この処理は、処理される引数の種
類によって異なる。またこの引数の種類は、一般にデー
タ内のタグ部に示されている。従って、引数同士の比
較、書き込み処理は、データ内のタグ部を取り出し、タ
グの内容により対応するルーチンへ制御を移して行なわ
れる。
ニフィケーション(統一化)処理である。その処理は、
対応する述語内のゴール側とクローズ側の引数同士の比
較と書き込みである。この処理は、処理される引数の種
類によって異なる。またこの引数の種類は、一般にデー
タ内のタグ部に示されている。従って、引数同士の比
較、書き込み処理は、データ内のタグ部を取り出し、タ
グの内容により対応するルーチンへ制御を移して行なわ
れる。
以上の処理の中で、タグ部を取り出して対応するルーチ
ンを識別し、制御を移す部分に注目した。従来この処理
はプログラムにより記述され、データをマスクしてタグ
部を取り出し、タグの内容によりその引数の種類に対応
したルーチンへ制御を移していた。この処理は、処理手
順(実行ステップ数)が多い上に、ゴールの引数とタグ
の引数の2回に分けて同様な処理を行なっていた。つま
り、ユニフィケーションされるゴールとクローズの引数
が、対応する処理ルーチンに渡されるまでに、手順の多
い処理が2度も必要であった。
ンを識別し、制御を移す部分に注目した。従来この処理
はプログラムにより記述され、データをマスクしてタグ
部を取り出し、タグの内容によりその引数の種類に対応
したルーチンへ制御を移していた。この処理は、処理手
順(実行ステップ数)が多い上に、ゴールの引数とタグ
の引数の2回に分けて同様な処理を行なっていた。つま
り、ユニフィケーションされるゴールとクローズの引数
が、対応する処理ルーチンに渡されるまでに、手順の多
い処理が2度も必要であった。
この処理をゴール側クローズ側両者同時に1度で済ませ
ることができれば、ユニフィケーション処理の高速化に
通ずる。その為には、 1)データからのタグ部の取り出し。
ることができれば、ユニフィケーション処理の高速化に
通ずる。その為には、 1)データからのタグ部の取り出し。
2)タグによる分岐先ルーチンのアドレスの決定。
3)そのアドレスに従った処理の分岐。
といった一連の処理を、ゴール側クローズ側両者同時
に、しかも1命令で実行できる装置が必要である。そこ
で、上記の様な機能を持ったハードウエア装置を設ける
ことにより、先に述べた高速化の目的を実現しようとす
るのが本発明である。
に、しかも1命令で実行できる装置が必要である。そこ
で、上記の様な機能を持ったハードウエア装置を設ける
ことにより、先に述べた高速化の目的を実現しようとす
るのが本発明である。
〔発明の実施例〕 以下、本発明の一実施例を図面により詳細に説明する。
まず第2図は、本発明による「タグを用いたデータ処理
装置」の一実施例における処理のフロー・チャートであ
る。ここには、オペランドのタグ部を取り出すところか
ら、プログラムが分岐するところまでを表わしてある。
装置」の一実施例における処理のフロー・チャートであ
る。ここには、オペランドのタグ部を取り出すところか
ら、プログラムが分岐するところまでを表わしてある。
第3図は、第2図のフロー・チャートで表わされる一実
施例の概略構成を示す図である。1はオペレーション・
コードとオペランド(実際はアドレス)3つが納められ
た命令語のレジスタ、2はプログラムやデータが納めら
れた主記憶ユニット、3は主記憶ユニット2にアクセス
しデータなどを取り出す(フェッチする)アドレス・フ
ェッチ回路、4は命令語レジスタ内のオペレーション・
コードによりデータの流れやタイミングなどを制御する
命令制御回路、5はオペランドのタグ部に演算を加えて
分岐先アドレスを作り出す演算器であり、第1図に示す
ごとく5個のデータ・レジスタと、1個ずつのビット・
シフタと加算器から成る。
施例の概略構成を示す図である。1はオペレーション・
コードとオペランド(実際はアドレス)3つが納められ
た命令語のレジスタ、2はプログラムやデータが納めら
れた主記憶ユニット、3は主記憶ユニット2にアクセス
しデータなどを取り出す(フェッチする)アドレス・フ
ェッチ回路、4は命令語レジスタ内のオペレーション・
コードによりデータの流れやタイミングなどを制御する
命令制御回路、5はオペランドのタグ部に演算を加えて
分岐先アドレスを作り出す演算器であり、第1図に示す
ごとく5個のデータ・レジスタと、1個ずつのビット・
シフタと加算器から成る。
主記憶ユニット2から、命令が、アドレス・フェッチ回
路3を介して命令語レジスタ1へ送られる。この中のオ
ペランドのアドレス・コードに従って、アドレス・フェ
ッチ回路3が主記憶ユニット2からオペランドをフェッ
チし、またアドレス・フェッチ回路3を介してオペラン
ドをアドレス演算器5へ送る。命令語レジスタ1内のオ
ペレーション・コードからは、命令制御回路4へ信号が
送られ、そこからアドレス・フェッチ回路3とアドレス
演算器5へ制御信号が送られる。
路3を介して命令語レジスタ1へ送られる。この中のオ
ペランドのアドレス・コードに従って、アドレス・フェ
ッチ回路3が主記憶ユニット2からオペランドをフェッ
チし、またアドレス・フェッチ回路3を介してオペラン
ドをアドレス演算器5へ送る。命令語レジスタ1内のオ
ペレーション・コードからは、命令制御回路4へ信号が
送られ、そこからアドレス・フェッチ回路3とアドレス
演算器5へ制御信号が送られる。
以上の様な概略構成で、分岐先アドレスが求まり、プロ
グラムの制御がそこへ移る。
グラムの制御がそこへ移る。
第1図は、上記第3図の詳細構成を表わす図である。こ
の図の構成で、第2図のフローに従って処理が進んでい
く。以下図に従って説明していく。
の図の構成で、第2図のフローに従って処理が進んでい
く。以下図に従って説明していく。
まず主記憶(MS)2以上のプログラムの中から、命令
(INST)21が取り出され、命令語レジスタ(I
R)1へアドレス・フェッチ回路(AFC)3を介して
送られる。その命令のオペレーション・コード(OC)
11から、命令制御回路(ICC)4へ制御信号200
が送られ、それに基づいて第2図に示されるような処理
の制御が開始される。IR1の第1オペランド・アドレ
ス(第1OPA)12と第2オペランド・アドレス(第
2OPA)13から、AFC3を介して第1オペランド
(第1OP)22と第2オペランド(第2OP)23が
フェッチされ、AFC3を介してそれぞれデータ・レジ
スタ(DR1)51データ・レジスタ(DR2)52へ
送られる。この時点でDR1 51にはゴール側引数の
データが、DR2 52にはクローズ側引数のデータが
格納されている。DR1 51のタグ部(T)511
と、DR2 52のタグ部(T)521とから、それぞ
れ上位3ビットを取り出し、データ線107と108を
通して、データ・レジスタ3(DR3)53へ送られ
る。このレジスタ内のデータ形式を第6図に示すが、6
ビット・データ内の上位3ビット(B1)531がゴー
ル側、下位3ビット(B2)532がクローズ側のタグ
のビット群で形成される。
(INST)21が取り出され、命令語レジスタ(I
R)1へアドレス・フェッチ回路(AFC)3を介して
送られる。その命令のオペレーション・コード(OC)
11から、命令制御回路(ICC)4へ制御信号200
が送られ、それに基づいて第2図に示されるような処理
の制御が開始される。IR1の第1オペランド・アドレ
ス(第1OPA)12と第2オペランド・アドレス(第
2OPA)13から、AFC3を介して第1オペランド
(第1OP)22と第2オペランド(第2OP)23が
フェッチされ、AFC3を介してそれぞれデータ・レジ
スタ(DR1)51データ・レジスタ(DR2)52へ
送られる。この時点でDR1 51にはゴール側引数の
データが、DR2 52にはクローズ側引数のデータが
格納されている。DR1 51のタグ部(T)511
と、DR2 52のタグ部(T)521とから、それぞ
れ上位3ビットを取り出し、データ線107と108を
通して、データ・レジスタ3(DR3)53へ送られ
る。このレジスタ内のデータ形式を第6図に示すが、6
ビット・データ内の上位3ビット(B1)531がゴー
ル側、下位3ビット(B2)532がクローズ側のタグ
のビット群で形成される。
ここを出た6ビット・データは、データ線109を通り
2ビットのビット・シフタ(BS)54へ送られる。こ
のBS54において、6ビット・データは左へ2ビット
だけシフトされ、右端の2ビットに0が代入され8ビッ
ト・データに変えられる。
2ビットのビット・シフタ(BS)54へ送られる。こ
のBS54において、6ビット・データは左へ2ビット
だけシフトされ、右端の2ビットに0が代入され8ビッ
ト・データに変えられる。
この8ビット・データは、データ線110を通り、アド
レス加算器(ADDER)56へ入力される。ADDE
R56のもう一方の入力は、IR1の第3OPA14か
らAFC3を介してフェッチされ、データ・レジスタ
(DR4)55からデータ線111で入力される第3O
P24であり、これは第7図で示されるルーチン・アド
レス・テーブル(RAT)25のオリジン(RATO)
26を示しているアドレスである。(ADDER56の
2つの入力は足し合わされて、データ・レジスタ57と
AFC3を介してMS2内に格納されている上記RAT
25のエントリ27を指し示すアドレスとなる。つまり
BS54の出力の8ビット・データがRATO26から
のエントリ27のディスプレイスメント28を表わして
いることになる。このエントリ27の中には、分岐先ア
ドレス(BDA:ブランチ・ディストネーション・アド
レス)27′が格納されている。
レス加算器(ADDER)56へ入力される。ADDE
R56のもう一方の入力は、IR1の第3OPA14か
らAFC3を介してフェッチされ、データ・レジスタ
(DR4)55からデータ線111で入力される第3O
P24であり、これは第7図で示されるルーチン・アド
レス・テーブル(RAT)25のオリジン(RATO)
26を示しているアドレスである。(ADDER56の
2つの入力は足し合わされて、データ・レジスタ57と
AFC3を介してMS2内に格納されている上記RAT
25のエントリ27を指し示すアドレスとなる。つまり
BS54の出力の8ビット・データがRATO26から
のエントリ27のディスプレイスメント28を表わして
いることになる。このエントリ27の中には、分岐先ア
ドレス(BDA:ブランチ・ディストネーション・アド
レス)27′が格納されている。
これで、ゴール側とクローズ側の引数のデータ内のタグ
により、分岐先アドレスが求められたので、IR1内の
OC11に従って、ICC4の制御によりプログラムは
BDA27′で示されるルーチンへ分岐される。尚、B
DA27′は引数同士の組み合わせに対応した処理ルー
チンが格納されているMS2上のアドレスである。
により、分岐先アドレスが求められたので、IR1内の
OC11に従って、ICC4の制御によりプログラムは
BDA27′で示されるルーチンへ分岐される。尚、B
DA27′は引数同士の組み合わせに対応した処理ルー
チンが格納されているMS2上のアドレスである。
以上の様に、第1図の構成において第2図のフローに従
って、一命令だけで引数により分岐が行なわれる。
って、一命令だけで引数により分岐が行なわれる。
以下に第1図中の個々の命令やデータやテーブルを図面
により説明する。
により説明する。
まず、第4図はIR1内の命令語の形式を表わす。左か
ら、専用命令のオペレーションコード11,ゴール側引
数のデータの格納されているアドレスを表わす第1オペ
ランド・アドレス12,クローズ側引数のデータの格納
されているアドレスを表わす第2オペランド・アドレス
13,ルーチン・アドレス・テーブル(分岐先アドレス
が格納された、主記憶上にある表)のオリジン(開始ア
ドレス)を表わす第3オペランド・アドレスである。1
1からは、命令制御回路4へ制御信号200が、12,
13,14からは、アドレス・フェッチ回路3へ、デー
タ信号(それぞれ1021,1022,1023)が出
ている。
ら、専用命令のオペレーションコード11,ゴール側引
数のデータの格納されているアドレスを表わす第1オペ
ランド・アドレス12,クローズ側引数のデータの格納
されているアドレスを表わす第2オペランド・アドレス
13,ルーチン・アドレス・テーブル(分岐先アドレス
が格納された、主記憶上にある表)のオリジン(開始ア
ドレス)を表わす第3オペランド・アドレスである。1
1からは、命令制御回路4へ制御信号200が、12,
13,14からは、アドレス・フェッチ回路3へ、デー
タ信号(それぞれ1021,1022,1023)が出
ている。
第5図は、第1,第2オペランド・アドレス12,13
により示され、アドレス・フェッチ回路3により取り出
される。第1,第2オペランドのデータ形式を表わす。
これは、第3図のデータ・レジスタ51,52の中身で
もある。データの形式は、ゴール側もクローズ側も共通
で、タグ部を含んだデータ全体の長さは4バイト(32
ビット)、その内上位1バイト(8ビット)がタグ部5
11に当たり、残りの下位3バイトがデータ部512で
ある。本実施例では、分岐の為の引数の種類の識別に
は、8ビットあるタグの内の上位3ビットのみを用いて
いる。データ・レジスタ1,51内に格納されたデータ
の場合では、上位3ビットがデータ信号107として取
り出され、データ・レジスタ53の上位3ビット531
の入力となる。尚、この取り出される(引数の種類の識
別に利用される)タグのビット数(副)は、3ビットに
限ることはなく、場合に応じて8ビット以下ならば幾つ
でも良い。
により示され、アドレス・フェッチ回路3により取り出
される。第1,第2オペランドのデータ形式を表わす。
これは、第3図のデータ・レジスタ51,52の中身で
もある。データの形式は、ゴール側もクローズ側も共通
で、タグ部を含んだデータ全体の長さは4バイト(32
ビット)、その内上位1バイト(8ビット)がタグ部5
11に当たり、残りの下位3バイトがデータ部512で
ある。本実施例では、分岐の為の引数の種類の識別に
は、8ビットあるタグの内の上位3ビットのみを用いて
いる。データ・レジスタ1,51内に格納されたデータ
の場合では、上位3ビットがデータ信号107として取
り出され、データ・レジスタ53の上位3ビット531
の入力となる。尚、この取り出される(引数の種類の識
別に利用される)タグのビット数(副)は、3ビットに
限ることはなく、場合に応じて8ビット以下ならば幾つ
でも良い。
第6図は、データ・レジスタ53内の6ビット・データ
の内部形式を表わす。ビット0からビット2までの上位
3ビット531は、第1オペランドであるゴール側の引
数が格納されたデータ・レジスタ51から、タグの上位
3ビットがデータ信号107として入力され作られる。
同様にビット3からビット5までの下位3ビット532
は、第2オペランドであるクローズ側の引数が格納され
たデータ・レジスタ52から、タグの上位3ビットがデ
ータ信号108として入力され作られる。この様にして
作られた6ビットのデータは、データ信号109として
ビット・シフタ54へ送られる。
の内部形式を表わす。ビット0からビット2までの上位
3ビット531は、第1オペランドであるゴール側の引
数が格納されたデータ・レジスタ51から、タグの上位
3ビットがデータ信号107として入力され作られる。
同様にビット3からビット5までの下位3ビット532
は、第2オペランドであるクローズ側の引数が格納され
たデータ・レジスタ52から、タグの上位3ビットがデ
ータ信号108として入力され作られる。この様にして
作られた6ビットのデータは、データ信号109として
ビット・シフタ54へ送られる。
第7図は、分岐先ルーチンのアドレスが格納されている
ルーチン・アドレス・テーブル25を表わす。先に記し
た様にこのテーブルは主記憶上の連続した領域に取ら
れ、そのオリジン26は第3オペランドにより示され
る。第1と第2オペランドのタグによって作られた8ビ
ット・データは、オリジンからのディスプレイメント2
8を表わし、第3オペランドと足し合わされるとその結
果はテーブル内のエントリ27を示すアドレスとなる。
このエントリ内に、引数の組合せに対応した分岐先ルー
チンのアドレス(ブランチ・ディスティネーション・ア
ドレス27′)が格納されており、このアドレスへプロ
グラムは分岐する。エントリ27は、3ビットと3ビッ
トの組合せの数である64個存在し、その中身は同一ア
ドレスが存在しても良く、引数同士の組み合わせに対応
する処理のアドレスを配置する。またこのエントリ27
の幅は4バイト(32ビット)で、32ビット・アドレ
シング・モードでアドレスを格納されていても、上位8
ビットを何等かの制御ビットに用いた24ビット・アド
レシング・モードで格納されていても良い。テーブル2
5のエントリ27は、アドレス加算器56を出で、デー
タ・レジスタ5とアドレス・フェッチ回路3を介した、
データ信号106によって指し示される。
ルーチン・アドレス・テーブル25を表わす。先に記し
た様にこのテーブルは主記憶上の連続した領域に取ら
れ、そのオリジン26は第3オペランドにより示され
る。第1と第2オペランドのタグによって作られた8ビ
ット・データは、オリジンからのディスプレイメント2
8を表わし、第3オペランドと足し合わされるとその結
果はテーブル内のエントリ27を示すアドレスとなる。
このエントリ内に、引数の組合せに対応した分岐先ルー
チンのアドレス(ブランチ・ディスティネーション・ア
ドレス27′)が格納されており、このアドレスへプロ
グラムは分岐する。エントリ27は、3ビットと3ビッ
トの組合せの数である64個存在し、その中身は同一ア
ドレスが存在しても良く、引数同士の組み合わせに対応
する処理のアドレスを配置する。またこのエントリ27
の幅は4バイト(32ビット)で、32ビット・アドレ
シング・モードでアドレスを格納されていても、上位8
ビットを何等かの制御ビットに用いた24ビット・アド
レシング・モードで格納されていても良い。テーブル2
5のエントリ27は、アドレス加算器56を出で、デー
タ・レジスタ5とアドレス・フェッチ回路3を介した、
データ信号106によって指し示される。
上述の実施例では、引例のタグの上位ビットを取り出
し、それを並べて、その後シフトさせることによってア
ドレスを形成していた。しかし、本発明におけるタグに
よるアドレスの形成部分には、他の方法も存在し、それ
に対応した装置が考えられる。以下に第2の実施例とし
て、前記の実施例とは異なった装置を図面により説明す
る。
し、それを並べて、その後シフトさせることによってア
ドレスを形成していた。しかし、本発明におけるタグに
よるアドレスの形成部分には、他の方法も存在し、それ
に対応した装置が考えられる。以下に第2の実施例とし
て、前記の実施例とは異なった装置を図面により説明す
る。
まず、タグによりアドレスを形成する部分は、装置の概
略構成を示した第3図によると、アドレス演算器5の中
の一部であり、他の部分の構成は最初の実施例と変わら
ない。装置の詳細構成を第8図に示す。図中で破線に囲
まれた部分が、前の実施例と異なる所で、他の部分は第
1図と同じである。
略構成を示した第3図によると、アドレス演算器5の中
の一部であり、他の部分の構成は最初の実施例と変わら
ない。装置の詳細構成を第8図に示す。図中で破線に囲
まれた部分が、前の実施例と異なる所で、他の部分は第
1図と同じである。
信号の流れを説明すると、まずデータ・レジスタ51と
データ・レジスタ52のタグ部が、それぞれ信号線10
7と108を通してPLA(プログラマブル・ロジック
・アレイ)58に入力される。PLA58は、ICC4
から制御信号206によって制御される。PLA58に
おいて、入力のタグの組み合わせに対応した出力が選ば
れる。その出力が、タグにより形成されたアドレスであ
り、前の実施例においては、第1図のビット・シフタ5
4の出力に当たる。先に述べた様に、このアドレスは分
岐先アドレス・テーブル25のオリジン26からのディ
スプレイスメント28になっている。
データ・レジスタ52のタグ部が、それぞれ信号線10
7と108を通してPLA(プログラマブル・ロジック
・アレイ)58に入力される。PLA58は、ICC4
から制御信号206によって制御される。PLA58に
おいて、入力のタグの組み合わせに対応した出力が選ば
れる。その出力が、タグにより形成されたアドレスであ
り、前の実施例においては、第1図のビット・シフタ5
4の出力に当たる。先に述べた様に、このアドレスは分
岐先アドレス・テーブル25のオリジン26からのディ
スプレイスメント28になっている。
後の処理は、第1図と同様で、PLA58を出た出力ア
ドレスは、データ線113を通じてデータ・レジスタ5
9へ送られる。ICC4から制御信号207によって制
御されるデータ・レジスタ59は、アドレス信号をデー
タ線114を通じて、アドレス加算器56の1方の入力
として送り込む。
ドレスは、データ線113を通じてデータ・レジスタ5
9へ送られる。ICC4から制御信号207によって制
御されるデータ・レジスタ59は、アドレス信号をデー
タ線114を通じて、アドレス加算器56の1方の入力
として送り込む。
その後は、構成も信号の流れも第3図と同様で、前の実
施例と変わらない。尚この実施例において、データ・レ
ジスタ1と2から取り出されるタグのビット数は、前回
の様に3ビットに限らず、8ビット以下なら自由に選べ
る。またPLA58の出力アドレスも、前回の様に8ビ
ットに限らず、何ビットでも良い。
施例と変わらない。尚この実施例において、データ・レ
ジスタ1と2から取り出されるタグのビット数は、前回
の様に3ビットに限らず、8ビット以下なら自由に選べ
る。またPLA58の出力アドレスも、前回の様に8ビ
ットに限らず、何ビットでも良い。
本発明によれば、従来プログラムにより記述され、数ス
テップを要する上に、ゴール側とクローズ側の引数で2
度に分け同じ処理を繰り返している、データ内からのタ
グ部の読み出し処理が、分岐処理までをも含めてゴール
側,クローズ側同時に、1ステップで実行できる様にな
る。この処理は、述語の引数ひとつひとつ、リストに対
しては要素のひとつひとつに対して行なわれる為に、対
応1述語同士のユニフィケーション1回の間に数回行な
われる。従って、Prolog実行中に行なわれるこの処理の
回数は非常に多い。その為に、この処理が、Prolog実行
処理全体に占める割合も大きい。このことから、本発明
による「タグによるデータの判定,処理の分岐」の処理
の高速化は、Prologの実行速度向上に対して、非常に大
きな効果をもたらす。
テップを要する上に、ゴール側とクローズ側の引数で2
度に分け同じ処理を繰り返している、データ内からのタ
グ部の読み出し処理が、分岐処理までをも含めてゴール
側,クローズ側同時に、1ステップで実行できる様にな
る。この処理は、述語の引数ひとつひとつ、リストに対
しては要素のひとつひとつに対して行なわれる為に、対
応1述語同士のユニフィケーション1回の間に数回行な
われる。従って、Prolog実行中に行なわれるこの処理の
回数は非常に多い。その為に、この処理が、Prolog実行
処理全体に占める割合も大きい。このことから、本発明
による「タグによるデータの判定,処理の分岐」の処理
の高速化は、Prologの実行速度向上に対して、非常に大
きな効果をもたらす。
第1図は第1実施例の詳細な構成を表わす図、第2図は
第1実施例における処理のフロー・チャート、第3図は
実施例の概略の構成を表わす図、第4図は命令語の形式
を表わす図、第5図は第1と第2オペランドのデータの
形式を表わす図、第6図はデータ・レジスタ(第1図内
の53)内の6ビット・データの内部形式を表わす図、
第7図は分岐先アドレス表(ルーチン・アドレス・テー
ブル)を表わす図、第8図は第2実施例の詳細な構成を
表わす図である。 5…アドレス演算器、53…データ・レジスタ、54…
ビット・シフタ、56…アドレス加算器、58…PL
A。
第1実施例における処理のフロー・チャート、第3図は
実施例の概略の構成を表わす図、第4図は命令語の形式
を表わす図、第5図は第1と第2オペランドのデータの
形式を表わす図、第6図はデータ・レジスタ(第1図内
の53)内の6ビット・データの内部形式を表わす図、
第7図は分岐先アドレス表(ルーチン・アドレス・テー
ブル)を表わす図、第8図は第2実施例の詳細な構成を
表わす図である。 5…アドレス演算器、53…データ・レジスタ、54…
ビット・シフタ、56…アドレス加算器、58…PL
A。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森 利明 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 審査官 佐藤 秀一
Claims (1)
- 【請求項1】引数を含むデータ内に引数の種類を表わす
タグ部を設け、ゴールである引数とクローズである引数
同志をユニフィケーション処理する推論計算機におい
て、1つの命令によって前記ゴールである引数と前記ク
ローズである引数とを読み出して、分岐先アドレスが格
納されたテーブルの先頭アドレスからのディスプレイス
メントの上位側ビット群を前記ゴールである引数のタグ
部から形成し、同時に、前記ディスプレイスメントの下
位側のビット群を前記クローズである引数のタグ部から
形成する手段、分岐先アドレスが格納されたテーブルの
先頭アドレスと前記形成されたディスプレイスメントと
を足し合わせて得られるアドレスに対応するルーチンに
制御を移す手段を有することを特徴とする推論計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61185043A JPH065507B2 (ja) | 1986-08-08 | 1986-08-08 | 推論計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61185043A JPH065507B2 (ja) | 1986-08-08 | 1986-08-08 | 推論計算機 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6341933A JPS6341933A (ja) | 1988-02-23 |
| JPH065507B2 true JPH065507B2 (ja) | 1994-01-19 |
Family
ID=16163796
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61185043A Expired - Lifetime JPH065507B2 (ja) | 1986-08-08 | 1986-08-08 | 推論計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH065507B2 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2752081B2 (ja) * | 1988-03-15 | 1998-05-18 | 株式会社東芝 | 電子計算機 |
| JPH0690745B2 (ja) * | 1989-07-14 | 1994-11-14 | 矢崎総業株式会社 | タキシー運行データ収集装置 |
| JPH03132824A (ja) * | 1989-10-19 | 1991-06-06 | Agency Of Ind Science & Technol | 論理型プログラム処理方式 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60107137A (ja) * | 1983-11-15 | 1985-06-12 | Nec Corp | タグ付デ−タ処理装置 |
| JPS6155736A (ja) * | 1984-08-27 | 1986-03-20 | Hitachi Ltd | プロロ−グマシン |
| JPS6162141A (ja) * | 1984-09-04 | 1986-03-31 | Hitachi Ltd | 論理型情報処理装置 |
| JPH0642198B2 (ja) * | 1985-07-08 | 1994-06-01 | 株式会社日立製作所 | デ−タ処理装置 |
-
1986
- 1986-08-08 JP JP61185043A patent/JPH065507B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6341933A (ja) | 1988-02-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4307445A (en) | Microprogrammed control apparatus having a two-level control store for data processor | |
| US5132898A (en) | System for processing data having different formats | |
| US5922065A (en) | Processor utilizing a template field for encoding instruction sequences in a wide-word format | |
| US4228498A (en) | Multibus processor for increasing execution speed using a pipeline effect | |
| EP0743593A1 (en) | Replication of data | |
| US4179731A (en) | Microprogrammed control system | |
| EP0743592A1 (en) | Manipulation of data | |
| US4954943A (en) | Data processing system | |
| EP0744686A1 (en) | Manipulation of data | |
| EP0754998A1 (en) | An arithmetic unit | |
| JPS6217252B2 (ja) | ||
| US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
| EP0552816A2 (en) | Processor to process tagged and untagged data | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| US4587611A (en) | Multiple module control store for use in a data processing system | |
| US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
| JPH065507B2 (ja) | 推論計算機 | |
| NO171816B (no) | Informasjonsbehandlingsenhet | |
| JP2538053B2 (ja) | 制御装置 | |
| AU629007B2 (en) | Apparatus for accelerating store operations in a risc computer | |
| US6049864A (en) | Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor | |
| US4853889A (en) | Arrangement and method for speeding the operation of branch instructions | |
| JPH0527142B2 (ja) | ||
| US5187782A (en) | Data processing system | |
| JPS578851A (en) | Parallel processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |