JPH065507B2 - Inference calculator - Google Patents

Inference calculator

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
Application number
JP61185043A
Other languages
Japanese (ja)
Other versions
JPS6341933A (en
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.)
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 JP61185043A priority Critical patent/JPH065507B2/en
Publication of JPS6341933A publication Critical patent/JPS6341933A/en
Publication of JPH065507B2 publication Critical patent/JPH065507B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は推論計算機に係り、特にユニフィケーション処
理の実行速度を高速化するために好適な、タグを用いた
推論計算機に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an inference computer, and more particularly to a tag-based inference computer suitable for increasing the execution speed of unification processing.

〔従来技術〕[Prior art]

従来のユニフィケーション処理では、情報処理学会第3
0回全国大会講演論文集(1985年)「並列推論マシ
ンPIM−Rにおけるプロセス内部表現」(6C−7,
P.197)に示すごとく、ゴール側とクローズ側の引
数を表わすデータにタグ部を設け、そのタグにより引数
の種類を識別し次の処理を決定していた。しかしタグ部
をデータ内から取り出す処理は、プログラムで記述され
ており、データをマスクし、ビットをシフトさせること
により行なわれていた。
In conventional unification processing, IPSJ 3rd
Proceedings of the 0th Annual Convention (1985) "Process Internal Representation in Parallel Inference Machine PIM-R" (6C-7,
P. As shown in 197), a tag portion is provided in the data representing the arguments on the goal side and the close side, and the type of argument is identified by the tag to determine the next processing. However, the process of extracting the tag portion from the data is described in a program, and is performed by masking the data and shifting the bits.

〔発明が解決しようとする問題点〕 この方式では、タグ部をデータから取り出す処理だけで
も多大のステップ数即ち時間を要し、しかもコール側
と、クローズ側の引数に対して、それぞれ同じ処理が必
要である。その為に1度のユニフィケーション処理を行
なう毎に、同じ処理を2度も繰り返さなければ、ゴール
側とクローズ側の引数同士の組み合わせを知ることはで
きなかった。
[Problems to be Solved by the Invention] In this method, a large number of steps, that is, time is required even for the process of extracting the tag portion from the data, and the same process is performed for the arguments on the calling side and the closing side. is necessary. Therefore, each time a unification process is performed once, the same process must be repeated twice to find out the combination of arguments on the goal side and the close side.

従って、タグによる引数の識別や引数同士の組み合わせ
による次の処理ルーチンの決定とそこへの分岐などとい
った一連の処理を考え合わせると、ユニフィケーション
の前処理に当たる「引数の組み合わせに従った処理の分
岐」は、実行過程が複雑で時間も掛かった。以上の様
に、上記文献に示される様な従来のユニフィケーション
処理では、以上で述べた一例の処理、しいてはユニフィ
ケーション全体の処理の高速化の点に問題があった。
Therefore, considering a series of processes such as the identification of the argument by the tag and the determination of the next processing routine based on the combination of the arguments and the branch to that, "the branch of the processing according to the combination of the arguments" which is the preprocessing of unification. The process was complicated and time consuming. As described above, in the conventional unification processing as shown in the above-mentioned document, there is a problem in that the processing of the above-described example, that is, the processing of the entire unification is speeded up.

本発明の目的は、処理手順(ステップ数)が少なく、従
って、処理時間が短く、より高速で効率の良い、タグを
用いたデータ処理装置を提供することにある。
An object of the present invention is to provide a data processing device using a tag, which has a small processing procedure (the number of steps) and therefore has a short processing time, which is faster and more efficient.

〔問題点を解決するための手段〕[Means for solving problems]

プロログ(Prolog)実行における主要な処理がユ
ニフィケーション(統一化)処理である。その処理は、
対応する述語内のゴール側とクローズ側の引数同士の比
較と書き込みである。この処理は、処理される引数の種
類によって異なる。またこの引数の種類は、一般にデー
タ内のタグ部に示されている。従って、引数同士の比
較、書き込み処理は、データ内のタグ部を取り出し、タ
グの内容により対応するルーチンへ制御を移して行なわ
れる。
The main process in the prolog execution is the unification process. The process is
Comparing and writing the arguments on the goal side and the close side in the corresponding predicate. This process depends on the type of argument processed. The type of this argument is generally indicated in the tag section in the data. Therefore, the comparison and writing processes of the arguments are performed by taking out the tag portion in the data and transferring the control to the corresponding routine according to the contents of the tag.

