JPS5848147A - プログラム呼出し方式 - Google Patents

プログラム呼出し方式

Info

Publication number
JPS5848147A
JPS5848147A JP57123084A JP12308482A JPS5848147A JP S5848147 A JPS5848147 A JP S5848147A JP 57123084 A JP57123084 A JP 57123084A JP 12308482 A JP12308482 A JP 12308482A JP S5848147 A JPS5848147 A JP S5848147A
Authority
JP
Japan
Prior art keywords
program
instruction
address
segment
stack
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.)
Granted
Application number
JP57123084A
Other languages
English (en)
Other versions
JPS6259812B2 (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS5848147A publication Critical patent/JPS5848147A/ja
Publication of JPS6259812B2 publication Critical patent/JPS6259812B2/ja
Granted 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の背景 アセンブリ・レベルの言語で1かれた70グラムのサイ
ズは、従来、命令のアドレス・フィールドによってもた
らされるアドレス範囲によって制限されていた。アドレ
ス範囲如よって、サブルーチンおよびデータ作業用記μ
s@購の全てを含む主プログラムが常駐する論理アドレ
ス空間が定義されていた。
論理アドレス空間の制限を克服するため、適用業務プロ
グラマ−は、プログラムの諸部分に、入出力装置から読
み込まれたプログラムの他の部分1、t−バーレイして
いた。オーバーレイによシ、アドレス空間の諸部分をプ
ログラムの異なる部分のために時間系列的に再使用する
ことによって、プログラムのサイズが使用可能アドレス
空間を上回るようにすることができる。プログラムのオ
ーバーレイは、適用業務プログラマ−が論理アドレス空
間の使用を予め計画することを必要とする。
大きな適用業務プログラムでは、プログラム・オーバー
レイは極めて複雑になる。
タスクがより複雑になるにつれて、実行順序に関係なく
、よシ大きなアドレス空間をもたらす必要ができて@左
より大きな論理アドレス空間をアクセスするためのもう
1つの方法が、IBM3600金融機関通信システムで
実現された。これは1つの論理アドレス空間ないしセグ
メントから命令を@シ出して、別の論理アドレス空間な
いしセグメントに記1する回路を設けたものである。こ
の方法は、使用可能なアドレス空間を有効に倍増するが
、プログラムもデータも元のアドレス空間サイズを越え
ることはできない。
上述の簡拳な方法の改良がIBM370アーキテクチャ
の仮想記は間@能を使用した方法によって実現される。
IBM370システムの仮想記i間!!!能は、汎用レ
ジスタ(GPR)3および14ならびに制菌レジスタ1
および7を画用してツーログラム実行を実アドレス空間
ないしセグメントの境界を越えてパスする、いくつかの
命令(たとえばプログラム呼出し、1次移動、プログラ
ム転送など)を追加したものである。GPR3は、戻り
アドレス空間を含み、GPR14は、戻シ命令カウンタ
を含んでいる。劃−レジスタ1は、新しいアドレス空間
に対す・るセグメント・テーブル・ポインタを含み、劃
−レジスタフは古いアドレス空間ないし呼出しアドレス
空間に対するセグメント・テーブル・ポインタを含んで
いる。この仮想記慮間e能によりアドレス空間の境界を
越えた呼出しおよびアドレス空間の境界を越えたデータ
移動がOT能となる。
さらに最近になって、インテル社は上述の各方法をスタ
ック本位に組合せたものを使用したマイクロプロセッサ
・システムを発表した。インテル社のマイクロプロセッ
サでは、コード・セグメントおよびデータ・セグメント
のアドレス空間は、特殊コード・セグメント・レジスタ
および特殊データ・セグメント・レジスタの内容によっ
て定義される。スタック・セグメント・レジスタおよび
予備データ・セグメント・レジスタも設けられている。
セグメント・レジスタの内容は、命令のアドレス・フィ
ールドによって定義できるよりもはるかに大きなアドレ
ス空間中でアドレスを作成するため、シフトされプロセ
ッサ回路によってプログラム命令からの論理アドレスに
加えられる。アドレス空間ないしセグメントはセグメン
ト・レジスタ中のアドレスでスタートし、他のプログラ
ムによって付近のアドレスでスタートするように定義さ
れている他のアドレス空間と同じ広がりをもって、64
にバイトに対してランする。各プログラムは、移動命令
を実行して、セグメント・レジスタ中の基底アドレスを
変更するこ゛とができる。
コード・セグメント・レジスタを更新して、実行を他の
アドレス空間中のプログラムにパスするためのフィール
ドを含む、セグメント間呼出し命令も備えられている。
コード・セグメント・レジスタの更新に加えて、呼出し
プログラムのセグメント基底アドレスおよび呼出しプロ
グラムの命令カウントがスタックにブツシュされる。呼
出されたプログラムがセグメント間リターンを実行する
とき、実行継続のだめ、呼出しプログラムのだめのセグ
メント基底アドレスおよび命令カウントがスタックから
ポツプされる。
上述の先行技術によるアーキテクチャは、プロダラム実
行側−を論理アドレス空間の外側のプログラム命令にパ
スすることをもたらすが、データアドレス空間の管理、
特に再入5T能なまたは再帰的プログラム実行全有効に
もたらすものではない。
例えば、呼出し、プログラムは、呼出されたプログラム
が呼出しプログラムのアドレス空間または新しいデータ
・アドレス空間を利用するかどうかに対する側副手段を
もつ必要がある。−万、再入町q目なまたは反復して呼
出されるプログラムのデータ・アドレス空間に対する必
要性は、呼出されるプログラムとして定義するのが最も
よい。先行技術によるインテル社のシステムではデータ
・アドレス空間の基底アドレスが、セグメント・レジス
タへの移動指令を開用して、呼出しプログラムまたは呼
出されるプログラムのどちらかによって定義できる。ど
ちらのプログラムも、アドレス空間ないしセグメントの
長さを命令のアドレス・フィールドのアドレス範囲以下
に制限できるので、呼出されるプログラムが別のプログ
ラムによって記憶されたデータの上に誓き込″!ないこ
とを保証する@溝はない。
発明の概要 本発明は、異なる論理アドレス空間ないしセグメント中
で作動するプログラム間で実行側−およびデータ・アク
セスをうまくパヌできる能力を与えることにより、所与
の適用業務を適当な数のプログラム又はプログラム・サ
ブルーチンに分割し、その各々をそれぞれ可変長の異な
る論理アドレス空間ないしセグメントに置くことに51
tiQにする。
各プログラムは、それがその論理アドレス空間を占める
唯一のプログラムであるかのように1込むことができる
。これらのプログラムのあるものはプログラム・アドレ
ス空間が例えば16ピツト・アドレス母線によって制限
されている簡#−なマイクロコンピュータ用に、以前に
作成されたものであってもよい。
本発明の重要な側面として、記は域は呼出し実行の一部
として動的に割り振られ、かくて、データまたは制−〇
損失なしに、1つまたはそれ以上の呼出しプログラムに
よって古人可能プログラムの多重並行呼出しが可能であ
る。例えば、プログラムAがプログラムBを呼出し、プ
ログラムBがリターンする前にタスクの切換えが起った
場合には、プログラムBによるプログラムA呼出しの状
況または@能に干渉することナク、プログラムCもプロ
グラムBを呼出すことができる。再帰的な例テハ、プロ
グラムAがプログラムBを呼出し、そしてプログラムB
がプログラムCを呼出す場合、プログラムBによるプロ
グラムA呼出しの状況または@能に干渉することなく、
プログラムCがやはシブログラムBを呼出すことができ
る。
本発明のさらに精巧な例では、記は域を先に呼出しプロ
グラムに割り振られた同じ記1’R’2間から、呼出さ
れ光プログラムに割り振ることができる。
このようにして l出されたプログラムはデータ移動を
伴うことなしに呼出しプログラムのデータ・アドレス空
間をアクセスすることができる。
本発明の実施例では、マイクロプログラムは、各適用業
務の名称およびそれに関連するプログラム・セグメント
基底アドレスおよびセグメント長さを記憶したネーム・
リストを維持している。マイクロプログラムはまた、呼
出される全てのプログラムの各セグメントの状況、基底
アドレスおよび長さを含む、1藺以上のブツシュダウン
・スタックを維持している。望ましくは、各タスクにつ
いて別個のスタックを維持して、タスクをそれらが独立
の出力操作の完了によって決定されるように開始される
のと異なる順序で完了できるようにするとよい。例えば
、タスクをキーボード表示端末ユーザにサービスする仮
想コンピュータトスることができる。
プログラミング言語は、新しいプログラム・セグメント
をプログラム名によって参照し、データ・アドレス空間
を呼出しプログラムと共用にするかそれとも自由記憶域
から新たに割り振るべきかを指定する、呼出し命令を含
むように拡張される。
割り振るべき新しい各記憶セグメントの長さを決定する
ため、プログラム・セグメント中のフィールドがアクセ
スされる。対応するリターン命令がそれ自身のアドレス
空間において呼出しプログラムへ制御を戻す。′ 実施例の説明 ここで第1図を参照すると、命令インタープリタ−11
、ネーム・リスト13、スタック15およびアドレス制
御装置17を含む16ビツト・コンピュータが例示され
ている。これらの要素は、命令インタープリタ−11に
よって実行されるプログラム言語の命令フィールドによ
ってアドレスできるよりも多くの記[2間をもつメモリ
19のアドレシングを制−するように相互作用する。ス
タック15は、望ましくは多重プログラム式環境中の各
タスクまたは主プログラムごとに別個のリストないしス
タックを含むようにするとよい。タスクは、例えば複数
のキーボード表示装置のうちの1つにサービスすること
ができる。記述を完全にするため通常の隊造め演算論狸
機隊(ALU)21が示しである。命令インタープリタ
−11は、命令実行の際に他のメモリrr装置にアドレ
スするためメモリ19から命令を受は暇って、演算論a
機購21およびアドレス制御l[11装置17を劃−す
る。
第2図は、この実施例のネーム・リストの書式を示した
ものである。この実施し1のネーム・リストは26ワー
ドのリストであ1す、各ワードは1つのネーム・フィー
ルド、1つの4バイト・アドレス空間フィールドおよび
1つの2バイト長フイールドを含む。この実施列では、
簡潔にするため、ネームは1バイト中に記はできる単一
の英字に限定しである。実際には、ずっと長いネームが
望まれるはずである。
第3図は第4C図に示すような記は載量命令、すなわち
1つの8ビツト命令コード、論理アドレス空間ないしセ
グメント識別用の2つの4ビツト・フィールドおよび2
つの16ビツト・アドレス・フィールドを含む6バイト
の命令を実行しながら、本発明を用いてアドレス位置を
アクセスするだめの簡vILな実施例を示したものであ
る。各セグメント識別フィールドは、インテル社のマイ
クロ・プロセッサのセグメント上乗り接頭部と類似のも
令レジスタ101に記lされている。第3図はまた、呼
出しプログラムMの最終データ・セグメントの基底アド
レスおよび長さ、呼出されるプログラム用の命令ポイン
タおよび状況バイト、それに呼出されるプログラムNの
各セグメントの基底アドレスおよび長さを含む、スタッ
ク15の一一分を示している。先行技術とは異なり、ス
タック15は、呼出しプログラムに関係する各セグメン
トの長さを含んでいることを指摘しておく。この簡単な
実施しlでは、呼出されるプログラム用のセグメントも
スタック15上に置かれ、各アドレスを計算するためス
タック15から直接使用される。
スタック15の使用により、各セグメントの現基底アト
Vスを配慮するために別個のレジスタ・セットを設ける
必要性がなくなる。
命令レジスタ101およびスタック15のfl!!棹、
第3図には命令解読!!1911の一部である解読・順
序実行装置211が示しである。
第3図にはまた、アドレス側−装置17の一部が示しで
ある。スタック15中の旧しい項目にアクセスするため
、呼出しレベルがセグメント番号フィールドと組み合わ
されている。スタック15のゼロレベルは、所与のタス
クの主プログラムに対する基底セグメント・アドレスお
よび長さを記はしている。別のプログラムに対する呼出
しが行なわれる度に、レベル・レジスタ103中の番号
が増分される。リターン毎にレベル・レジスタ103は
減分される。タスクの切換えが起こると、レジスタ10
3中のレベル番号を保管し、次に新しいタスク中で活動
的な呼出しの数に一致するように切換えなければならな
い。
ANDゲート105は、解読e112211によっテ制
−サれて、レベル・レジスタ103の内容をORゲー)
107’ii経て掛算器109にノくスする。
1)IN器109はこのレベルとスタック′15の各レ
ベル中のバイト数である96を掛ける。掛算器109の
出力が掛算器111の出力と加えられる。
掛1[l5111は、スタック15中の各項目が6バイ
トを含むので、解読機1lf211の制−下でゲート1
13.115を介して受は叡る命令からのセグメント番
号に定数6を掛ける。従って、加算器117の入力は掛
算器109および111に接続され、望みのスタック項
目の最初のバイトを識別する和を生成するよ、うになっ
ている。第3図の例では、望みのスタック項目はデータ
・アドレス空間ないしセグメント2である。スタック1
5がメモリ中に配慮されている場合には、加算器117
の出力が次に基底スタック・アドレスと加算され、第3
図に示すようにデータ項目にアクセスするための実際の
アドレスが得られる。正しいスタック項目にアクセスす
ると、このスタック項目中に配慮されている4バイトの
基底アドレスが加1iii19によって命令の16ビツ
ト・アドレス・フィールドに加えられ、アドレスが得ら
れる。このアドレスがANDゲート121 f介してゲ
ートアウトされ、直接または限られた量の実記憶がより
大きな仮想記はとして働けるようにする配慮管理論理回
路を介して、記μs域にアクセスする。
第2のオペランドは、ゲート114.115、126.
127を用いて同様にして得られ、かくて第2のセグメ
ント・フィールドおよび第2のアドレス・フィールドを
用いて第2のアドレスが生成される。
スタック15を用いたアドレス制御装置17の操作につ
いて説明してきたが、ネーム・リス)Bを用いて項目を
スタック15に入れるために、第4A図の呼出しくCA
LL)命令を実行する命令インタープリタ−11の操作
について次に説明する。第5図を参照すると、命令レジ
スタ101中に本発明の4バイトの呼出し命令が示しで
ある。
この場合も、この命令の第1バイトは命令コードであシ
、これはこの例ではデータ配慮セグメントを新しいプロ
グラム・セグメント中の新しい適用業務プログラムに割
り振り、実行側WUを新しいプログラムに渡すように働
く。各呼出し命令と呼出されてbる新しいプログラムの
名前が関連づけられている。この列では、学−の英字か
ら成るネームを仮定したので、ネーム・フィールドは1
バイトの長さしか必要としない。呼出し命令の第2バあ
る。呼出し命令の第3および第4バイトは、空間割り振
りバイトである。空間割り振りバイトの内容は、ビット
有意である。すなわち、2進数1が所与のピット位置に
存在すると、対応する番号のセグメントが自由記は域か
ら新たに割り振られることを示す。一方、所与のビット
装置に2進数ゼロがあると、呼出されるプログラムに対
する、対応する番号のアドレス空間が呼出しプログラム
の対応する番号のセグメントと同゛じであることを示す
再び第5図を参照すると、命令レジスタ101中の呼出
し命令の命令コード1分が解読されて、解読@WII2
11によって劃−される実行の順序を活動〔ヒする。呼
出し命令の実行順序の第1ステツプは、命令カウントを
4バイトだけ増分することである。こうすると、呼出さ
れたプログラムからリターンするとき、呼出しプログラ
ムの次の命令が開用0T能となる。次に、解読!!I購
211からの出力が、レベル・レジスタ103中の値を
増分する。掛算器109は、この場合も解読@1112
11によって劃−され、増分されたレベル・レジスタ1
03によって指定される新たに割り振られたスタック・
レベルの第1項目を立置づける0命令カウンタは、各レ
ベルの第1項目であるから、加算器151ti、この新
しいレベルに対する次の項目にアクセスするため、スタ
ック・ポインタに数6をv口える。正しいスタック項目
にアドレスすると、命令のネーム・フィールドを用いて
、ネーム・リスト13中の基底アドレスおよび長さデー
タを位置づけ、このアドレスされた項目でスタック15
中に1き込めるようにする。この簡略fヒした例では、
インデックス・カウンタ213がネーム・リスト中の各
エントリを順序づけて、命令のネーム・フィールドをネ
ーム・リスト中の各ネームと比較できるようにする。比
較論理回路215によって一致が検出されると、プログ
ラム・セグメントの基底アドレスと長さを含むアドレス
空間情報がaNDゲ−)217を経て、この新しいレベ
ルでのスタック15中の第2項目であるプログラム項目
にゲートされる。
プログラムの基底アドレスおよび長さをスタック中の適
iEな項目に瞥き込むと、この基底アドレスを用いて、
新しいプログラムの第1の複数起重位置をアクセスし、
このプログラムが必要とする実行人口命令アドレスおよ
び各データ・アドレス空間の長さなどの項目を検索でき
るようにする。
次に第6図を参照しながら、簡単な杉のデータ・アドレ
ス空間の割り振りについて説明する。前述のように呼出
し命令の第3および第4バイトは、ビット有意な空間割
り振りバイトである。データ配慮アドレス空間は、イン
デックス・カウンタ223および自由配慮開始レジスタ
225の制−下で、自由アドレス空間から割り振られる
。自由記憶開始レジスタ225の内容は、プログラム・
アドレス空間またはセグメントの全てが割り振られたと
きに記lされたアドレスである。このレジスタは単に最
初の自由記I装置のアドレスを含むだけである。インデ
ックス・カウンタ2゛23は、この例では各スタック・
レベルに16の項目があるので、ゼロから15までカウ
ントする。簡単にいうと、インデックス・カウンタ22
3は、命令レジスタ101中の空間割り振りバイトのピ
ットへのアクセスを制御し、ヌタツ久項目に対するアク
セスの増分を制御し、プログラム中の第1の複数記1装
置へのアクセスを制御して、スタック中に。
誓き込むべき長さの@を検索できるようにする。
第3図および第5図のものと類似の論理回路を用いて、
レベル・レジスタ103中の1直に96を掛けることに
より、現レベルの第1のスタック項目を位置づける。そ
の積から96を引くと、以前のレベルの対応する項目が
アクセスされる。第6図の簡略「ヒした記障割り振り方
法は、次のように行なわれる。インデックス・カウンタ
223のカウントがゼロの場合、入カポインドの命令カ
ウントがANDゲート239を介して新しいレベルに対
する第1のスタック項目にゲートされる。インデックス
・カウンタ223のカウントが2の場合、命令レジスタ
101中の第3バイトの第3ビツトがANDゲート22
7ならびにインバータ2311データ・セグメントの基
底アドレスをセットアツプされているスタック・レベル
の第3項目中に記はできるようにする。第3ビツトが2
進数1の場合、ANDゲート227は、自由記は開始レ
ジスタ225の内容を基底アドレスとしてスタック15
中にゲートする。同時に、プログラム・セグメントから
の長さがANDゲート237によってスタック15中に
記lされる。自由記l開始レジスタ225の内容がスタ
ック15にコピーされると、加算器235はこの新しい
データ・セグメントの長さを、自由記は開始レジスタ2
25(DIJ、前の内容に加え、かくて新しい自由記憶
開始アドレスが得られる。第3ビツトがこの場合のよう
に2進数ゼロであると、ANDゲート229に接続され
たインバータ231は、プログラムMによって使用され
る対すするデータ・セグメントの基底アドレスおよび長
さを、プログラムNのための第3項目に移動し、それに
よって以前にプログラムMが使用したのと同じデータ・
セグメントをプログラムNが使用できるようになる。こ
うしてプログラムMとNは実際にデータを移動せずに同
じデータを共用することができるので、他のデータを損
傷することが防止される。
第3図に戻ると、呼出し命令を実行する最終ステップと
して、この新しい適用業務プログラムに対する実行アド
レスの開始が新しいレベルにあるスタックの第1項目か
ら検索され、次の命令を吹出すべきアドレスとしてAN
D10Rゲート122.123を経てパスされる。こう
して実行側−が呼出しプログラムから呼出されるプログ
ラムに有効にパスさ才1.る。
ここで第7図の論理図を参照しながら、その論理回路の
例を用いて本発明のリターン命令(RETURN)vi
−説明する。リターン命令は、命令コードだけを含む拳
−バイト命令である。命令コードが解読され、実行順序
が解読機構211によって劃−されると、呼出されるプ
ログラムによって使用された記憶域の割り振りを解除し
、そして制御全呼出しプログラムに戻す。記は域の割り
振シ解除は、インデックス・カウンタ241によって実
施されるが、これはこの場合第6図について上記で説明
したプロセスとは逆に15からゼロへとカウントする。
インデックス・カウンタ241はやはり第6図について
説明したのと同様に呼出されるプログラムおよび呼出し
プログラムの対応する基底アドレスへのアドレスを制−
する。これらの対応する基底アドレスは、排他的ORゲ
ート243およびORゲート245によって比較され、
この2つのアドレスが等しくない場合にはANDゲート
247.249に信号をもたらす。2つのアドレスが等
しくない場合、これは呼出されるプログラム中の基底ア
ドレスが自由記l域から割り振られたことを意味する。
呼出されたプログラムはリターンしているので、以前に
割り振られたデータ記憶域を自由記憶域に戻す1ことが
できる。このことは、この非常に簡畦な列では、割り振
シを解除されるデータ記はアドレス空間の長さを減算器
251中の自由記憶開始レジスタ2i5の内容から引く
ことによって実施される。呼出されるプログラムと呼出
しプログラムの対応するデータ空間の基底アドレスが同
じ場合、呼出されたプログラムは、以前に呼出しプログ
ラムに割シ振られたのと同じアドレスを使用しており、
従ってまだそれらを自由にしてはならない。記l域が割
り振り ・を解除された後、レベル・レジスタ103中
のカウントがリターン命令によって減分され、呼出しプ
ログラムに戻ってその実行を継続できるようになる。リ
ターン命令の最終ステップは、このとき減分すれたレベ
ル・レジスタによって第3図のAND10Rゲート12
2.123を升して指摘される命令カウンIfゲートシ
、呼出しプログラムMの次の順次命令を検索して、プロ
グラムMの実行を継続できるようにする。
第4D図のレジスター記憶域間命令は、本発明を用いて
有利に実現できるさらに進んだ拡張である。この命令の
命令コードはやはり第1バイトである。第2バイトは、
2個のレジスタを指定する。
ただし、第2のレジスタは少くとも3バイトのアドレス
情報を含んでおり、スタック中の情報を使用して任意の
アドレスを位置づけるのに、それが使用できる。第2の
レジスタ中に記憶される情報の第1バイトは、2つの4
ビツト数を含んでいる。
第1の数は第3図に示すレベル・レジスタ103中に記
憶されたレベル番号の代用となるレベル数である。第2
レジヌタの第1バイトの第2の4ピツト数もやはりセグ
メント番号である。第2および第3バイトはやはり16
ビツトの変位ヤある。
第3図に戻ってレジスタR2の内容が命令レジスタ10
1の第2、第3および第4バイト中に記憶されている場
合、A、NDゲート106はレジスタR2からのレベル
・フィールドをレベル・レジスタ103の内容の代用と
することがわかる。第4図の命令は、先行技術の命令と
同じく他のプログラムやそのデータに影響が及ぶ恐れが
あるので無差別に使用してはならない。
【図面の簡単な説明】
第1図は本発明に従ったネーム・リストおよびスタック
を含むコンピュータを示すブロック図、第2図はネーム
・リストの詳細な実施料を示す図、第3図は第1図のア
トシス制御[l装置17の一部を示すブロック図、第4
A図は呼出し命令の様式を示す図、第4B図はリターン
命令の様式を示す図、第4C図Ifi記慮穢間命令の様
式を示す図、第4D図はレジスター記憶載量命令の様式
を示す図、第5図は呼出し命令インタープリタ−の第1
の部分全示すブロック図、第6図は呼出し命令インター
プリタ−のメモリ割り振り部分を示すブロック図、第7
図はリターン命令インタープリタ−のブロック図である
。 出[[人  インタブナシMyし・ビジネス・マシiノ
ズ1ニアーローション代狸人 弁理士  頓   宮 
  孝   −(外1名)

Claims (1)

    【特許請求の範囲】
  1. セグメント間の呼出し命令を実行するためのディジタル
    計算機において、前記呼出し命令の命令コード部分を解
    読し且つ該命令の実行を制菌するだめの命令コード解読
    論理と、前記解読論理によってP8Ufaされ且つ前記
    呼出し命令中の配慮被割振シンイールドの内容にら答し
    て新しいデータ・セグメントを被呼出しツーログラムへ
    割振るとともに、呼出しフ゛ログラムへ割振られたデー
    タ・セグメントをも前記被呼出しプログラムへ割振るた
    めの記ハ蛾割振シ論理とを備えたことを特徴とする、プ
    ログラム呼出し方式。
JP57123084A 1981-09-16 1982-07-16 プログラム呼出し方式 Granted JPS5848147A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US302932 1981-09-16
US06/302,932 US4454580A (en) 1981-09-16 1981-09-16 Program call method and call instruction execution apparatus

Publications (2)

Publication Number Publication Date
JPS5848147A true JPS5848147A (ja) 1983-03-22
JPS6259812B2 JPS6259812B2 (ja) 1987-12-12

Family

ID=23169858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57123084A Granted JPS5848147A (ja) 1981-09-16 1982-07-16 プログラム呼出し方式

Country Status (7)

Country Link
US (1) US4454580A (ja)
EP (1) EP0074479B1 (ja)
JP (1) JPS5848147A (ja)
CA (1) CA1172375A (ja)
DE (1) DE3275668D1 (ja)
ES (1) ES515726A0 (ja)
MX (1) MX158846A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61212248A (ja) * 1985-03-18 1986-09-20 Ajinomoto Co Inc 動物栄養組成物
JPS61212249A (ja) * 1985-03-15 1986-09-20 Ajinomoto Co Inc 飼料用組成物

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3420316C2 (de) * 1983-05-31 1997-01-09 Canon Kk Verfahren zur Steuerung eines Kopiergeräts
US4862351A (en) * 1983-09-01 1989-08-29 Unisys Corporation Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
US4766537A (en) * 1986-01-02 1988-08-23 Motorola, Inc. Paged memory management unit having stack change control register
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
US5189733A (en) * 1989-08-22 1993-02-23 Borland International, Inc. Application program memory management system
WO1991011765A1 (en) * 1990-01-29 1991-08-08 Teraplex, Inc. Architecture for minimal instruction set computing system
DE69216020T2 (de) * 1991-03-07 1997-07-10 Digital Equipment Corp Verbessertes fehlersuchsystem und -verfahren, besonders für die fehlersuche in einer multi-architekturumgebung
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5568642A (en) * 1991-12-26 1996-10-22 Institute Of Software Scientifical Constructions Computer system with easy programming architecture and programming method therefor
US5611043A (en) * 1994-03-18 1997-03-11 Borland International, Inc. Debugger system and method for controlling child processes
JPH085357A (ja) * 1994-06-16 1996-01-12 Kodo Eizo Gijutsu Kenkyusho:Kk 曲面形状入出力装置およびシステム
US5835958A (en) * 1996-10-29 1998-11-10 Sun Microsystems, Inc. Method and apparatus for dynamically sizing non-contiguous runtime stacks
US10120688B2 (en) * 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2258113A5 (ja) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
AU506710B2 (en) * 1974-10-21 1980-01-24 Honeywell Information Systems Incorp. Method of accessing priviledged memory in a multiprogrammed data processing system
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
JPS5311547A (en) * 1976-07-20 1978-02-02 Oki Electric Ind Co Ltd Program call order system
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61212249A (ja) * 1985-03-15 1986-09-20 Ajinomoto Co Inc 飼料用組成物
JPH0441982B2 (ja) * 1985-03-15 1992-07-10 Ajinomoto Kk
JPS61212248A (ja) * 1985-03-18 1986-09-20 Ajinomoto Co Inc 動物栄養組成物

Also Published As

Publication number Publication date
ES8306894A1 (es) 1983-06-01
MX158846A (es) 1989-03-17
EP0074479B1 (en) 1987-03-11
EP0074479A3 (en) 1984-07-04
JPS6259812B2 (ja) 1987-12-12
CA1172375A (en) 1984-08-07
ES515726A0 (es) 1983-06-01
EP0074479A2 (en) 1983-03-23
US4454580A (en) 1984-06-12
DE3275668D1 (en) 1987-04-16

Similar Documents

Publication Publication Date Title
JPS5848147A (ja) プログラム呼出し方式
US3412382A (en) Shared-access data processing system
US3725868A (en) Small reconfigurable processor for a variety of data processing applications
JP3649470B2 (ja) データ処理装置
US5210874A (en) Cross-domain call system in a capability based digital data processing system
EP0011442B1 (en) Data processing system having an integrated stack and register machine architecture
US4777588A (en) General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
Gill Parallel programming
US4109311A (en) Instruction execution modification mechanism for time slice controlled data processors
US5038281A (en) Acceleration of system interrupts between operating systems in guest-host relationship
US4031517A (en) Emulation of target system interrupts through the use of counters
US4466056A (en) Address translation and generation system for an information processing system
GB1353925A (en) Data processing system
US3778776A (en) Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability
US3987420A (en) Electronic computer with equipment for debugging operative programs
KR100385495B1 (ko) 워드정렬브랜치타겟을가지는처리시스템
Lavington The Manchester Mark I and Atlas: a historical perspective
Mayer The architecture of the Burroughs B5000: 20 years later and still ahead of the times?
GB1003924A (en) Indirect addressing system
EP0101718B1 (en) Computer with automatic mapping of memory contents into machine registers
JPS6032220B2 (ja) 情報処理装置
Meggitt A character computer for high-level language interpretation
Hansen The logical structure of the RC 4000 computer
Galler et al. Addressing
JP2743947B2 (ja) マイクロプログラム制御方式