JPH05274144A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH05274144A
JPH05274144A JP4070683A JP7068392A JPH05274144A JP H05274144 A JPH05274144 A JP H05274144A JP 4070683 A JP4070683 A JP 4070683A JP 7068392 A JP7068392 A JP 7068392A JP H05274144 A JPH05274144 A JP H05274144A
Authority
JP
Japan
Prior art keywords
predicate
register
address
argument
read out
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
JP4070683A
Other languages
English (en)
Inventor
Minoru Saeki
稔 佐伯
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4070683A priority Critical patent/JPH05274144A/ja
Publication of JPH05274144A publication Critical patent/JPH05274144A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 述語呼出に必要な引数の受け渡しをレジスタ
ファイルを用いて行う情報処理装置において、述語呼出
時のオーバーヘッドを低減する。 【構成】 マップレジスタを設け、述語内の各引数の配
列順番をアドレスとして当該述語が格納されるレシスタ
ファイルにアクセスするポインタを読み出すようにし、
述語呼出の前にマップレジスタの内容を更新することと
した。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、述語呼出に必要な引
数の受け渡しをレジスタファイルを用いて行う情報処理
装置に関するものである。
【0002】
【従来の技術】たとえば、Prologのプログラムに
おいて、p(t1 ,t2 ,・・,tn)という述語は
「t1 ,t2 ,・・tn にはpという関係がある」とい
う意味を表し、pを述語名、各tii =1,2,・・
n)が引数となる。Prologのプログラムで次のよ
うな文章を考えてみる。 p(A,B,C,D):−q(D,C,B,A);これ
は、pという述語が引数A,B,C,Dで呼び出された
ら、qという述語を引数D,C,B,Aで呼び出すとい
うことである。ただし、A〜Dは任意の型の変数であ
る。
【0003】図2は従来の方法を示す説明図であって、
図において、RF0〜RF5は各レジスタファイルを示
し、末尾の数字はそれぞれ数値0〜5をエントリとして
アクセスできることを表す。また、(A),(B)・・
・はそれぞれ引数A,B・・・が格納されていることを
示し、( )は空きレジスタであることを示す。述語p
が呼ばれた時点では図2(a)に示すように、引数A,
B,C,DはそれぞれRF0,RF1,RF2,RF3
で示すレジスタファイルに格納されている。そして、q
を呼び出そうとすると、qはpとは引数の出現順序が異
なっているので、図2(d)に示すように、レジスタの
内容を入れ替える必要があり、図2(a)から図2
(d)まで、下記のようなレジスタ転送命令を実行しな
ければならない。 (c1)RF0→RF4 (c2)RF1→RF5 (c3)RF2→RF1 (c4)RF3→RF0 (c5)RF4→RF3 (c6)RF5→RF2
【0004】
【発明が解決しようとする課題】上記のような従来の情
報処理装置の述語呼出では以上のように、述語呼出のた
めのレジスタファイルの内容のスワッピングだけのため
に、余分な数の命令の実行を必要とし、述語呼出のオー
バーヘッドが大きくなってしまうという問題点があっ
た。
【0005】この発明はかかる問題点を解決するために
なされたものであり、述語呼出のオーバーヘッドの低減
が図れる情報処理装置を提供することを目的としてい
る。
【0006】
【課題を解決するための手段】この発明に係わる情報処
理装置は、レジスタファイルの内容のスワッピングを行
うことなく述語内の引数の配列順番をアドレスとし、当
該述語が格納されているレジスタにアクセスするための
ポインタをデータとして記憶するマップレジスタを備
え、このマップレジスタから読み出したポインタにより
レジスタファイルにアクセスして当該引数を読み出すこ
ととした。
【0007】
【作用】この発明においては、ソフトウェアが指定する
レジスタ番号と、ハードウェアの持つレジスタファイル
のエントリ番号とを別のものとし、間接的にマップレジ
スタで対応付けるため、述語呼出のための引数のスワッ
プをマップレジスタの更新1回で行うことが可能とな
る。
【0008】
【実施例】以下、この発明の実施例を図面を用いて説明
する。図1はこの発明の一実施例を示す説明図であっ
て、1はマップレジスタを示す。図1に示す実施例では
引数の受け渡しを行うレジスタファイルの数は8以下で
あって、0〜7のアドレスによりアクセスできるものと
する。マップレジスタ1にはこのアドレス0〜7を示す
ポインタがデータとして記憶され、マップレジスタ1の
アドレスAは0〜7で、述語内の引数の配列順番がマッ
プレジスタ1のアドレスAを示すものとする。
【0009】例えば、先に挙げたプログラム p(A,B,C,D):−q(D,C,B,A);につ
いて見てみると、述語pが呼び出された時点ではマップ
レジスタ1の内容は図1(a)に示す通りになってい
る。すなわち、述語p内の配列順番0番でアドレス
(A)=0のデータを読み出すと数値0が読み出され、
これをアドレスとしてレジスタファイルにアクセスする
とRF0にアクセスするがRF0には引数Aが格納され
ている。このようにしてRF1には引数Bが、RF2に
は引数Cが、RF3には引数Dが格納されている。述語
pに関するかぎりでは、マップレジスタ1のアドレス
(A)の4〜7の位置には、どのようなデータが格納さ
れていても差し支えないが、仮に数値4〜7がそれぞれ
格納されているとする。
【0010】次に述語qを呼び出す前にはマップレジス
タ1の内容を図1(b)のように変更しておけばよい。
すなわち、述語q内の配列順番0番でアドレス(A)=
0のデータを読み出すと数値3が読み出されるように更
新しておく。数値3をアドレスとしてレジスタファイル
にアクセスするとRF3にアクセスするが、RF3には
引数Dが格納されている。図1(b)の場合もアドレス
(A)の4〜7には、それぞれ数値4〜7を格納してお
いて差し支えない。
【0011】マップレジスタ1を仮に32ビットのレジ
スタで構成し、32ビットを8分割し、8分割して得た
各4ビットを1データとし(データが0〜7の数値であ
る場合4ビット中のMSBは常に0であるが)、上記8
分割の下位から順にアドレス(A)を0,1,・・・7
とすれば、図1(a)の状態から図1(b)の状態にす
るには、 set_rfmr 76540123 という命令を実行するだけで良い。ここにrfmrはマ
ップレジスタ1を意味し、76540123はデータ中
に上位から順に{図1(b)では下方から上方へ}76
540123をセットすることを示す。また、 p(A,B,C,D):−q(D,C,B,A),r
(A,B),s(X);では、qから戻った後、rを呼
び出すためには、 load A0,A load A1,B call r の命令を実行するだけでよい。
【0012】これは、レジスタRF0には常に引数A
が、レジスタRF1には常に引数Bが格納されているこ
とにより可能となるもので、従来の方法ではこのように
簡単にはできない。すなわち、変数領域にセーブされて
いた変数を直接A1に読み出して使うことにより、マッ
プレジスタをqの呼び出し前の値に戻す必要もないし、
別の値に更新し直す必要もない。従来通りのレジスタの
使い方も、完全にオーバヘッド無しでサポートできる。
q,r,sなどの中で更に述語呼び出しが多段にネスト
しても、上述のマップレジスタの更新のロジックにより
問題はない。
【0013】
【発明の効果】以上のようにこの発明によれば、述語呼
出時の引数受け渡しのための複数回のレジスタ転送を1
つの操作で代用でき、オーバーヘッドを低減し速度性能
を向上させることができる。
【図面の簡単な説明】
【図1】この発明の一実施例を示す説明図である。
【図2】従来の装置の方法を示す説明図である。
【符号の説明】
1 マップレジスタ RF0 レジスタファイル RF1 レジスタファイル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 述語呼出に必要な引数の受け渡しをレジ
    スタファイルを用いて行う情報処理装置において、 述語内の引数の配列順番をアドレスとし、当該引数を格
    納するレジスタファイルにアクセスするためのポインタ
    をデータとして記憶するマップレジスタ、 述語呼出に際し当該述語内の引数の配列に対応して上記
    マップレジスタのデータ内容を更新する手段、 データ内容が当該述語に対応して更新されたマップレジ
    スタを用い、当該述語内の引数の配列順番をアドレスと
    して上記マップレジスタから当該引数の格納されるレジ
    スタファイルにアクセスするポインタを読み出し、この
    読み出したポインタによりレジスタファイルにアクセス
    する手段、 を備えたことを特徴とする情報処理装置。