以上の処理の中で、タグ部を取り出して対応するルーチ
ンを識別し、制御を移す部分に注目した。従来この処理
はプログラムにより記述され、データをマスクしてタグ
部を取り出し、タグの内容によりその引数の種類に対応
したルーチンへ制御を移していた。この処理は、処理手
順(実行ステップ数)が多い上に、ゴールの引数とタグ
の引数の2回に分けて同様な処理を行なっていた。つま
り、ユニフィケーションされるゴールとクローズの引数
が、対応する処理ルーチンに渡されるまでに、手順の多
い処理が2度も必要であった。
In the above process, the tag part is taken out, the corresponding routine is identified, and the control is transferred. Conventionally, this processing is described by a program, data is masked, the tag portion is taken out, and control is transferred to a routine corresponding to the type of the argument depending on the content of the tag. This process has a large number of processing steps (number of execution steps), and is divided into two times, a goal argument and a tag argument, and the same processing is performed. In other words, it takes twice as many processing steps before the unified goal and the closing argument are passed to the corresponding processing routine.

この処理をゴール側クローズ側両者同時に1度で済ませ
ることができれば、ユニフィケーション処理の高速化に
通ずる。その為には、 1)データからのタグ部の取り出し。
If both the goal side and the close side can perform this processing at the same time, the unification processing can be speeded up. For that purpose, 1) Extract the tag part from the data.

2)タグによる分岐先ルーチンのアドレスの決定。2) The tag determines the address of the branch destination routine.

3)そのアドレスに従った処理の分岐。3) Branch of processing according to the address.

といった一連の処理を、ゴール側クローズ側両者同時
に、しかも1命令で実行できる装置が必要である。そこ
で、上記の様な機能を持ったハードウエア装置を設ける
ことにより、先に述べた高速化の目的を実現しようとす
るのが本発明である。
It is necessary to have a device that can execute such a series of processing at the same time on both the goal side and the close side with one instruction. Therefore, the present invention aims to realize the above-described object of speeding up by providing a hardware device having the above-mentioned function.

〔発明の実施例〕 以下、本発明の一実施例を図面により詳細に説明する。BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings.

まず第2図は、本発明による「タグを用いたデータ処理
装置」の一実施例における処理のフロー・チャートであ
る。ここには、オペランドのタグ部を取り出すところか
ら、プログラムが分岐するところまでを表わしてある。
First, FIG. 2 is a flow chart of processing in one embodiment of the "data processing device using tags" according to the present invention. Here, from the point where the tag part of the operand is taken out to the point where the program branches.

第3図は、第2図のフロー・チャートで表わされる一実
施例の概略構成を示す図である。1はオペレーション・
コードとオペランド(実際はアドレス)3つが納められ
た命令語のレジスタ、2はプログラムやデータが納めら
れた主記憶ユニット、3は主記憶ユニット2にアクセス
しデータなどを取り出す(フェッチする)アドレス・フ
ェッチ回路、4は命令語レジスタ内のオペレーション・
コードによりデータの流れやタイミングなどを制御する
命令制御回路、5はオペランドのタグ部に演算を加えて
分岐先アドレスを作り出す演算器であり、第1図に示す
ごとく5個のデータ・レジスタと、1個ずつのビット・
シフタと加算器から成る。
FIG. 3 is a diagram showing a schematic configuration of one embodiment represented by the flow chart of FIG. 1 is operation
An instruction fetch register that stores three codes and operands (actually addresses), 2 is a main memory unit that stores programs and data, and 3 is an address fetch that fetches (fetches) data etc. by accessing the main memory unit 2. Circuit 4 is an operation in the instruction word register
An instruction control circuit 5 for controlling the flow of data, timing, etc. by code is an arithmetic unit for adding a calculation to the tag portion of the operand to generate a branch destination address. As shown in FIG. 1, five data registers and 1 bit each
It consists of a shifter and an adder.

