JPS6362039A - 計算機 - Google Patents

計算機

Info

Publication number
JPS6362039A
JPS6362039A JP61208420A JP20842086A JPS6362039A JP S6362039 A JPS6362039 A JP S6362039A JP 61208420 A JP61208420 A JP 61208420A JP 20842086 A JP20842086 A JP 20842086A JP S6362039 A JPS6362039 A JP S6362039A
Authority
JP
Japan
Prior art keywords
stack
pointer
program
software trap
trap
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
JP61208420A
Other languages
English (en)
Inventor
Yasuhiro Nunomura
布村 泰浩
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 JP61208420A priority Critical patent/JPS6362039A/ja
Priority to US07/065,778 priority patent/US4942524A/en
Publication of JPS6362039A publication Critical patent/JPS6362039A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、トラップ機能を備えた計算機に関し、特に
ソフトウェア・トラップの処理方式の改良に関するもの
である。
〔従来の技術〕
計算機で処理されるプログラムの制御を他のプログラム
あるいはルーチシに移す方法として、サブルーチン呼び
出し、割込み、トラップがある。
このうちトラップは、命令実行の直接的かつ即時的結果
として内部発生する割込み要求であり、メモリー管理に
よる例外条件の検出、違法オペレーションや未定義命令
の実行、演算結果のオーバーフローやゼロ除算、デバッ
グ時のブレークポイントやプログラムのトレースの実行
、ソフトウェア・トラップ発生命令の実行により発生す
る。このうち、ソフトウェア・トラップ発生命令はプロ
グラムで故意にトラップを発生させトラップ処理プログ
ラムを呼び出すもので、サブルーチン呼び出しと良く似
に性質のものである。ソフトウェア・トラップ発生命令
は、プログラムの実行環境を変えて、特に、システムに
用意されているサービス・プログラムを呼び出す場合に
用いられる。例えば、米国インテル社の16ビツトマイ
クロプロセツサi A PXf35のINT命令、米国
モトローラ社の16ビツトマイクロプロセッサMO68
000のTRAP命令、あるいは米国ナショナル・セミ
コシダクタ社の32ビツトマイクロプロセツサN532
032のSvO命令がこのソフトウェア・トラップ発生
命令に当たる。
サブルーチン呼び出し、割込み、および、トラップによ
るプログラムの呼び出し制御は、ラストイン・ファース
トアウト形式でデータを蓄積するスタック機構と良くマ
ツチする。現在実行中のプログラムからサブルーチンが
呼び出されたり、割込み、トラップにより別のプログラ
ムに制御が移されたりする時には、戻りアドレスおよび
必要な情報をスタックに保存し、サブルーチンあるいは
割込みやトラップ処理の終了時にスタックに保存されて
いる情報を復元し、さらに、戻りアドレスを復元して、
そのアドレスの命令から実行を再開する。このような機
構によれば、最後に保存された情報が最初に復元される
ので、プログラムが入れ子で呼び出された場合において
も、あるルーチンやプログラムの処理が終了すれば必ず
呼び出し元に制御が戻される。現在の計算機の大部分は
このスタック機構を用いて上述のような制御を行ってい
る。
第5図はこのような呼び出し制御をスタック機構により
行う従来の計算機のブロック図である。
(7)は主記憶装置、に引は実行する命令が格納されて
いる主記憶装置内のアドレスを保持するプログラム・カ
ウンタ、(2:は主記憶装置(7)にラストイン・ファ
ーストアウト形式で蓄積されているデータの最上位位置
を示すスタック・ポインタ、(41は汎用または専用の
レジスタ、(5;は計算機の制御フラグや状態フラグを
保持する制御レジスタ、および、(6b)は制御手段で
ある。主記憶装置(7)には、ラストイン・ファースト
アウト形式でデータを蓄積するためのスタック領域(8
)が設けられ、この領域に蓄積されているデータの最上
位位置をスタック・ポインタ(2)が指している。また
、制御手段(6b)はプログラム・カウンタ(3)の示
す主記憶装置(7)上のアドレスから取り出した命令を
解釈し命令の実行制御を行うとともに、前記プログラム
・カウンタ(3)、スタック・ポインタ(2)、レジス
タ(41,制御レジスタ(51、および、主記憶装置(
7)との間のデータ授受制御を行うものである。
まず、このような計算機におけるトラップ発生時の動作
の一例について説明する。第6図は前記計算機のトラッ
プ発生前後の主記憶装置内のスタックの状態例を示す図
である。トラップ発生直前には、スタック・ポインタ(
2)は、スタック位置〔SO)を保持し、矢印(9)で
示されるように、これまでのプログラムの実行によって
スタック領域(81内に蓄積されたデータの最上位位置
を指している。
トラップが発生すると、戻りアドレスを含む必要な情報
がスタック領域のスタック位置(so−1−1〕からス
タック位置〔S1b〕の間に保存され、スタック・ポイ
ンタ(21の内容が、矢印(10b)で示されるように
、スタック位置(slb)に更新される。次いで、それ
ぞれの計算機あるいはオペレーティング・システムによ
り決められている特定のトラップ処理のプログラムの先
頭アドレスがプログラム・カウンタ(3)に格納される
。したがって次の命令はこのプログラム・カウンタ(3
)に格納された主記憶装置のアドレスから取り出され実
行される。スタック位置(so+lからスタック位置(
Slb)の間に保存される情報は、プログラム・カウン
タ(3)の内容(戻りアドレス)の他、制御レジスタ(
5)の内容、汎用または専用レジスタ(4)の内容、主
記憶装置内の特定のデータ等が考えられる。例えば、モ
トローラ社のM O68Q f) Qでは、戻υアドレ
ス、および、制御レジスタの内容が保存される。
次いで、上述のトラップ発生に対応するトラップ復帰時
の動作について説明する。トラップ処理のプログラムで
は、何等かの目的のためスタック領域が使用されるかも
しれないが、トラップ復帰の直前には、それらのスタッ
ク領域は解放され、スタック・ポインタはトラップが発
生した直後の矢印(10k))の状態になっている必要
がある。この状態からスタックの最上位位置にあるスタ
ック位置(SO+1)からスタック位置(slb)の間
の情報が復帰されるが、それらは、トラップ発生時に退
避された情報であり、制御レジスタや汎用または専用レ
ジスタの内容が退避されていればそれらが復帰され、主
記憶装置内の特定のデータが退避されていれば必要なも
のが復帰され、戻りアドレスが復帰される。この戻りア
ドレスの復帰により、トラップ発生前に実行中であった
プログラムに制御が戻される。また、スタ゛ンク・ポイ
ンタは、矢印(91のようにトラップ発生前の状態に戻
される。
以上述べたトラップ発生時およびトラップからの復帰時
の制御は制御手段(6b)が行う。
このような計算機においては、スタックはプログラムや
サブルーチ〉を呼び出すごとに動的に成長してゆく。例
えば、第7図のフローチャートに示すようにプログラム
Aがソフトウェア・トラップ発生命令によりシステム・
プログラムSを呼び出し、呼び出されたシステム・プロ
グラムSがサブルーチンBを呼び出した場合、スタック
の変化は@8図のようになる。スタック・ポインタ(2
)はソフトウェア・トラップ発生命令実行直前には、実
線の矢印■のようにスタック位置(spo)を指してい
るが、ソフトウェア・トラップ発生命令実行により発生
するトラップの動作によって戻りアドレスを含む情報が
スタックの一番上である領域(211))に保存される
と、破線の矢印(31b)のようにスタック位置(sp
lb)を指すようになる。
また、システム・プログラムSの処理1(第7図)の実
行時に何等かの目的のために領域■が使用されるとする
と、システム・プロでラムSからサブルーチンBを呼び
出す直前には、スタック・ポインタは破線の矢印(32
)のようになり、スタック位1t(SF3)を指す。次
いで、サブルーチンBを呼び出する、戻りアドレスを含
む情報がスタックの一番上である領域のに保存され、ス
タック・ポインタは破線の矢印(33)のようにスタッ
ク位置(sp3)を指すようになる。  〜 この例において、サブルーチンBの処理3(第7図)の
実行が、ソフトウェア・トラップ発生命令によって(2
1b)の領域に退避されたプログラムAの情報によって
制御されるとする。例えば、(21b)の領域に割込み
許可の識別情報が含まれており、サブルーチンBの実行
中に発生した割込み要求に対し割込みの許可をこの識別
情報によって決定するような場合等が考えられる。この
ような場合の処理には決の2通りの方法が考えられる。
一つは、ソフトウェア・トラップ発生命令によって(2
1b)の領域に退避された情報から識別情報を参照する
という方法である。それには、まず、サブルーチン呼び
出しやトラップおよび割込み時に、以前のサブルーチ〉
呼び出しやトラップおよび割込み時に保存した情報の記
憶場所を示すスタック位置を、戻りアドレスとともに保
存する必要がある。そして、サブルーチンBから領域(
21k))の識別情報を参照する時には、領域@に退避
された情報から、領域(211))を示すスタック位置
を知り、その結果によって目的とする識別情報を参照す
る、という手続きをとらなければならない。
もう一つは、サブルーチンBで用いられる識別情報をそ
れぞれの呼び出しの際にパラメータとして引き渡すとい
う方法である。そのためには、システム・プログラムS
からサブルーチンBを呼び出す際に、領域(21b)の
中の識別情報を領域(231にコピーするという手続き
をとらなければならない。
この場合、サブルーチンBからの識別情報の参照は領域
のにある元の識別情報のコピーを参照する。
この例のように呼び出しの段数が少ない場合は識別情報
参照のための余分な手続きは余シ問題にならないが、何
段階にも入れ子で呼ばれているサブルーチンや再帰的に
呼び出されているサブルーチ〉から識別情報を参照する
場合等は、この余分な手続きは処理の効率を大きく低下
させるものである。また、後者の方法では、識別情報参
照時の効率は前者に比べてよいが、呼び出しごとに識別
情報をコピーするため、コピーのための無駄な記憶領域
を必要とする。この無駄は、識別情報のサイズが大きく
なったり、呼び出しの入れ子の段数が大きくなるにつれ
て増加する。
また、スタック機構の、プログラムの制御が必ず呼び出
し側に戻されるという性質は、時には不都合な場合があ
る。例えば、サブルーチンBの実行中に、プログラムA
からシステム・プログラムSの呼び出し条件のエラーが
原因でエラー・トラップが発生し、それによりエラー処
理プログラムが呼び出された場合、たとえエラー処理プ
ログラムで、システム・プログラムSの処理の続行が不
可能であると判定されても、プログラム制御はプログラ
ムAにすぐには戻されず、第7図の矢印(53b)のよ
うにエラー処理プログラムからトラップ復帰によりサブ
ルーチン実行時され、第7図の矢印(54)のようにサ
ブルーチンBからシステム・プログラムSに復帰され、
さらに、第7図の矢印(55b)のようにシステム・プ
ログラムSからトラップ復帰をすることによって、初め
てプログラムAに制御が戻される。これは明らかに余分
な処理である上に、システム・プログラムSの残りの処
理(第7図の処理2)においても、前のエラーが原因と
なって別のエラーが発生するというエラーの連鎖反応を
避けるため、さらに余分なエラー判定処理を行う必要が
ある。このようなエラー判定の処理はエラーのない通常
の処理においても同様に実行されるのでプログラム処理
の効率を低下させるものである。
〔発明が解決しようとする問題点〕
従来の技術では、ソフトウェア・トラップ発生命令によ
り直接的または間接的に呼び出された被呼び出し側プロ
グラムやサブルーチンを実行する際、ソフトウェア・ト
ラップ発生時に記憶装置に退避された呼び出し側プログ
ラムの情報を参照するのは非常釦困難であり、割込み許
可等の細かい制御が複雑な処理となってしまうとともに
、前記被呼び出し側プログラムやサブルーチンからソフ
トウェア・トラップ発生命令を実行した前記呼び出し側
プログ、ラムに直ちに制御を戻すことが困難であるとい
う問題点がある。
この発明は、上記のような問題点を解消するためになさ
れたもので、ソフトウェア・トラップ発生命令により直
接的または間接的に呼び出された被呼び出し側プログラ
ムやサブルーチンを実行する際に、ソフトウェア・トラ
ップ発生時に記憶装置に退避された呼び出し側プログラ
ムの情報な容易に参照することができるとともに、前記
被呼び出し側プログラムやサブルーチンからソフトウェ
ア・トラップ発生命令を実行した前記呼び出し側プログ
ラムに直ちに制御を戻すことができる計算機を得ること
を目的とする。
〔問題点を解決するための手段〕
この発明にかかる計算機は、記憶装置に退避された情報
の記憶位置を保持するためのソフトウェア・トラップ処
理専用ポインタを設け、ソフトウェア・トラップ発生時
に前記ポインタの内容を含む情報をスタック機構によっ
て記憶装置に退避させ、退避位置を示す値を前記ポイ〉
りに格納させるとともに、ソフトウェア・トラップ復帰
時にソフトウェア・トラップ発生時に前記記憶装置に保
存された前記ポインタの内容を含む情報をスタック機構
によって復元させる制御手段を設けたものである。
〔作用〕
この発明におけるソフトウェア・トラップ処理専用ポイ
ンタは、ソフトウェア・トラップ発生時に記憶装置に退
避された情報の記憶位置を保持し、ソフトウェア・トラ
ップ発生命令により直接的または間接的に呼び出された
プログラムやサブルーチン実行時にそれらの情報参照を
容易にする。
この発明における制御手段は、ソフトウェア・トラップ
発生時にソフトウェア・トラップ発生命令を実行する前
のプログラムの実行状態やソフトウェア・トラップ処理
専用ポインタの内容あるいはこれ以外の何等かの情報を
、スタック機構により記憶装置に退避させ、その記憶位
置を前記ソフトウェア・トラップ処理専用ポインタに格
納させるとともに、ソフトウェア・トラップ復帰時に前
のソフトウェア・トラップ発生時に記憶装置に退避され
たソフトウェア・トラップ処理専用ポインタの内容を含
む情報を復元させる。
〔実施例〕
以下、この発明の一実施例を図にしたがって説明する。
第1図はこの発明の一実施例による計算機のブロック図
である。(11はソフトウェア・トラップ処理専用のポ
インタ、(7)は主記憶装置、(3)は実行する命令が
格納されている主記憶装置内のアドレスを保持するプロ
グラム・カウンタ、(2)は主記憶装置(7)Kラスト
イン・ファーストアウト形式で蓄積されているデータの
最上位位置を示すスタック・ポインタ、(4)は汎用ま
たは専用のレジスタ、(5)は計算機の制御フラグや状
態フラグを保持する制御レジスタ、(6a)は制御手段
である。主記憶! fil、 (71には、ラストイン
・ファーストアウト形式でデータを蓄積するためのスタ
ック領域(8)が設けられ、この領域に蓄積されている
データの最上位位置をスタック・ポインタ(2)が指し
ている。また、制御手段(6a)はプログラム・カウン
タ(31の示す主記憶装置(7)上のアドレスから取り
出した命令を解釈し命令の実行制御を行うとともに、前
記ソフトウェア・トラップ処理専用ポインタ(1)、プ
ログラム・カウンタ(3)、スタック・ポインタ(2)
、レジスタ(41、制御レジスタ15八および主記憶装
置(7)との間のデータ授受制御を行うものである。
まず、この発明の前記実施例の計算機におけるソフトウ
ェア・トラップ発生命令実行によるソフトウェア・トラ
ップ発生時の動作の一例について説明する。第2図は前
記計算機のソフトウェア・トラップ発生前後の主記憶装
置内のスタックの状態例を示す図である。ソフトウェア
・トラップ発生直前には、スタック・ポインタ(2)は
スタック位置(SO)を保持し、矢印19+で示される
ように、これまでのプログラムの実行によってスタック
領域181内に蓄積されたデータの最上位位置を指して
いる。また、ソフトウェア・トラップ処理専用ポインタ
は、矢印Iで示されるように、以前のソフトウェア・ト
ラップ発生命令によって退避された情報のスタック位置
を保持している。ソフトウェア・トラップが発生すると
、ソフトウェア・トラップ処理専用ポインタの内容や戻
りアドレスを含む情報がスタック領域のスタック位51
(SO+1〕からスタック位置(Sla)の間に保存さ
れ、スタック・ポインタ(2)とソフトウェア・トラッ
プ処理専用ポインタ(1)の内容が、ともに矢印(10
a)、およびαりで示されるように、スタック位置〔5
la)に更新される。次いで、それぞれの計算機あるい
はオペレーティング・システムにより決められている特
定のソフトウェア・トラップ処理のプログラムの先頭ア
ドレスがプログラム・カウンタ(31に格納される。し
たがって、次の命令はこのプログラム・カウンタ(3)
に格納された主記憶装置のアドレスから取り出され実行
されるが、これ以後のソフトウェア・トラップ処理専用
ポインタの内容は、新たに別のソフトウェア・トラップ
が発生しない限り、ソフトウェア・トラップ復帰を行う
まで変更されない。スタック位置(So+1)からスタ
ック位置LSl&)の間に保存される情報は、ソフトウ
ェア・トラップ処理専用ポインタ(1)の内容やプログ
ラム・カウンタ(31の内容(戻りアドレス)の他、制
御レジスタ15)の内容、汎用または専用レジスタ(4
)の内容、主記憶装置内の特定のデータ等が考えられる
次いで、上述のソフトウェア・トラップ発生に対応する
ソフトウェア・トラップ復帰時の動作について説明する
。ソフトウェア・トラップ処理プログラム中で何等かの
目的のためスタック領域が使用された場合、スタック・
ポインタは、ソフトウェア・トラップ発生直後の矢印(
10a)で示される状態にはないかもしれない。しかし
、ソフトウェア・トラップ処理専用ポインタが矢印qz
で示される状態にあるので、ソフトウェア・トラップ復
帰の直前においても、それらのスタック領域は解放する
必要はない。ソフトウェア・トラップ復帰の最初にソフ
トウェア・トラップ処理専用ポイ〉りの内容がスタック
・ポインタにコピーされ、自動的にこれらのスタック領
域は解放される。この状態からスタックの最上位位置に
あるスタック位置(SO+1)からスタック位置(Sl
a)の間の情報が復帰されるが、それらは、ソフトウェ
ア・トラップ発生時に退避された情報であり、制御レジ
スタや汎用または専用レジスタの内容が退避さ゛れてい
ればそれらが復帰され、主記憶it内の特定のデータが
退避されていれば必要なものが復帰され、戻りアドレス
およびソフトウェア・トラップ処理専用ポインタの内容
が復帰される。この戻りアドレスの復帰によりソフトウ
ェア・トラップ発生命令を実行したプログラムに制御が
戻され、ソフトウェア・トラップ処理専用ポインタの内
容の復帰によシッフトウエア・トラップ処理専用ポイン
タは、矢印圓で示されるように、ソフトウェア・トラッ
プ発生前の状態になる。また、スタック・ポインタは、
矢印+91のようにトラップ発生前の状態に戻される。
以上述べたトラップ発生時およびトラップからの復帰時
の制御は制御手段(6&)が行う。
この計算機においても、スタックはプログラムやサブル
ーチンを呼び出すごとに動的に成長し、それにともなっ
て、スタック・ポインタの内容も動的に変化する。ソフ
トウェア・トラップ処理専用ポインタの内容はソフトウ
ェア・トラップの処理が終了するか、あるいは、新たに
ソフトウェア・トラップ発生命令が実行されるまで変化
しないっ例えば、第3図のフローチャートに示すように
プログラムAがソフトウェア・トラップ発生命令により
システム・プログラムSを呼び出し、呼び出されたシス
テム・プログラムSがサブルーチンBを呼び出した場合
、スタックの変化は第4図のようになる。ソフトウェア
・トラップ発生命令実行直前には、ソフトウェア・トラ
ップ処理専用ポインタil+は、破線の矢印(40)の
ように以前のソフトウェア・トラップ発生命令によって
主記憶装置に退避された情報のスタック位置を指してお
り、スタック・ポインタ(21は、実線の矢印(30)
のようにスタック位置(spo )を指しているが、ソ
フトウェア・トラップ発生命令実行によりソフトウェア
・トラップ処理専用ポインタ(]1の内容および戻りア
ドレスを含む何等かの情報がスタックの一番上である領
域(21a)に保存されると、ソフトウェア・トラップ
処理専用ポインタil+およびスタック・ポインタ(2
)はともに実線の矢印(41)や破線の矢印(31a)
のようにスタック位置(SPla)を指すようになる。
また、システム・プログラムSの処理1(第3図)の実
行時に何等かの目的のために領域のが使用されるとする
と、システム・プログラムSからサブルーチンBを呼び
出す直前には、スタック・ポインタは破線の矢印(32
)のようになり、スタック位置(sp2)を指す。次い
で、サブルーチンBを呼び出すと戻りアドレスを含む何
等かの情報がスタックの一番上である領域[有]に保存
され、スタック・ポインタは破線の矢印(33)のよう
にスタック位置(SF3)を指すようになる。しかし、
ソフトウェア・トラップ処理専用ポインタの内容はソフ
トウェア・トラップの処理がすべて終了するか、新たに
別のソフトウェア・トラップ発生命令が実行されるまで
変化しない。例えば、第3図のサブルーチンBの処理+
31の実行時に新たにソフトウェア・トラップ発生命令
が実行された場合、上述と同様にソフトウェア・トラッ
プ処理専用ポインタおよび戻りアドレスを含む情報がス
タックに退避され、新たな値がソフトウェア・トラップ
処理専用ポインタに格納される。しかし、この新たなソ
フトウェア・トラップの処理が終了すると退避されてい
るソフトウェア・トラップ処理専用ポインタの内容をス
タックから復帰することによシ前の状態を復元すること
ができる。
この例において、サブルーチンBの処理3(第3図)の
実行が、ソフトウェア・トラップ発生によって(211
4L)の領域に退避されているプログラムAの情報によ
って制御されるとする。例えば、(21a)の領域に割
込み許可の識別情報が含まれており、サブルーチンBの
実行中に発生した割込み要求に対し割込みの許可をこの
識別情報によって決定するような場合等が考えられる。
このような場合には、ソフトウェア処理専用のポインタ
111の内容から領域(21a)に退避された情報内の
識別情報の位置を割出せば直ちに識別情報は参照できる
ソフトウェア・トラップ発生時に退避される情報4の形
式は、それぞれの計算機に固有のものであシ、識別情報
ρ位置は常にソフトウェア・トラップ処理専用ポインタ
111力゛を指すスタック位置の内容から一定の値だけ
離れた位置にある。したがって、識別情報をサブルーチ
〉Bから参照する場合だけでなく、ソフトウェア・トラ
ップ発生命令によって直接的または間接的に呼び出され
たどの様なプログラム詔よびサブルーチンからでも、別
のソフトウェア・トラップア;実行中でない限り同様に
して参照できる。
また、ソフトウェア・トラップ処理専用ポイ〉りの指す
情報には一番最後に実行されたソフトウェア・トラップ
発生命令により退避された戻りアドレスが含まれるため
、プログラムの入れ子の状態がどの様になっていても、
一番最後に実行されたソフトウェア・トラップ発生命令
の呼び出し側に制御を戻すことができる。例えば、サブ
レーナ>Bの実行中に、プログラムAからのシステム・
プログラムSの呼び出し条件のエラーが原因でエラー・
トラップが発生し、それによりエラー処理プログラムが
呼び出された場合、エラー処理プログラムシステム・プ
ログラムSの処理の続行が不可能であると判定されれば
、第3図の矢印(53a)のようにソフトウェア・トラ
ップ復帰によってプログラムの制御は直ちにプログラム
Aに戻される。
したがって、システム・プログラムSの処理2(第3図
)において、エラーの連鎖反応を避けるための余分なエ
ラー判定処理を行う必要はなく、プログラムの処理の効
率がよくなる。もちろん、エラー処理プログラムの処理
4(第3図)でエラー回復が可能となった場合は、第3
図の点線の矢印(56)のように従来のトラップ復帰に
よってサブルーチンBに戻ることも可能である。
なお、上記実施例においては、主記憶装置内のスタック
領域およびスタック・ポインタの数はそれぞれ1つであ
ったが、複数のスタック領域および複数のスタック・ポ
インタが設けられていて、ソフトウェア・トラップ処理
専用ポインタとそれ以外の情報が別々のスタックに退避
されたり、ソフトウェア・トラップ発生命令によってス
タックが別のスタックに切シ換えられたり、さらには、
ソフトウェア・トラップ処理専用ポインタのための専用
のスタックを新たに別の記憶1ii(例えばレジスタ・
スタックやキャッシュ・メモリ)を設けることにより実
現してもよい。また、汎用または専用レジスタや制御レ
ジスタはなくてもよく、複数あってもよい。何れの場合
にも、上記実施例と同様の効果が得られる。
〔発明の効果〕
以上のように、本発明によれば、ソフトウェア・トラッ
プ処理専用のポインタを設け、ソフトウェア・トラップ
発生命令実行時に前記ポインタの内容を含む情報を記憶
装置に退避させ、退避位置を示す値を前記ソフトウェア
・トラップ処理専用のポインタに格納させるとともに、
ソフトウェア・トラップ復帰時に記憶装置に退避された
前記ポインタの内容を含む情報を復元させる制御手段を
設けたので、退避された前記情報をソフトウェア・トラ
ップ発生命令により直接的または間接的に呼び出された
プログラムやサブルーチンから同一の方法で容易に参照
できるとともに、前記プログラムやサブルーチンからソ
フトウェア・トラップ発生命令を実行したプログラムに
直ちに制御を戻すことができる。
【図面の簡単な説明】 第1図はこの発明の一実施例による計算機のブロック図
、第2図は前記計算機におけるソフトウェア・トラップ
発生命令実行前後の主記憶装置内のスタックの状態変化
を示す図、第3図は、前記計算機のソフトウェア・トラ
ップ処理実行例におけるプログラムの制御の移り変わり
を表すフローチャート、!4図は、前記処理実行例にお
けるスタックの変化を示す図、第5図は、ソフトウェア
・トラップ発生命令を持つ従来の計算機の構成図、第6
図は、従来の計算機のソフトウェア・トラップ発生命令
実行前後の主記憶装置内のスタックの状態変化を示す図
、第7図は、従来の計算機のソフトウェア・トラップ処
理実行例にたけるプログラムの制御の移り変わりを表す
フローチャート、第8図は、前記処理実行例におけるス
タックの変緩を示す図である。 (11はソフトウェア・トラップ処理専用ポインタ、(
7)は主記憶装置、(3)はプログラム・カラシタ、(
2)はスタック・ポインタ、(4)は汎用または専用レ
ジスタ、(51は制御レジスタ、(6a)および(6b
)は制御手段である。 なお、各図中同一符号は同一または相当部分を示す。

Claims (1)

    【特許請求の範囲】
  1. 記憶装置を持ち、ソフトウェア・トラップを発生する命
    令を持つ計算機において、ソフトウェア・トラップ処理
    専用のポインタを備え、ソフトウェア・トラップ発生時
    に上記ポインタの内容および何等かの必要情報を上記記
    憶装置にラストイン・ファーストアウト形式で保存させ
    るとともに、保存位置を示す値を上記ポインタに格納さ
    せ、また、ソフトウェア・トラップ復帰時に上記記憶装
    置に保存された上記必要情報および上記ポインタの内容
    を復元させる制御手段を持つことを特徴とする計算機。
JP61208420A 1986-09-03 1986-09-03 計算機 Pending JPS6362039A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61208420A JPS6362039A (ja) 1986-09-03 1986-09-03 計算機
US07/065,778 US4942524A (en) 1986-09-03 1987-06-24 Software trap system which saves previous content of software trap handling pointer in a stack upon execution of a trap

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61208420A JPS6362039A (ja) 1986-09-03 1986-09-03 計算機

Publications (1)

Publication Number Publication Date
JPS6362039A true JPS6362039A (ja) 1988-03-18

Family

ID=16555930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61208420A Pending JPS6362039A (ja) 1986-09-03 1986-09-03 計算機

Country Status (2)

Country Link
US (1) US4942524A (ja)
JP (1) JPS6362039A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5463778A (en) * 1989-11-16 1995-10-31 Texas Instruments Incorporated User controlled trap handler
JP2505950B2 (ja) * 1991-05-13 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
DE69228980T2 (de) * 1991-12-06 1999-12-02 National Semiconductor Corp., Santa Clara Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US5274817A (en) * 1991-12-23 1993-12-28 Caterpillar Inc. Method for executing subroutine calls
US5640582A (en) * 1992-05-21 1997-06-17 Intel Corporation Register stacking in a computer system
US6253317B1 (en) * 1997-01-09 2001-06-26 Sun Microsystems, Inc. Method and apparatus for providing and handling traps
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis
US7770169B2 (en) * 2004-05-17 2010-08-03 Oracle America, Inc. Thread rendezvous for read-only code in an object-oriented computing environment
US20200409711A1 (en) * 2019-06-29 2020-12-31 Intel Corporation Processor instruction support for mitigating controlled-channel and cache-based side-channel attacks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5994147A (ja) * 1982-11-19 1984-05-30 Toshiba Corp スタツク制御方式
JPS6353650A (ja) * 1986-08-22 1988-03-07 Mitsubishi Electric Corp 計算機

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3725876A (en) * 1972-02-08 1973-04-03 Burroughs Corp Data processor having an addressable local memory linked to a memory stack as an extension thereof
US3909797A (en) * 1973-12-13 1975-09-30 Honeywell Inf Systems Data processing system utilizing control store unit and push down stack for nested subroutines
GB1507428A (en) * 1976-03-18 1978-04-12 Int Computers Ltd Data processing systems
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems
US4742449A (en) * 1981-04-23 1988-05-03 Data General Corporation Microsequencer for a data processing system using a unique trap handling technique
US4679138A (en) * 1981-04-23 1987-07-07 Data General Corporation Microsequencer in a data processing system using stack storage for controlling the sequencing of microroutines
US4628477A (en) * 1983-10-17 1986-12-09 Sanders Associates, Inc. Programmable push-pop memory stack
US4719565A (en) * 1984-11-01 1988-01-12 Advanced Micro Devices, Inc. Interrupt and trap handling in microprogram sequencer
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5994147A (ja) * 1982-11-19 1984-05-30 Toshiba Corp スタツク制御方式
JPS6353650A (ja) * 1986-08-22 1988-03-07 Mitsubishi Electric Corp 計算機

Also Published As

Publication number Publication date
US4942524A (en) 1990-07-17

Similar Documents

Publication Publication Date Title
US5369770A (en) Standardized protected-mode interrupt manager
EP2548115B1 (en) Apparatus and method for handling exception events
US7774636B2 (en) Method and system for kernel panic recovery
JP2001516922A (ja) ハードウェア補助コンテキスト切換え機能を備えたデータ処理装置
US7007198B2 (en) Method for handling exceptions of applications
JPH10301807A (ja) コンピュータソフトウェアの評価のための高速トラップ
US4942524A (en) Software trap system which saves previous content of software trap handling pointer in a stack upon execution of a trap
US5933622A (en) Method for efficient handling of asynchronous events in a dynamic translation system
WO2006132807A2 (en) Microprocessor instruction that allows system routine calls and returns from all contexts
CN119336452A (zh) 面向星载操作系统的riscv处理器异常上下文保护和恢复方法
JP2500804B2 (ja) 計算機
JP2561460B2 (ja) ソフトウエアトラツプ制御方式
US6851006B2 (en) Interruption handler-operating system dialog for operating system handling of hardware interruptions
JPH0895798A (ja) データ処理装置
US8091077B1 (en) System and method for handling rare events by modification of executable code
JP2795676B2 (ja) プログラムトレース装置
JP3480903B2 (ja) エミュレータにおける全命令トレースの制御方法
JPH0262633A (ja) プログラム間通知方式
JP2004021610A (ja) タスク管理装置
JPH02156335A (ja) レジスタ退避方式
JPS63118949A (ja) 情報処理装置
JPS60214046A (ja) 異常終了処理制御方式
GB2500844A (en) Selecting either base level or further level stack when processing data in current further level exception state above base level
JPS62232054A (ja) スタツクフレ−ム記述子の管理方式
JPS59146341A (ja) Osのマイクロプログラム制御方式