JP4070683A 1992-03-27 1992-03-27 情報処理装置 Pending JPH05274144A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4070683A JPH05274144A (ja) 1992-03-27 1992-03-27 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4070683A JPH05274144A (ja) 1992-03-27 1992-03-27 情報処理装置

Publications (1)

Publication Number Publication Date
JPH05274144A true JPH05274144A (ja) 1993-10-22

Family

ID=13438695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4070683A Pending JPH05274144A (ja) 1992-03-27 1992-03-27 情報処理装置

Country Status (1)

Country Link
JP (1) JPH05274144A (ja)

Similar Documents

Publication Publication Date Title
US5210874A (en) Cross-domain call system in a capability based digital data processing system
US4771380A (en) Virtual vector registers for vector processing system
US5249148A (en) Method and apparatus for performing restricted modulo arithmetic
US4454580A (en) Program call method and call instruction execution apparatus
US6138210A (en) Multi-stack memory architecture
Lawson Programming-language-oriented instruction streams
US6058457A (en) Method for storing method frames in multiple stacks
JP2752094B2 (ja) 論理型言語におけるバックトラック処理方式
EP0240108A2 (en) A data processing system
JPH034936B2 (ja)
US6067602A (en) Multi-stack-caching memory architecture
JPH05274144A (ja) 情報処理装置
US6092152A (en) Method for stack-caching method frames
JPS5935451B2 (ja) 汎用レジスタ・アクセス方式
KR960012354B1 (ko) 마이크로 프로세서
JPS62151940A (ja) レジスタ退避/復帰方式
JP3140028B2 (ja) サブルーチンの引数の受け渡し方式
JP2798275B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JPH0527975A (ja) マイクロコンピユータ
KR830000265B1 (ko) 정보처리 장치
JPS603656B2 (ja) 計算機のメモリ拡張方式
JPH07262004A (ja) プロセッサ
JPH04217027A (ja) 情報処理装置
JPH03161843A (ja) デバッグ装置
JPS63172356A (ja) アドレス変換方式