主記憶ユニット2から、命令が、アドレス・フェッチ回
路3を介して命令語レジスタ1へ送られる。この中のオ
ペランドのアドレス・コードに従って、アドレス・フェ
ッチ回路3が主記憶ユニット2からオペランドをフェッ
チし、またアドレス・フェッチ回路3を介してオペラン
ドをアドレス演算器5へ送る。命令語レジスタ1内のオ
ペレーション・コードからは、命令制御回路4へ信号が
送られ、そこからアドレス・フェッチ回路3とアドレス
演算器5へ制御信号が送られる。
The instruction is sent from the main memory unit 2 to the instruction word register 1 via the address fetch circuit 3. The address fetch circuit 3 fetches the operand from the main storage unit 2 according to the address code of the operand in the operand, and sends the operand to the address calculator 5 via the address fetch circuit 3. From the operation code in the instruction word register 1, a signal is sent to the instruction control circuit 4, and from there, a control signal is sent to the address fetch circuit 3 and the address calculator 5.

以上の様な概略構成で、分岐先アドレスが求まり、プロ
グラムの制御がそこへ移る。
With the schematic configuration as described above, the branch destination address is obtained, and the control of the program shifts there.

第1図は、上記第3図の詳細構成を表わす図である。こ
の図の構成で、第2図のフローに従って処理が進んでい
く。以下図に従って説明していく。
FIG. 1 is a diagram showing the detailed configuration of FIG. With the configuration of this figure, the process proceeds according to the flow of FIG. It will be described below with reference to the drawings.

