JPH07175656A - 代入用アドレス保持装置 - Google Patents

代入用アドレス保持装置

Info

Publication number
JPH07175656A
JPH07175656A JP5320367A JP32036793A JPH07175656A JP H07175656 A JPH07175656 A JP H07175656A JP 5320367 A JP5320367 A JP 5320367A JP 32036793 A JP32036793 A JP 32036793A JP H07175656 A JPH07175656 A JP H07175656A
Authority
JP
Japan
Prior art keywords
address
data
register
setting
holding
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
JP5320367A
Other languages
English (en)
Inventor
Kenichi Yamazaki
憲一 山▲崎▼
Ryoji Tenkai
良治 天海
雅治 ▲吉▼田
Masaharu Yoshida
Ikuo Takeuchi
郁雄 竹内
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5320367A priority Critical patent/JPH07175656A/ja
Publication of JPH07175656A publication Critical patent/JPH07175656A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 本発明は、TAOのようなプログラム言語に
おける汎用的な代入操作がプログラム言語の処理系の実
行速度を低下させることなく実現される代入用アドレス
保持装置の提供を目的とする。 【構成】 本発明の代入用アドレス保持装置は、記憶装
置60に格納された演算装置50の演算結果データのア
ドレスを保持するアドレス保持手段10と、演算結果デ
ータの種別データを保持する種別データ保持手段20
と、アドレス保持手段10にアドレスを設定するアドレ
ス設定手段30と、種別データ保持手段20に種別デー
タを設定する種別データ設定手段40とから成り、演算
装置50の演算動作に並行して、アドレス保持手段10
にアドレスを設定し、種別データ保持手段20に種別デ
ータを設定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、演算装置と、演算装置
の演算結果データが格納される記憶装置とより成り、演
算結果データが格納された記憶装置のデータ格納場所
(アドレス)に値を代入するデータ処理装置の代入用ア
ドレス保持装置に係り、特に、データ処理装置で実行さ
れるプログラムがサブルーチンを呼出し、そのサブルー
チンの処理結果のデータが返された時、その処理結果の
データのアドレスに値を代入し得るプログラム言語の処
理系の高速化を支援する代入用アドレス保持装置に関す
る。
【0002】
【従来の技術】従来、プログラムがある関数(サブルー
チン)を呼出し、その関数の処理結果のデータが返され
る時、その処理結果のデータが格納されるアドレスに値
を代入し得る典型的なプログラム言語として、Ikuo TAK
EUHI、Hiroshi OKUNO 、及びNobuyasu OHSATO による
“マルチプログラミングパラダイムによるリスト処理言
語TAO(A List Processing Language TAO with Multi
ple Programming Paradigms)”、New Generation Compu
ting論文誌、第4巻、第4号、pp.401-444、1986年に記
載されるTAOが周知である。TAOによれば、例え
ば、変数xへ値1を代入する場合、 (!x 1) のように記述する。一方、この構文は変数xの返した値
が存在する場所(変数xの格納アドレス)に値1を代入
する操作を示すと見做すことにより、ある関数がその関
数の処理の結果を返したデータが存在している場所にデ
ータを代入する構文を同様にして記述することが可能で
あることが分かる。例えば、xを引数とする関数car
が返したデータが存在するアドレスに数値1を代入する
操作は、次のように記述し得る。 (!(car x) 1) ここで、関数carは、car部とcdr部という2つ
の部分からなるリストと呼ばれる構造を有するデータの
car部のデータを取り出す関数である。リスト構造の
データxは、例えば、(2.3)と表記され、ドッ
ト“.”の左側がcar部を表わし、右側はcdr部を
表わす。上の式は、データx、すなわち、(2.3)の
car部に値1を代入する操作を示しているので、この
代入操作により、データxは(1.3)になる。
【0003】上記の関数carの処理により返されたデ
ータが存在している場所への代入操作を行うためには、
リスト構造のデータ(2.3)のcar部のアドレスが
必要になる。関数car自体は、関数内部においてこの
car部のデータのアドレスを算出し、算出されたアド
レスからデータ、この例では値2をロードして、このデ
ータを返す。一方、この関数carの呼び出し側は、一
般に、このデータのアドレスを知り得ない。
【0004】図4は、従来のTAOの実装例を示し、関
数car等における演算処理を行う演算部150と、演
算結果のデータが格納されるメモリ部160と、演算結
果のデータのアドレスとデータ種別とを保持する2つの
汎用レジスタ170とから成る。従来のTAOの実装に
よれば、関数carの処理により返されたデータが存在
している場所への代入操作を行うために、関数car
は、car部のアドレスを計算した時、そのアドレスを
汎用レジスタ170から成るアドレス保持レジスタに設
定し、car部のデータのデータ種別を同様に汎用レジ
スタ170から成る種別レジスタに設定し、次に、関数
carの本来の処理結果であるcar部のデータの値を
返す。関数carの処理が終了して関数carの呼出し
側の処理に戻ると、汎用レジスタ170から成るアドレ
ス保持レジスタと種別レジスタとを利用してデータの代
入が行われる。一方、単に関数carを呼出す場合、す
なわち、car部のデータを取り出す操作だけが行われ
代入操作が行われない場合、関数carにより設定され
た汎用レジスタ170から成るアドレス保持レジスタと
種別レジスタは利用されない。
【0005】かかる代入操作は、より一般的に実現され
得て、例えばリスト構造のcdr部への代入は、 (!(cdr x) 1) と記述することができる。或いは、例えば、配列型のデ
ータの10番目の要素に3を代入するような配列型デー
タの要素への代入操作は、配列アクセス関数arefを
利用して、 (!(aref x 10) 3) と記述することができる。TAOの処理系において、関
数car、関数cdr及び関数arefはシステム定義
関数として提供されているが、代入操作は、かかるシス
テム定義関数に限定されることはなく、ユーザ定義関数
においても実現し得る。例えば、関数abcなるユーザ
定義関数が定義されている場合、 (!(abc x) 1) のように記述して、関数abcの処理により返されたデ
ータが存在している場所への代入操作を行い得る。従来
のTAOの実装例によれば、ユーザ定義関数の返すデー
タへの代入操作は、代入され得るような種別のデータを
返す全ての関数において、上記の説明の如く、汎用レジ
スタ170から成るアドレス保持レジスタ及び種別レジ
スタにそのデータのアドレス及び種別データ夫々を設定
することにより実現される。ユーザ定義関数abcの中
では、様々な関数が呼ばれる場合があり得るが、関数a
bcが返すデータは、関数abcの中で最後に呼び出さ
れた関数の返したデータである。したがって、所望の代
入操作は、汎用レジスタ170から成るアドレス保持レ
ジスタ及び種別レジスタが関数の呼び出しの度に上書き
され、最後に呼び出された関数によって書き込まれたア
ドレス保持レジスタ及び種別レジスタに設定されたデー
タが利用されることにより実現される。
【0006】代入操作が可能な他のプログラム言語とし
て、Guy L. Steele 編集による“Common Lisp ”、Digi
tal Press 、1986年に記載されるプログラム言語Com
mon Lispも周知である。しかし、上記のTAO
による実装例によれば、Common Lispに比べ
て、ユーザ定義関数の返すデータへの代入操作をより容
易に指定し得る。更に、TAOによる代入操作は、Co
mmon Lispによる代入操作に比べてより多くの
場合に対応できる利点を有する。
【0007】
【発明が解決しようとする課題】上記の如く、TAOに
よる従来の代入機構は、容易に理解され、容易に実現さ
れ、及び高い汎用性を有することを特徴とするが、2つ
の汎用レジスタへの設定動作を頻繁に行うことを必要と
する。汎用レジスタを利用しているため、この2つのレ
ジスタへの設定動作には、一般に、機械語命令で2命令
に相当する処理時間を要する。したがって、従来の技術
によれば、TAOの処理系の実行速度は、かかる汎用レ
ジスタへの設定のための処理時間が代入され得るような
データを返す全ての関数呼出しの処理時間に付加される
ために、低下させられる。
【0008】本発明は、上記の従来技術の問題点に鑑
み、TAOのようなプログラム言語における汎用的な代
入操作がプログラム言語の処理系の実行速度を低下させ
ることなく実現される代入用アドレス保持装置の提供を
目的とする。
【0009】
【課題を解決するための手段】図1は、本発明の原理構
成図である。本発明の代入用アドレス保持装置は、記憶
装置60に格納された演算装置50の演算結果データの
アドレスを保持するアドレス保持手段10と、演算結果
データの種別データを保持する種別データ保持手段20
と、アドレス保持手段10にアドレスを設定するアドレ
ス設定手段30と、種別データ保持手段20に種別デー
タを設定する種別データ設定手段40とから成り、演算
装置50の演算動作に並行して、アドレス保持手段10
にアドレスを設定し、種別データ保持手段20に種別デ
ータを設定する。
【0010】
【作用】本発明の代入用アドレス保持装置によれば、プ
ログラムが呼び出した関数(サブルーチン)の処理によ
って関数から返されるデータが存在している場所へ代入
操作を行う場合、呼び出される関数は、返すデータを読
み出すためにこのデータの格納されたアドレスを計算す
る。この関数は、計算されたアドレスをアドレス保持の
ための専用のアドレス保持レジスタに設定し、このデー
タの種別を同様に種別データ保持のための専用の種別レ
ジスタに設定する。さらに、この関数は、本来の処理結
果であるデータの値を返す時、かかるアドレス保持レジ
スタへの設定及び種別レジスタへの設定を関数本来の演
算処理と並行して行うので、プログラム言語処理系の処
理速度を低下させることなく代入用アドレスを専用レジ
スタに保持させ得る。したがって、関数の呼出し側のプ
ログラムによる代入操作は、これらの専用レジスタに格
納されたアドレス及び種別データを利用して、アドレス
を保持するための余分な処理時間を要することなく実現
される。さらに、上記の専用レジスタへの設定は、関数
が処理結果のデータを返す度に行われ、専用レジスタに
は、常に最後に返されたデータのアドレス及び種別デー
タが格納されているので、呼び出し側のプログラムは、
これらの専用レジスタを利用して直前に返されたデータ
のアドレス及び種別を得ることができる。
【0011】
【実施例】以下、図面と共に本発明の一実施例を詳細に
説明する。
【0012】図2は、本発明の一実施例の代入用アドレ
ス保持装置の構成を説明するための図であり、メモリ部
160に格納された演算部150の演算結果データのア
ドレスを保持するアドレス保持レジスタ110と、演算
結果データの種別データを保持する種別レジスタ120
と、アドレス保持レジスタ110にアドレスを設定する
アドレス保持レジスタ設定部130と、種別レジスタ1
20にデータの種別を設定する種別レジスタ設定部14
0とから成る。更に、本発明の一実施例によれば、代入
用アドレス保持装置は、演算部150、アドレス保持レ
ジスタ設定部130及び種別レジスタ設定部140夫々
への命令を含むマイクロ命令が実行クロックに同期して
供給されて、演算部150の演算動作に並行して、アド
レス保持レジスタ設定部130及び種別レジスタ設定部
140の設定動作を指令する信号を出力する命令パイプ
ラインレジスタ180から成る。同図に示される汎用レ
ジスタ170は、演算処理等に利用される汎用のレジス
タである。以下では、アドレス保持レジスタ110をR
PR(RePlace Register)と呼び、種別レジスタ120を
RPF(RePlace Flag)と呼び、演算部150をALUと
呼ぶ。ALU150と、RPR110と、及びRPF1
20は、命令パイプラインレジスタ180に格納された
マイクロ命令によって、独立に、及び並列に制御され得
る。ALU150の動作命令は、命令パイプラインレジ
スタ180からALU制御信号を介してALU150に
入力され、RPR110への設定動作命令は、命令パイ
プラインレジスタ180からRPR制御信号を介してア
ドレス保持レジスタ設定部130に入力され、RPF1
20への設定動作命令は、命令パイプラインレジスタ1
80からRPF制御信号を介して種別レジスタ設定部1
40に入力される。
【0013】図3は、本発明の一実施例による命令パイ
プラインレジスタ180に供給されるマイクロ命令のフ
ィールド割り当てを詳細に示す図である。同図におい
て、LOADRPRは、アドレス保持レジスタ設定部1
30に対するRPR110への設定命令を示し、SET
RPFは、種別レジスタ設定部140に対するRPF1
20への設定指令を示す。ここで、RPF120に設定
される種別データには、プログラム言語やその処理系の
実装方法によって、例えば、8ビット整数、8ビット文
字、16ビット整数、又は一般データ等がある。
【0014】以下に、本発明の一実施例による代入用ア
ドレス保持装置のALU150と、RPR110と、及
びRPF120の並行動作をより詳細に説明する。命令
パイプラインレジスタ180は、入力される実行クロッ
クに同期して、一つのマイクロ命令がロードされる。こ
れにより、ALU150の演算と、RPR110の設定
と、及びRPF120の設定が並行して動作させられ得
る。アドレス保持レジスタ設定部130は、LOADR
PRフィールドにロードされた命令によりRPR110
への設定が指示されると、出力データバス上のデータを
RPR110に設定する。一方、種別レジスタ設定部1
40は、SETRPFフィールドにロードされた命令に
よりRPF120への設定が指示されると、指定された
種別データをRPF120に設定する。更に、ALU1
50は、ALUフィールド、SOURCEフィールド、
及びDESTフィールドにより演算動作が指示され得る
ので、RPR110及びRPF120への設定動作と並
行して、例えば、RPR110及びRPF120に保持
されるデータを入力データバスを経由して入力して、代
入アドレスの計算等を実行し得る。
【0015】本発明の一実施例によれば、例えば、次の
手順でプログラムにより代入操作が実行され得る。 1.代入値を計算等により得る。 2.代入される式、たとえば、変数の読み出し、或い
は、関数(サブルーチン)を実行する。 3.RPF120レジスタに格納された種別データに応
じて、RPR110に格納されたアドレスに1.で得ら
れた代入値を格納する。 上記の手順は、例えば、従来のTAOの処理系によるプ
ログラムの手順と同じである。
【0016】一方、本発明の一実施例によれば、代入さ
れる式として実行される関数、たとえば、関数carの
手順は次の通りである。 1.引き数として渡されたデータのcar部のアドレス
を計算し、同時にLOADRPRの命令にしたがって、
RPR110にその計算結果を設定する。 2.設定データがリスト構造であることをチェックし、
同時にSETPRFの命令にしたがって、RPF120
に種別データを設定する。 3.計算されたアドレスからcar部の値をロードす
る。 4.ロードされた値を関数の返り値として呼び出し側に
返す。 ここで、RPR110及びRPF120への設定は、関
数carの本来の処理と完全に並行に実行されているの
で、代入用アドレスを保持するために余分な処理時間が
必要とされない。したがって、本発明の一実施例によれ
ば、代入操作のための処理は、関数の本来の処理に対し
てオーバーヘッドを発生させない。
【0017】
【発明の効果】上記の如く、本発明によれば、TAOの
ようなプログラム言語における汎用的な代入操作がプロ
グラム言語の処理系の実行速度を低下させることなく実
現され、かかるプログラム言語の処理系の性能を向上さ
せる利点が得られる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の一実施例による代入用アドレス保持装
置の構成の説明図である。
【図3】本発明の一実施例によるマイクロ命令のフィー
ルドを説明する図である。
【図4】従来技術を説明する図である。
【符号の説明】
10 アドレス保持手段 20 種別データ保持手段 30 アドレス設定手段 40 種別データ設定手段 50 演算装置 60 記憶装置 110 アドレス保持レジスタ(RPR) 120 種別レジスタ(RPF) 130 アドレス保持レジスタ設定部 140 種別レジスタ設定部 150 演算部 160 メモリ部 170 汎用レジスタ 180 命令パイプラインレジスタ
フロントページの続き (72)発明者 竹内 郁雄 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 演算装置と、該演算装置の演算結果デー
    タが格納される記憶装置とより成り、該演算結果データ
    が格納された該記憶装置のアドレスに値を代入するデー
    タ処理装置の代入用アドレス保持装置であって、 該アドレスを保持するアドレス保持手段と、 該演算結果データの種別データを保持する種別データ保
    持手段と、 該アドレス保持手段に該アドレスを設定するアドレス設
    定手段と、 該種別データ保持手段に該種別データを設定する種別デ
    ータ設定手段とから成り、 該演算装置の演算動作に並行して、該アドレス保持手段
    に該アドレスを設定し、及び該種別データ保持手段に該
    種別データを設定することを特徴とする代入用アドレス
    保持装置。
