JPS63173134A - Argument register device - Google Patents

Argument register device

Info

Publication number
JPS63173134A
JPS63173134A JP62003984A JP398487A JPS63173134A JP S63173134 A JPS63173134 A JP S63173134A JP 62003984 A JP62003984 A JP 62003984A JP 398487 A JP398487 A JP 398487A JP S63173134 A JPS63173134 A JP S63173134A
Authority
JP
Japan
Prior art keywords
argument
register
predicate
function
registers
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.)
Pending
Application number
JP62003984A
Other languages
Japanese (ja)
Inventor
Minoru Yokota
実 横田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62003984A priority Critical patent/JPS63173134A/en
Publication of JPS63173134A publication Critical patent/JPS63173134A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

PURPOSE:To enable the content of a register to be recovered and to accelerate the call of a function and a predicate, by replacing the content of argument register address information at the time of calling the function and the predicate, and setting the required value of the argument on the register. CONSTITUTION:The value of the argument required for the call of the function and the predicate is stored in one or more registers from the forefront of plural argument register in a file 1, and when it is required to store the argument according to the execution of the function and the predicate, the content of the register holding the said value is preserved as it is, and the value is stored in an other register. When another function or the predicate out of called functions or predicates is required, the content of an argument number register 2 is replaced via selectors 3 so that the register required at that time can be positioned at the forefront of a register group. Therefore, it is possible to execute the call of the next function or the predicate at high speed.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラミング言語を実行する情報処理装置
に係るものであり、特に、手続き型もしくは関数型プロ
グラミング言語における関数、あるいは論理型プログラ
ミング言語における述語の呼び出しを高速に実行するた
めの引数レジスタ装置に関する。
[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to an information processing device that executes a programming language, and in particular, a function in a procedural or functional programming language, or a function in a logical programming language. The present invention relates to an argument register device for executing predicate calls at high speed.

〔従来の技術〕[Conventional technology]

プログラミング言語における関数、述語の呼び出しのた
めには、呼び出そうとする関数、述語が用いる入力情報
を引数として渡してやることが必要である。これらの引
数情報(以下、単に引数と呼ぶ)は一時的に利用される
ものであり、呼び出された関数、述語の実行が完了した
時点で不要となる。
In order to call a function or predicate in a programming language, it is necessary to pass input information used by the function or predicate to be called as an argument. These argument information (hereinafter simply referred to as arguments) are used temporarily and become unnecessary once execution of the called function or predicate is completed.

従って、従来、引数を格納する領域として主記憶装置が
スタックとして利用され、関数、述語の呼び出しの際に
引数の値を格納する領域が主記憶装置上に動的にとられ
、そこへ引数の値をコピーし、関数、述語の実行が完了
した時点でそのメモリ領域を消去するのが普通である。
Therefore, conventionally, main memory is used as a stack to store arguments, and when a function or predicate is called, an area to store argument values is dynamically allocated on main memory, and arguments are stored there. Normally, the value is copied and the memory area is erased when the execution of the function or predicate is completed.

このような引数渡しのメカニズムを高速化するためには
、従来、引数の値を格納する専用のハードウェアレジス
タ(以下、引数レジスタと呼ぶ)を設け、関数、述語の
呼び出しの際に、主記憶装置上にではなく引数レジスタ
ヘコピーすることにより処理の高速化を実現してきた。
In order to speed up such argument passing mechanisms, conventional hardware registers (hereinafter referred to as argument registers) dedicated to storing argument values have been provided, and when a function or predicate is called, main memory is Processing speed has been increased by copying to argument registers instead of onto the device.

特に呼び出された関数、述語が単純な場合、必要な引数
がレジスタ上に格納されたまま関数、述語の実行が完了
してしまうと、引数はもはや不要となり、主記憶装置に
保存することなく消去して良いため実行効率が向上する
Especially when the called function or predicate is simple, if the function or predicate completes execution while the necessary arguments are stored in the register, the arguments are no longer needed and are erased without being saved in main memory. This improves execution efficiency.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

従来の引数レジスタを用いる方式では、自分自身を再帰
的に呼び出す(ティルリカージョン)場合や、呼び出さ
れた関数、述語の中から更に別の関数、述語を呼び出す
場合には、効率を上げるために既に使用中の引数レジス
タを破壊して使用する必要があった。例えば、引数レジ
スタを順にAO,A1.A2.  ・・・と呼ぶことと
し、最初の関数、述語の呼び出しのためにAO,Al、
A2の3つの引数レジスタが使用されているとする。
In the conventional method of using argument registers, in order to increase efficiency when calling itself recursively (til recursion) or when calling another function or predicate from a called function or predicate, It was necessary to destroy the argument register that was already in use. For example, the argument registers are sequentially changed to AO, A1, . A2. ..., and for the first function and predicate call, AO, Al,
Assume that three argument registers in A2 are used.

呼び出された関数、述語の中で更に別の関数、述語を呼
び出す必要があり、この時2つの引数が必要であるとす
れば、すべての関数、述語の呼び出しインタフェースを
同一にするためには、これらの引数の値は同じ引数レジ
スタAO,AIに格納されなければならない。即ち、引
数レジスタAO。
If it is necessary to call another function or predicate within the called function or predicate, and two arguments are required at this time, in order to make the calling interface of all functions and predicates the same, The values of these arguments must be stored in the same argument registers AO, AI. That is, argument register AO.

A1は破壊され再利用される。A1 will be destroyed and reused.

このような従来方式では、引数レジスタの内容が破壊さ
れることになるため次のような問題が発生する。まず、
処理の途中で異常が検出されその情報を利用者に伝えよ
うとする場合に、既に引数レジスタの内容が破壊されて
いると、異常が発生した時の状況を正しく利用者に伝え
ることができない。従って、システムが異常を復旧して
呼び出された関数、述語の実行を再試行することも不可
能となる。
In such a conventional method, the contents of the argument register are destroyed, resulting in the following problems. first,
When an abnormality is detected during processing and the information is to be communicated to the user, if the contents of the argument register have already been destroyed, the situation when the abnormality occurred cannot be correctly communicated to the user. Therefore, it becomes impossible for the system to recover from the abnormality and retry the execution of the called function or predicate.

また、論理型プログラミング言語では、呼び出すべき述
語の候補が複数存在する場合には、そのうちの1つがま
ず選ばれて実行されるが、その実行がうまくいかない場
合には別の候補となっている述語を実行し直さなければ
ならない(バックトランク機構)。しかしながら最初の
述語の実行で引数レジスタが破壊使用されていると、述
語呼び出しの最初の状態に戻すことが不可能となる。
In addition, in logical programming languages, when there are multiple candidates for a predicate to be called, one of them is selected and executed first, but if the execution does not go well, another candidate predicate is selected. Must be re-run (backtrunk mechanism). However, if the argument registers are destroyed during the first execution of the predicate, it is impossible to return to the initial state of the predicate call.

従来、これらの問題を回避するためには、最初に渡され
た引数を主記憶装置上に格納しておかなければならず、
ハードウェアレジスタを用いて処理を高速化した効果が
相殺されてしまうという問題があった。
Traditionally, to avoid these problems, the first argument passed must be stored in main memory.
There was a problem in that the effect of speeding up processing using hardware registers was canceled out.

本発明の目的は、これらの従来技術の適用ではハードウ
ェアレジスタを用いた効果が得られなかった異常処理、
バックトラック処理に備えて、引数レジスタの内容を復
元することを可能とし、いかなる状況においても関数、
述語の呼び出しを高速化せしめ得る引数レジスタ装置を
提供することにある。
The purpose of the present invention is to solve abnormal processing in which the effects of using hardware registers cannot be obtained by applying these conventional techniques.
In preparation for backtracking, it is possible to restore the contents of argument registers, and in any situation the function
The object of the present invention is to provide an argument register device that can speed up the calling of predicates.

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

本発明の引数レジスタ装置は、関数もしくは述語の呼び
出しに必要な引数の値を格納するための複数の引数レジ
スタと、 引数レジスタ番号と前記引数レジスタとを対応づける引
数レジスタアドレス情報を格納する引数番号レジスタと
、 この引数番号レジスタに格納された引数レジスタアドレ
ス情報を、前記複数の引数レジスタのレジスタ番号の再
配置を指示する情報に従って入れ替える手段と、 前記引数番号レジスタに格納された引数レジスタアドレ
ス情報に従って引数レジスタ番号から前記引数レジスタ
をアクセスする手段とを具備し、関数もしくは述語の呼
び出し時に、前記引数番号レジスタに格納された引数レ
ジスタアドレス情報の内容を入れ替えることによって、
必要な引数の値を前記引数レジスタに設定することを特
徴としている。
The argument register device of the present invention includes a plurality of argument registers for storing argument values necessary for calling a function or a predicate, and an argument number for storing argument register address information that associates the argument register number with the argument register. a register; means for replacing argument register address information stored in the argument number register according to information instructing rearrangement of register numbers of the plurality of argument registers; and means for accessing the argument register from the argument register number, and by replacing the contents of the argument register address information stored in the argument number register when a function or predicate is called,
The method is characterized in that necessary argument values are set in the argument register.

〔作用〕[Effect]

本発明の引数レジスタ装置において、まず、関数、述語
の呼び出しに必要な引数の値は複数の引数レジスタの先
頭から1つ以上の引数レジスタに格納される。次に、関
数、述語の実行に伴い引数レジスタへの値の格納が必要
となった場合には、渡された引数の値を保持している引
数レジスタの内容はそのまま保存し、空いている別の引
数レジスタに格納してゆく。呼び出された関数、述語の
中で更に別の関数、述語の呼び出しが必要になった場合
には、その時点で、呼び出しに必要になった引数レジス
タ群が新たに引数レジスタの先頭に位置するように引数
番号レジスタの内容を入れ替える。この操作により引数
レジスタの内容そのものを移動することなく、呼び出し
に必要な引数の値を引数レジスタの先頭部分に移すこと
が可能となり、初めに渡された引数の値を破壊すること
なく、次の関数、述語の呼び出しを高速に実行せしめる
ことができる。
In the argument register device of the present invention, first, argument values necessary for calling a function or predicate are stored in one or more argument registers from the beginning of a plurality of argument registers. Next, when it is necessary to store a value in an argument register as a function or predicate is executed, the contents of the argument register holding the value of the passed argument are saved as is, and an empty space is stored. is stored in the argument register of . If it becomes necessary to call another function or predicate within the called function or predicate, at that point the argument registers required for the call are placed at the beginning of the new argument registers. Swaps the contents of the argument number register. This operation makes it possible to move the value of the argument necessary for the call to the beginning of the argument register without moving the contents of the argument register itself. Functions and predicates can be called at high speed.

〔実施例〕〔Example〕

第1図は本発明の一実施例であるレジスタ番号可変の引
数レジスタ装置のハードウェアブロック図である。
FIG. 1 is a hardware block diagram of an argument register device with variable register numbers, which is an embodiment of the present invention.

図において、1は引数の値を格納するための複数の引数
レジスタ、本実施例の場合8つの引数レジスタを内蔵す
るレジスタファイル、2は引数レジスタ番号からレジス
タファイル1内の特定の引数レジスタをアクセスするた
めの引数レジスタアドレス情報を格納するための引数番
号レジスタ、3は引数番号レジスタ2に格納されている
引数レジスタアドレス情報をレジスタ番号の再配置を指
示する情報に従って入れ替えるための8−1セレクタ、
4は引数番号レジスタ2に格納されている8つの引数レ
ジスタアドレス情報のうちの1つを選択するための8−
1セレクタ、5は選択された引数レジスタアドレス情報
をレジスタファイル1に入力するためのアドレスバスを
示す。
In the figure, 1 is a register file containing multiple argument registers for storing argument values, 8 argument registers in this example, and 2 is accessing a specific argument register in register file 1 from the argument register number. 3 is a selector 8-1 for replacing the argument register address information stored in the argument number register 2 according to information instructing the rearrangement of register numbers;
4 is 8- for selecting one of the eight argument register address information stored in argument number register 2.
1 selector and 5 indicate an address bus for inputting selected argument register address information to the register file 1.

なお、8−1セレクタ3は、引数番号レジスタ2に格納
された引数レジスタアドレス情報をレジスタ番号の再配
置を指示する情報に従って入れ替える手段を、8−1セ
レクタ4とレジスタファイルlをアクセスするためのア
ドレスバス5とは、引数番号レジスタ2に格納された引
数レジスタアドレス情報に従って引数レジスタ番号から
引数レジスタをアクセスする手段を構成している。
Note that the 8-1 selector 3 has a means for replacing the argument register address information stored in the argument number register 2 in accordance with information instructing the rearrangement of register numbers, and a means for accessing the 8-1 selector 4 and the register file l. The address bus 5 constitutes means for accessing an argument register from an argument register number according to the argument register address information stored in the argument number register 2.

レジスタファイル1には引数レジスタが8つ含まれてい
るため、引数レジスタアドレス情報として3ビツトあれ
ばよい。従って引数番号レジスタ2は3ビツト×8の2
4ビット幅のレジスタで実現されている。左側から引数
レジスタ番号0.1゜2、・・・、7に対応する引数レ
ジスタアドレス情報が格納されており、これを8−1セ
レクタ4で選択することにより、アクセスしたい引数レ
ジスタ番号に対応する実際の引数レジスタアドレス情報
をアドレスバス5を介してレジスタファイル1に与える
ことができる。従って、引数番号レジスタ2の内容を変
更することにより、引数レジスタ番号と引数レジスタの
対応を任意に変えることが可能となる。
Since register file 1 includes eight argument registers, three bits are sufficient as argument register address information. Therefore, argument number register 2 is 2 of 3 bits x 8.
It is implemented using a 4-bit wide register. Argument register address information corresponding to argument register numbers 0.1゜2, . . . , 7 from the left side is stored, and by selecting this with the 8-1 selector 4, the address information corresponding to the argument register number to be accessed is stored. Actual argument register address information can be provided to register file 1 via address bus 5. Therefore, by changing the contents of argument number register 2, it is possible to arbitrarily change the correspondence between argument register numbers and argument registers.

以下に、本実施例の動作を詳しく説明する。The operation of this embodiment will be explained in detail below.

第2図は本発明の詳細な説明するため本実施例を筒車化
した図であり、以降、この形式で説明を進める。
FIG. 2 is a diagram of this embodiment in the form of an hour wheel for detailed explanation of the present invention, and the explanation will be continued in this format from now on.

図において、101〜108はレジスタファイルエに含
まれる8つの引数レジスタを示す。引数番号レジスタ2
には初期状態として順に0.1,2゜・・・、7の引数
レジスタアドレス情報が格納されており、引数レジスタ
番号Oは引数レジスタ101に、引数レジスタ番号1は
引数レジスタ102に、・・・、引数レジスタ番号7は
引数レジスタ10Bに各々対応づけられている。即ち、
図では引数レジスタ番号と実際の引数レジスタ位置とは
一致している状態にある。
In the figure, 101 to 108 indicate eight argument registers included in the register file. Argument number register 2
In the initial state, argument register address information of 0.1, 2°, . , argument register number 7 are respectively associated with argument register 10B. That is,
In the figure, the argument register number and the actual argument register position match.

第3図は、レジスタファイル1の先頭の3つの引数レジ
スタ101(A O) 、 102(A 1 ) 、 
103(A 2 )が関数を呼び出すための引数の値を
格納するのに使用され、呼び出された関数内で更に4つ
の引数レジスタ104(X O) 、 105(X 1
) 、 106(X 2) 。
FIG. 3 shows the first three argument registers 101 (A O), 102 (A 1 ), and
103 (A 2 ) is used to store the value of the argument for calling the function, and within the called function four more argument registers 104 (X O), 105 (X 1
), 106 (X 2).

107(X3)が用いられている状況を示す。107(X3) is used.

ここで次の関数呼び出しが必要になり引数レジスタ10
6.105.107の内容がこの順で引数として渡す必
要が生じたとすると、レジスタファイル1の5番目の引
数レジスタが0番目に、レジスタファイル1の4番目の
引数レジスタが1番目に、レジスタファイル1の6番目
の引数レジスタが2番目に変われば良い。これを実現す
るためには引数番号レジスタ2に、5.4.6,0,1
.2,3゜7という引数レジスタアドレス情報をセット
すれば良い。
Now the next function call is required and argument register 10
6. If the contents of 105 and 107 need to be passed as arguments in this order, the 5th argument register of register file 1 will be the 0th argument register, the 4th argument register of the register file 1 will be the 1st argument, and the register file It is sufficient if the 6th argument register of 1 is changed to the 2nd argument register. To achieve this, set argument number register 2 to 5.4.6,0,1.
.. It is sufficient to set the argument register address information of 2,3°7.

この操作により引数レジスタ番号0は引数レジスタ10
6に、引数レジスタ番号1は引数レジスタ105に、レ
ジスタ番号2は引数レジスタ107に対応づけられ、引
数レジスタの内容を移動することなしに、呼び出しに必
要な引数の値がレジスタファイル1の先頭の3つの引数
レジスタに格納されている状態と等価となる。
With this operation, argument register number 0 becomes argument register 10.
6, argument register number 1 is associated with argument register 105, register number 2 is associated with argument register 107, and the value of the argument required for the call can be placed at the beginning of register file 1 without moving the contents of the argument register. This is equivalent to the state stored in the three argument registers.

なお、本実施例では関数、述語の呼び出し時にどの引数
レジスタの内容を呼び出し引数として用いるかについて
はコンパイラによって決定し、機械語の形式で8−1セ
レクタ4の選択信号として与えられる。
In this embodiment, the contents of which argument registers are used as call arguments when calling a function or predicate are determined by the compiler and are given as a selection signal to the 8-1 selector 4 in the form of machine language.

第4図は引数番号レジスタ2の内容を変更し、呼び出さ
れた関数で更に3つの引数レジスタ101゜102、1
03を用いている状況を示す。利用者からは、引数レジ
スタ番号0.1.2が渡された引数を格納しており引数
レジスタ番号3,4.5が関数内で利用しているレジス
タ領域として見えている。
In Figure 4, the contents of argument number register 2 are changed, and three more argument registers 101, 102, 1 are added in the called function.
This shows a situation where 03 is used. From the user's perspective, argument register numbers 0.1.2 store the passed arguments, and argument register numbers 3 and 4.5 are seen as register areas used within the function.

この状況で更に、関数呼び出しが生じ引数レジスタ10
2.101の内容が呼び出しの引数として使用される場
合、第3図の場合と同様に論理的にはレジスタファイル
1の4番目の引数レジスタが0番目に、レジスタファイ
ル1の3番目の引数レジスタが1番目に変われば良い。
In this situation, a function call also occurs and the argument register 10
2. When the contents of 101 are used as arguments for a call, the fourth argument register of register file 1 is logically set to 0, and the third argument register of register file 1 is It would be good if it changed to the first place.

しかしながら、これを実現するために引数番号レジスタ
2に例えば2゜3.4,1.0,5,6.7という引数
レジスタアドレス情報をセットしても正しくない。
However, it is incorrect to set argument register address information such as 2°3.4, 1.0, 5, 6.7 in the argument number register 2 in order to realize this.

レジスタファイル1の4番目の引数レジスタとは、既に
レジスタファイル1の1番目の引数レジスタ102に対
応づけられており、正しくは引数レジスタ番号0にはレ
ジスタファイル1の1番目が対応づけられなければなら
ない(4番目−1番目=次00番目)。即ち、引数番号
レジスタ2の内容を更新するためには、対応づけを変更
したい引数レジスタに既に対応づけされている引数レジ
スタアドレスを、移動先引数レジスタの引数レジスタア
ドレスとしなければならない。
The fourth argument register of register file 1 is already associated with the first argument register 102 of register file 1, and correctly, the argument register number 0 must be associated with the first argument register of register file 1. (4th - 1st = next 00th). That is, in order to update the contents of the argument number register 2, the argument register address already associated with the argument register whose association is to be changed must be set as the argument register address of the destination argument register.

第5図は、以上のように関数の呼び出しが連続した場合
における引数番号レジスタ2の変更操作を示している。
FIG. 5 shows an operation for changing the argument number register 2 when functions are called consecutively as described above.

引数番号レジスタ2には、現在5゜4.6,0,1,2
,3.7という引数レジスタアドレス情報がセットされ
ており、新しく設定すべき引数レジスタ番号と引数レジ
スタ位置との対応を示す情報を用いて、引数番号レジス
タ2に格納されている引数レジスタアドレス情報を入れ
替える。この入れ替えは8つの8−1セレクタ3により
行われる。その結果引数番号レジスタ内の引数レジスタ
アドレス情報の内容は、1,0,5゜4.6,2,3.
7に入れ替わる。即ち、本発明ではレジスタファイル1
の内容を入れ替える代わりに、引数番号レジスタ2に格
納されている引数レジスタアドレス情報を入れ替えるこ
とになる。
Argument number register 2 currently contains 5° 4.6, 0, 1, 2.
, 3.7 is set, and the argument register address information stored in argument number register 2 is set using information indicating the correspondence between the argument register number to be newly set and the argument register position. Replace. This replacement is performed by eight 8-1 selectors 3. As a result, the contents of the argument register address information in the argument number register are 1, 0, 5°, 4.6, 2, 3, .
Replaced by 7. That is, in the present invention, register file 1
Instead of replacing the contents of , the argument register address information stored in argument number register 2 is replaced.

この操作により引数レジスタアドレス情報が正しく引数
番号レジスタ2に格納されることがわかる。
It can be seen that the argument register address information is correctly stored in the argument number register 2 by this operation.

以上の説明から明らかなように、引数番号レジスタ2に
格納される引数レジスタアドレス情報を変更することに
より、レジスタファイル1の内容を破壊使用することな
く、関数の呼び出しに必要な引数をレジスタファイル1
の所定の位置に用意することができる。
As is clear from the above explanation, by changing the argument register address information stored in argument number register 2, arguments necessary for calling a function can be transferred to register file 1 without destroying the contents of register file 1.
can be prepared at a predetermined location.

なお、本発明は上記実施例に限られるものではなく多く
の変形が可能であり、例えばレジスタファイル1のレジ
スタ数は8個以上にしても良い。
Note that the present invention is not limited to the above-mentioned embodiments, and can be modified in many ways. For example, the number of registers in the register file 1 may be eight or more.

また、引数番号レジスタ2の書き換え回路は他の方法で
構成しても良い。
Further, the rewriting circuit for the argument number register 2 may be configured using other methods.

〔発明の効果〕〔Effect of the invention〕

以上のごとく本発明によれば、関数もしくは述語の呼び
出しに必要な引数の値を格納する複数の引数レジスタと
、引数レジスタ番号と引数レジスタのレジスタ位置とを
対応づける引数レジスタアドレス情報を格納する引数番
号レジスタとを設け、この引数番号レジスタに格納され
た引数レジスタアドレス情報を入れ替えることによって
複数の引数レジスタに格納された引数の値を破壊するこ
となく、次の関数、述語呼び出しのための引数を高速に
用意することが可能になった。
As described above, according to the present invention, there are a plurality of argument registers that store argument values necessary for calling a function or a predicate, and an argument that stores argument register address information that associates the argument register number with the register position of the argument register. By providing a number register and replacing the argument register address information stored in this argument number register, you can change the argument for the next function or predicate call without destroying the argument values stored in multiple argument registers. It is now possible to prepare quickly.

本発明により関数、述語の呼び出し時に検出される異常
や、論理型プログラミング言語におけるバックトラック
に対し、関数、述語の呼び出し時に渡された引数情報を
破壊せずに、かつ実行速度を低下させずに保有すること
が可能となったことが本発明の大きな特色であり、関数
型プログラミング言語を実行する計算機システム、例え
ばLi5pマシンや、論理型プログラミング言語を実行
する計算機システム、例えばprolOgマシン等の高
速化に対して益するところ大である。
The present invention can handle abnormalities detected when calling functions and predicates, and backtracking in logical programming languages, without destroying argument information passed when calling functions and predicates, and without reducing execution speed. A major feature of the present invention is that it has become possible to speed up computer systems that execute functional programming languages, such as Li5p machines, and computer systems that execute logical programming languages, such as prolOg machines. It has a lot of benefits for people.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例であるレジスタ番号可変の引
数レジスタ装置のハードウェアブロック図、 第2図は第1図の実施例の動作を説明するための簡単化
した図であり初期状態を示す図、第3図は3つの引数を
用いて関数の呼び出しが行われた状況を示す図、 第4図は呼び出された関数の中から更に別の関数を呼び
出す場合に引数番号レジスタの内容をどう変更すれば良
いかを示す図、 第5図はこのような関数の呼び出しが連続した場合に引
数番号レジスタの内容を入れ換える操作が必要なことを
説明する図である。 1・・・・・レジスタファイル 2・・・・・引数番号レジスタ 3・・・・・引数番号レジスタの内容を入れ換えるため
の8−1セレクタ 4・・・・・引数番号レジスタの内容に従って引数レジ
スタをアクセスする ための8−1セレクタ 5・・・・・8−1セレクタ4によって選択された引数
レジスタアドレスを 用いてレジスタファイルlをア クセスするためのアドレスバス 第3図 第4図 第5図
FIG. 1 is a hardware block diagram of an argument register device with variable register numbers, which is an embodiment of the present invention. FIG. 2 is a simplified diagram for explaining the operation of the embodiment of FIG. 1, and is in an initial state. Figure 3 shows the situation where a function is called using three arguments, Figure 4 shows the contents of the argument number register when calling another function from among the called functions. Figure 5 is a diagram illustrating how to change the contents of the argument number register when such functions are called consecutively. 1...Register file 2...Argument number register 3...8-1 selector for replacing the contents of the argument number register 4...Argument register according to the contents of the argument number register 8-1 selector 5 for accessing the address bus for accessing the register file l using the argument register address selected by the 8-1 selector 4.

Claims (1)

【特許請求の範囲】[Claims] (1)関数もしくは述語の呼び出しに必要な引数の値を
格納するための複数の引数レジスタと、引数レジスタ番
号と前記引数レジスタとを対応づける引数レジスタアド
レス情報を格納する引数番号レジスタと、 この引数番号レジスタに格納された引数レジスタアドレ
ス情報を、前記複数の引数レジスタのレジスタ番号の再
配置を指示する情報に従って入れ替える手段と、 前記引数番号レジスタに格納された引数レジスタアドレ
ス情報に従って引数レジスタ番号から前記引数レジスタ
をアクセスする手段とを具備し、関数もしくは述語の呼
び出し時に、前記引数番号レジスタに格納された引数レ
ジスタアドレス情報の内容を入れ替えることによって、
必要な引数の値を前記引数レジスタに設定することを特
徴とする引数レジスタ装置。
(1) A plurality of argument registers for storing argument values necessary for calling a function or predicate, an argument number register for storing argument register address information that associates argument register numbers with the argument registers, and this argument. means for replacing argument register address information stored in a number register according to information instructing rearrangement of register numbers of the plurality of argument registers; means for accessing the argument register, and by replacing the contents of the argument register address information stored in the argument number register when a function or predicate is called,
An argument register device characterized in that a necessary argument value is set in the argument register.
JP62003984A 1987-01-13 1987-01-13 Argument register device Pending JPS63173134A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62003984A JPS63173134A (en) 1987-01-13 1987-01-13 Argument register device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62003984A JPS63173134A (en) 1987-01-13 1987-01-13 Argument register device

Publications (1)

Publication Number Publication Date
JPS63173134A true JPS63173134A (en) 1988-07-16

Family

ID=11572296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62003984A Pending JPS63173134A (en) 1987-01-13 1987-01-13 Argument register device

Country Status (1)

Country Link
JP (1) JPS63173134A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6095651A (en) * 1983-10-31 1985-05-29 Toshiba Corp Storage device
JPS61139839A (en) * 1984-12-12 1986-06-27 Nec Corp Information processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6095651A (en) * 1983-10-31 1985-05-29 Toshiba Corp Storage device
JPS61139839A (en) * 1984-12-12 1986-06-27 Nec Corp Information processor

Similar Documents

Publication Publication Date Title
CN101730881B (en) System comprising a plurality of processors and methods of operating the same
EP0052712A2 (en) Method for identifying a process in a data processing system
JPH06290084A (en) Method and equipment for restructuring symbol definition and computer system used for them
JPS5911943B2 (en) Trap mechanism for data processing equipment
JPS5960652A (en) Data processing device
US3351909A (en) Information storage and transfer system for digital computers
EP0144779B1 (en) Parallel processing computer
WO1985001136A1 (en) Processor with depictor-linked microcode and logic circuitry
US4901274A (en) Method and system for data driven information processing
JPS6334490B2 (en)
KR960007831B1 (en) Method and apparatus for extending computer architecture from 32 bits to 64 bits
JPS63173134A (en) Argument register device
US5179682A (en) Method and apparatus for improved current window cache with switchable address in, out, and local cache registers
JPS6058487B2 (en) data processing equipment
JPH1040103A (en) Information processing system having register/remapping structure and its method
JPH0754467B2 (en) Data processing device
JPH0199132A (en) Multi-task executing device
JP2579008B2 (en) Time-division multitasking execution device
KR890007163A (en) Fast Nested Window Register File
JPS63240636A (en) Restorable register file device
JP2570959B2 (en) Data processing device
JPS63247824A (en) Expanding method for number of defining blocks of data entry screen
JPS62219039A (en) Dump output controlling and processing system
JPH0325533A (en) Microprocessor
JPS6239779B2 (en)