まず主記憶(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がクローズ側のタグ
のビット群で形成される。
First, the instruction (INST) 21 is fetched from the program of the main memory (MS) 2 or more, and the instruction word register (I
R) 1 through the address fetch circuit (AFC) 3. Operation code (OC) of the instruction
11 to the instruction control circuit (ICC) 4 from the control signal 200
Is sent, and control of the process as shown in FIG. 2 is started based on that. From the first operand address (first OPA) 12 and the second operand address (second OPA) 13 of IR1, the first operand (first OP) 22 and the second operand (second OP) 23 are fetched via AFC3, It is sent to the data register (DR1) 51 and the data register (DR2) 52 via the AFC3. At this time, the data of the goal side argument is stored in the DR1 51, and the data of the close side argument is stored in the DR2 52. DR1 51 tag section (T) 511
And the upper 3 bits from the tag portion (T) 521 of the DR2 52, respectively, and sent to the data register 3 (DR3) 53 through the data lines 107 and 108. The data format in this register is shown in FIG.
The high-order 3 bits (B1) 531 in the bit data are formed by the goal side, and the low-order 3 bits (B2) 532 are formed by the bit group of the tag on the close side.

ここを出た6ビット・データは、データ線109を通り
2ビットのビット・シフタ(BS)54へ送られる。こ
のBS54において、6ビット・データは左へ2ビット
だけシフトされ、右端の2ビットに0が代入され8ビッ
ト・データに変えられる。
The 6-bit data that has exited here is sent to the 2-bit bit shifter (BS) 54 through the data line 109. In this BS 54, 6-bit data is shifted to the left by 2 bits and 0 is substituted for the rightmost 2 bits to be converted into 8-bit data.

この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′が格納されている。
This 8-bit data is input to the address adder (ADDER) 56 through the data line 110. ADDE
The other input of R56 is fetched from the third OPA 14 of IR1 through AFC3 and is input from the data register (DR4) 55 through the data line 111 to the third O3.
P24, which is the origin (RATO) of the routine address table (RAT) 25 shown in FIG.
It is an address indicating 26. (The two inputs of ADDER 56 are added together to store the above RAT stored in MS2 via data register 57 and AFC3.
This is an address pointing to the entry 27 of 25. That is, the 8-bit data output from the BS 54 represents the displacement 28 of the entry 27 from the RATO 26. In this entry 27, a branch destination address (BDA: branch destination address) 27 'is stored.

これで、ゴール側とクローズ側の引数のデータ内のタグ
により、分岐先アドレスが求められたので、IR1内の
OC11に従って、ICC4の制御によりプログラムは
BDA27′で示されるルーチンへ分岐される。尚、B
DA27′は引数同士の組み合わせに対応した処理ルー
チンが格納されているMS2上のアドレスである。
Since the branch destination address has been obtained by the tags in the argument data on the goal side and the close side, the program is branched to the routine indicated by BDA27 'under the control of ICC4 according to OC11 in IR1. Incidentally, B
DA27 'is an address on the MS2 where a processing routine corresponding to a combination of arguments is stored.

以上の様に、第1図の構成において第2図のフローに従
って、一命令だけで引数により分岐が行なわれる。
As described above, in the configuration of FIG. 1, according to the flow of FIG. 2, branching is performed by an argument with only one instruction.

以下に第1図中の個々の命令やデータやテーブルを図面
により説明する。
The individual commands, data, and tables in FIG. 1 will be described below with reference to the drawings.

まず、第4図はIR1内の命令語の形式を表わす。左か
ら、専用命令のオペレーションコード11,ゴール側引
数のデータの格納されているアドレスを表わす第1オペ
ランド・アドレス12,クローズ側引数のデータの格納
されているアドレスを表わす第2オペランド・アドレス
13,ルーチン・アドレス・テーブル(分岐先アドレス
が格納された、主記憶上にある表)のオリジン(開始ア
ドレス)を表わす第3オペランド・アドレスである。1
1からは、命令制御回路4へ制御信号200が、12,
13,14からは、アドレス・フェッチ回路3へ、デー
タ信号(それぞれ1021,1022,1023)が出
ている。
First, FIG. 4 shows the format of the instruction word in IR1. From the left, the operation code 11 of the dedicated instruction, the first operand address 12 indicating the address where the goal side argument data is stored, the second operand address 13 indicating the address where the close side argument data is stored, It is a third operand address that represents the origin (start address) of the routine address table (table on main memory in which branch destination addresses are stored). 1
From 1 to 12, the control signal 200 to the instruction control circuit 4, 12,
From 13 and 14, data signals (1021, 1022 and 1023, respectively) are output to the address fetch circuit 3.

第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ビット以下ならば幾つ
でも良い。
FIG. 5 shows the first and second operand addresses 12, 13
And fetched by the address fetch circuit 3. This indicates the data format of the first and second operands.
This is also the content of the data registers 51, 52 of FIG. The data format is the same for both the goal side and the close side, and the length of the entire data including the tag part is 4 bytes (32
Bit), of which the upper 1 byte (8 bits) is the tag part 5
11, the remaining lower 3 bytes are the data portion 512. In the present embodiment, only the upper 3 bits of the 8-bit tag are used to identify the type of argument for branching. In the case of the data stored in the data registers 1 and 51, the upper 3 bits are taken out as the data signal 107, and the upper 3 bits 531 of the data register 53 are extracted.
Will be input. Note that the number of bits (sub) of the tag (used for identifying the type of argument) to be taken out is not limited to 3 bits, and may be any number as long as it is 8 bits or less depending on the case.

第6図は、データ・レジスタ53内の6ビット・データ
の内部形式を表わす。ビット0からビット2までの上位
3ビット531は、第1オペランドであるゴール側の引
数が格納されたデータ・レジスタ51から、タグの上位
3ビットがデータ信号107として入力され作られる。
同様にビット3からビット5までの下位3ビット532
は、第2オペランドであるクローズ側の引数が格納され
たデータ・レジスタ52から、タグの上位3ビットがデ
ータ信号108として入力され作られる。この様にして
作られた6ビットのデータは、データ信号109として
ビット・シフタ54へ送られる。
FIG. 6 shows the internal format of 6-bit data in the data register 53. The high-order 3 bits 531 from bit 0 to bit 2 are created by inputting the high-order 3 bits of the tag as a data signal 107 from the data register 51 in which the argument on the goal side which is the first operand is stored.
Similarly, the lower 3 bits 532 from bit 3 to bit 5
Is generated by inputting the upper 3 bits of the tag as the data signal 108 from the data register 52 that stores the argument on the close side that is the second operand. The 6-bit data thus created is sent to the bit shifter 54 as the data signal 109.

第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によって指し示される。
FIG. 7 shows a routine address table 25 in which the addresses of branch destination routines are stored. As described above, this table is taken in a continuous area in the main memory, and its origin 26 is indicated by the third operand. The 8-bit data produced by the tags of the first and second operand is the displacement 2 from the origin.
8 and is added to the third operand, the result is the address indicating entry 27 in the table.
The address (branch destination address 27 ') of the branch destination routine corresponding to the combination of the arguments is stored in this entry, and the program branches to this address. There are 64 entries 27, which is the number of combinations of 3 bits and 3 bits, and the contents may have the same address, and the address of the process corresponding to the combination of the arguments is arranged. See also this entry 27
Has a width of 4 bytes (32 bits), and even if the address is stored in 32-bit addressing mode, the upper 8
It may be stored in a 24-bit addressing mode in which the bit is used as some control bit. Table 2
Entry 27 of 5 exits the address adder 56 and goes through the data register 5 and the address fetch circuit 3,
It is pointed to by the data signal 106.

上述の実施例では、引例のタグの上位ビットを取り出
し、それを並べて、その後シフトさせることによってア
ドレスを形成していた。しかし、本発明におけるタグに
よるアドレスの形成部分には、他の方法も存在し、それ
に対応した装置が考えられる。以下に第2の実施例とし
て、前記の実施例とは異なった装置を図面により説明す
る。
In the above-described embodiment, the upper bits of the tag of the reference are taken out, arranged, and then shifted to form the address. However, there are other methods for forming the address by the tag in the present invention, and a device corresponding thereto can be considered. As a second embodiment, an apparatus different from the above embodiments will be described below with reference to the drawings.

まず、タグによりアドレスを形成する部分は、装置の概
略構成を示した第3図によると、アドレス演算器5の中
の一部であり、他の部分の構成は最初の実施例と変わら
ない。装置の詳細構成を第8図に示す。図中で破線に囲
まれた部分が、前の実施例と異なる所で、他の部分は第
1図と同じである。
First, according to FIG. 3 which shows the schematic structure of the device, the part forming the address by the tag is a part of the address calculator 5, and the structure of the other parts is the same as that of the first embodiment. The detailed structure of the apparatus is shown in FIG. In the figure, the part surrounded by the broken line is different from the previous embodiment, and the other parts are the same as in FIG.

信号の流れを説明すると、まずデータ・レジスタ51と
データ・レジスタ52のタグ部が、それぞれ信号線10
7と108を通してPLA(プログラマブル・ロジック
・アレイ)58に入力される。PLA58は、ICC4
から制御信号206によって制御される。PLA58に
おいて、入力のタグの組み合わせに対応した出力が選ば
れる。その出力が、タグにより形成されたアドレスであ
り、前の実施例においては、第1図のビット・シフタ5
4の出力に当たる。先に述べた様に、このアドレスは分
岐先アドレス・テーブル25のオリジン26からのディ
スプレイスメント28になっている。
The signal flow will be described. First, the tag portions of the data register 51 and the data register 52 are connected to the signal line 10 respectively.
It is input to PLA (Programmable Logic Array) 58 through 7 and 108. PLA58 is ICC4
From the control signal 206. The PLA 58 selects an output corresponding to the combination of input tags. Its output is the address formed by the tag and, in the previous embodiment, the bit shifter 5 of FIG.
It corresponds to the output of 4. As mentioned above, this address is a displacement 28 from the origin 26 of the branch destination address table 25.

後の処理は、第1図と同様で、PLA58を出た出力ア
ドレスは、データ線113を通じてデータ・レジスタ5
9へ送られる。ICC4から制御信号207によって制
御されるデータ・レジスタ59は、アドレス信号をデー
タ線114を通じて、アドレス加算器56の1方の入力
として送り込む。
The subsequent processing is the same as that in FIG. 1, and the output address from the PLA 58 is transferred to the data register 5 through the data line 113.
Sent to 9. The data register 59 controlled by the control signal 207 from the ICC 4 feeds the address signal through the data line 114 as one input of the address adder 56.

その後は、構成も信号の流れも第3図と同様で、前の実
施例と変わらない。尚この実施例において、データ・レ
ジスタ1と2から取り出されるタグのビット数は、前回
の様に3ビットに限らず、8ビット以下なら自由に選べ
る。またPLA58の出力アドレスも、前回の様に8ビ
ットに限らず、何ビットでも良い。
After that, the configuration and the signal flow are the same as in FIG. 3, and are the same as in the previous embodiment. In this embodiment, the number of bits of the tag fetched from the data registers 1 and 2 is not limited to 3 bits as in the previous case, but can be freely selected as long as it is 8 bits or less. Also, the output address of the PLA 58 is not limited to 8 bits as in the previous time, but may be any number of bits.

〔発明の効果〕〔The invention's effect〕

本発明によれば、従来プログラムにより記述され、数ス
テップを要する上に、ゴール側とクローズ側の引数で2
度に分け同じ処理を繰り返している、データ内からのタ
グ部の読み出し処理が、分岐処理までをも含めてゴール
側,クローズ側同時に、1ステップで実行できる様にな
る。この処理は、述語の引数ひとつひとつ、リストに対
しては要素のひとつひとつに対して行なわれる為に、対
応1述語同士のユニフィケーション1回の間に数回行な
われる。従って、Prolog実行中に行なわれるこの処理の
回数は非常に多い。その為に、この処理が、Prolog実行
処理全体に占める割合も大きい。このことから、本発明
による「タグによるデータの判定,処理の分岐」の処理
の高速化は、Prologの実行速度向上に対して、非常に大
きな効果をもたらす。
According to the present invention, it is described by a conventional program, requires several steps, and has two arguments in the goal side and the close side.
The process of reading the tag portion from the data in which the same process is repeated every time can be executed simultaneously in one step on the goal side and the close side, including the branching process. Since this processing is performed for each argument of the predicate and for each element of the list, the processing is performed several times during one unification of the corresponding predicates. Therefore, the number of times this process is performed during execution of Prolog is very large. Therefore, this process has a large ratio in the whole Prolog execution process. From this, the speeding up of the process of "data determination by tag, process branching" according to the present invention has a very great effect on the improvement of the execution speed of Prolog.

【図面の簡単な説明】[Brief description of drawings]

第1図は第1実施例の詳細な構成を表わす図、第2図は
第1実施例における処理のフロー・チャート、第3図は
実施例の概略の構成を表わす図、第4図は命令語の形式
を表わす図、第5図は第1と第2オペランドのデータの
形式を表わす図、第6図はデータ・レジスタ(第1図内
の53)内の6ビット・データの内部形式を表わす図、
第7図は分岐先アドレス表(ルーチン・アドレス・テー
ブル)を表わす図、第8図は第2実施例の詳細な構成を
表わす図である。 5…アドレス演算器、53…データ・レジスタ、54…
ビット・シフタ、56…アドレス加算器、58…PL
A。
FIG. 1 is a diagram showing a detailed configuration of the first embodiment, FIG. 2 is a flow chart of processing in the first embodiment, FIG. 3 is a diagram showing a schematic configuration of the embodiment, and FIG. 4 is an instruction. FIG. 5 shows the format of the word, FIG. 5 shows the format of the data of the first and second operands, and FIG. 6 shows the internal format of the 6-bit data in the data register (53 in FIG. 1). Figure showing,
FIG. 7 is a diagram showing a branch destination address table (routine address table), and FIG. 8 is a diagram showing a detailed configuration of the second embodiment. 5 ... Address calculator, 53 ... Data register, 54 ...
Bit shifter, 56 ... Address adder, 58 ... PL
A.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 森 利明 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 審査官 佐藤 秀一 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Toshiaki Mori 1-280 Higashi Koigakubo, Kokubunji City, Tokyo Shuichi Sato Examiner, Central Research Laboratory, Hitachi, Ltd.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】引数を含むデータ内に引数の種類を表わす
タグ部を設け、ゴールである引数とクローズである引数
同志をユニフィケーション処理する推論計算機におい
て、1つの命令によって前記ゴールである引数と前記ク
ローズである引数とを読み出して、分岐先アドレスが格
納されたテーブルの先頭アドレスからのディスプレイス
メントの上位側ビット群を前記ゴールである引数のタグ
部から形成し、同時に、前記ディスプレイスメントの下
位側のビット群を前記クローズである引数のタグ部から
形成する手段、分岐先アドレスが格納されたテーブルの
先頭アドレスと前記形成されたディスプレイスメントと
を足し合わせて得られるアドレスに対応するルーチンに
制御を移す手段を有することを特徴とする推論計算機。
1. An inference computer for unifying processing of an argument which is a kind and an argument which is a goal and a close argument which is provided in the data including the argument, and the goal argument and the goal argument are combined by one instruction. The argument which is closed is read, and the upper bits of the displacement from the start address of the table in which the branch destination address is stored are formed from the tag part of the argument which is the goal, and at the same time, the lower side of the displacement. Means for forming the bit group from the tag portion of the argument which is the closing, and control to the routine corresponding to the address obtained by adding the head address of the table storing the branch destination address and the formed displacement. An inference computer having means for transferring.
JP61185043A 1986-08-08 1986-08-08 Inference calculator Expired - Lifetime JPH065507B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61185043A JPH065507B2 (en) 1986-08-08 1986-08-08 Inference calculator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61185043A JPH065507B2 (en) 1986-08-08 1986-08-08 Inference calculator

Publications (2)

Publication Number Publication Date
JPS6341933A JPS6341933A (en) 1988-02-23
JPH065507B2 true JPH065507B2 (en) 1994-01-19

Family

ID=16163796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61185043A Expired - Lifetime JPH065507B2 (en) 1986-08-08 1986-08-08 Inference calculator

Country Status (1)

Country Link
JP (1) JPH065507B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2752081B2 (en) * 1988-03-15 1998-05-18 株式会社東芝 Electronic computer
JPH0690745B2 (en) * 1989-07-14 1994-11-14 矢崎総業株式会社 Taxi operation data collection device
JPH03132824A (en) * 1989-10-19 1991-06-06 Agency Of Ind Science & Technol Logical program processing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60107137A (en) * 1983-11-15 1985-06-12 Nec Corp Data processor with tag
JPS6155736A (en) * 1984-08-27 1986-03-20 Hitachi Ltd Prologue machine
JPS6162141A (en) * 1984-09-04 1986-03-31 Hitachi Ltd Logic-type information processing device
JPS629440A (en) * 1985-07-08 1987-01-17 Hitachi Ltd Data processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60107137A (en) * 1983-11-15 1985-06-12 Nec Corp Data processor with tag
JPS6155736A (en) * 1984-08-27 1986-03-20 Hitachi Ltd Prologue machine
JPS6162141A (en) * 1984-09-04 1986-03-31 Hitachi Ltd Logic-type information processing device
JPS629440A (en) * 1985-07-08 1987-01-17 Hitachi Ltd Data processor

Also Published As

Publication number Publication date
JPS6341933A (en) 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
US4179731A (en) Microprogrammed control system
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
EP0743593A1 (en) Replication of data
EP0743592A1 (en) Manipulation of data
US4897787A (en) Data processing system
EP0744686A1 (en) Manipulation of data
EP0754998A1 (en) An arithmetic unit
JPS6217252B2 (en)
US4539635A (en) Pipelined digital processor arranged for conditional operation
US4896258A (en) Data processor provided with instructions which refer to both tagged and tagless 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
JPH1165839A (en) Instruction control mechanism of processor
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
JPH065507B2 (en) Inference calculator
JP2538053B2 (en) Control device
AU629007B2 (en) Apparatus for accelerating store operations in a risc computer
US5452428A (en) Processor having different operand source information temporarily stored in plural holding registers to avoid using microprogram ROM capacity for such information
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 (en)
US5187782A (en) Data processing system
JPS578851A (en) Parallel processing system

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term