JP5320367A 1993-12-20 1993-12-20 代入用アドレス保持装置 Pending JPH07175656A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5320367A JPH07175656A (ja) 1993-12-20 1993-12-20 代入用アドレス保持装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5320367A JPH07175656A (ja) 1993-12-20 1993-12-20 代入用アドレス保持装置

Publications (1)

Publication Number Publication Date
JPH07175656A true JPH07175656A (ja) 1995-07-14

Family

ID=18120690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5320367A Pending JPH07175656A (ja) 1993-12-20 1993-12-20 代入用アドレス保持装置

Country Status (1)

Country Link
JP (1) JPH07175656A (ja)

Similar Documents

Publication Publication Date Title
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPS61122747A (ja) デ−タ処理装置
US3702007A (en) Table driven program
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JPH07175656A (ja) 代入用アドレス保持装置
CA1155231A (en) Pipelined digital processor arranged for conditional operation
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
US6718459B1 (en) Device and method for arithmetic processing
JP2743685B2 (ja) 固定小数点プロセッサ
JP2714015B2 (ja) 論理回路合成装置
JPS59223846A (ja) 演算処理装置
JPS61103245A (ja) 機械語命令体系の拡張方式
JPS6113345A (ja) タグ付デ−タ処理装置
JPH0675757A (ja) 仮想空間常駐プログラムのリンク方式
JPH07129408A (ja) 言語処理プログラムの実行方式
JPS62202264A (ja) ベクトル演算処理方式
JPH02148221A (ja) マイクロ制御装置
JPS63245526A (ja) 情報処理装置
JPH0588890A (ja) データ処理方法
JPH0658632B2 (ja) デ−タ処理装置
JPH05165640A (ja) マイクロプロセッサ
JPS6227827A (ja) マイクロプログラムの分岐制御方式
JPH02230326A (ja) パイプライン情報処理装置
JPH05151000A (ja) 最適な内部呼び出し命令の生成処理方式
JPH02230333A (ja) 変数領域割当て方式