JPH03184123A - デジタルデータプロセッサのための手続き状態記述子システム - Google Patents

デジタルデータプロセッサのための手続き状態記述子システム

Info

Publication number
JPH03184123A
JPH03184123A JP2243664A JP24366490A JPH03184123A JP H03184123 A JPH03184123 A JP H03184123A JP 2243664 A JP2243664 A JP 2243664A JP 24366490 A JP24366490 A JP 24366490A JP H03184123 A JPH03184123 A JP H03184123A
Authority
JP
Japan
Prior art keywords
procedure
state
invoked
executed
descriptor
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
JP2243664A
Other languages
English (en)
Inventor
John R Ellis
ジョン アール エリス
Charles G Nylander
チュールズ ジー ナイランダー
R Kim Peterson
アール キム ピーターソン
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH03184123A publication Critical patent/JPH03184123A/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

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は一般にデジタルデータ処理システムの分野、さ
らに言えば、デジタルデータ処理システムによって実行
されている手続きの、正確な実行状態の表示を与えるシ
ステムに関する。
発明の背景 デジタルデータ処理システムは、基本的に、中央処理装
置、メモリ、それに入出力装置の3つの要素から成る。
中央処理装置は、時にはアプリケーションプロセスと呼
ばれる、プログラム中に存在する命令のセットに従って
、そこへと与えられたデータを操作する。メモリは、デ
ータ、プログラム命令、中間データ、それとシステムを
オペレイトするために要求されるシステム状態情報、及
びデータ操作を行った後に得られた最後の出力結果を記
憶するために用いられる。情報の各々の要素、命令、デ
ータ及び状態情報は、メモリの特定の所定アドレス内に
記憶される。入出力装置は、データ及びプログラム命令
をシステム内に入力させたり、そこから出力状態メツセ
ージやデータ操作の最後の出力を受信するための手段を
与える。
デジタルデータ処理システムが動作している時、中央処
理装置は、検索、あるいはフエツチング、メモリからの
情報、情報が命令かあるいはデータであるかという判断
、命令に従ってツェナされたデータの操作、それにデー
タ操作の結果のメモリ内への記憶によって動作を行う。
デジタルデータ処理システム上で実行するプログラムは
どんなものであっても、−船釣には手続きと呼ばれる多
数の小さなエンティティから作られており、それら各々
は特定のタスクを達成するよう設計されており、そして
中央処理装置実行可能命令のセットから成り立っている
。幾つかの手続きはユーザに供給されたソースコード内
に包含されている高レベル命令に基づいている。例えば
2つの数を足し合わせるためのユーザドラフト(use
r−drafted)命令は、選択されたメモリアドレ
スロケーションから数を検索し、それらの数を足し合わ
せ、そしてそれらの数の和をメモリアドレスロケーショ
ンに記憶するといった命令を含んだ、中央処理装置実行
可能手続きに変換される。
また他の中央処理装置実行可能手続きは、デジタルデー
タ処理システムのためのハウスキーピングフンクション
(housekeeping functions)を
実行する。例えば、ある手続きはデータ命令を入出力デ
バイ2からメモリロケーション内にロードし、また他の
手続きは入出力デバイスにメモリロケーション内に記憶
された情報を提供してくれるのである。ハウスキーピン
グ手続きは一般的に、オペレーティングシステムの一部
であり、アプリケーション処理の実行をデジタルデータ
処理システムによって制御するように設計されている。
一般にデジタルデータ処理システム上で実行している手
続きは、システム上で実行する他の手続きをインボウク
(invoking) したリコールしたりするための
容量を持っている。他の手続きへのコールは、実行して
いる手続きの一部である他の手続きの実行を開始するた
めに、その手続きの実行中に発生するものである。更に
、実行中の手続きは、もしコール中の手続きが、そのコ
ールされた手続きによって実行されるよう設計されてい
る特定のサブタスクが実行されることを望んでいれば、
それを実行するために他の手続きをコールすることも出
来るのである。このように、実際に実行しているデジタ
ルデータ処理システム上の処理は、システムによる多数
の個々の手続きの選択的、そして時には反復的な実行と
してみることが出来るのである。
デジタルデータ処理システムの動作中、現在システム上
で実行している手続きが解決するよう設計されていない
ようなイベントが起こるかもしれない。これらのイベン
トは、イクセプション(exceptions)と呼ば
れ、システム上で実行している処理の外部あるいは内部
のどちらでも可能である。外部イクセプションの例には
、入出力装置の故障、あるいは処理の進行を故意に止め
るためにコマンドを入力するといったシステムのユーザ
の場合もある。内部イクセプションは、実行中の手続き
の実行を崩壊させる、特定の命令の実行の結果として起
こるものである。内部イクセプションの例としては、数
を零で割り算するといった手続き上の命令がある。
多くのデータ処理システムのオペレーティングシステム
には、イクセプションサービスが提供されており、それ
は、デジタルデータ処理システムの動作中に起こりうる
イクセプションを解決するために設計されている手続き
である。イクセプションサービスは、多数の手続きから
成るものであり、それは、実行するための他の手続きを
インボウクすることによりイクセプションに応答するも
ので、イクセブションハンドラーとして知られており、
イクセプションを解決するために設計されている。イク
セプションが起きた時に実行中の手続きの特色、特定の
イクセプションの性質に従って、イクセプションサービ
スはイクセプションノ\ンドラーあるいはイクセブショ
ンノ\ンドラーのセットをインボウクすることが出来、
それは、イクセプションを治癒しようとし、イクセプシ
ョンを無視し、システムで実行している現在のプロセス
を、割り込みした手続きを直接的にまたは間接的にコー
ルした停止手続きに回復させることによって「元に戻し
」、そこでイクセプションは解決され、あるいはそれら
のアクションの組合せを受ける。
1つの手続きが他の手続きを実行するためにインボウク
している間にイクセプションが起こると、デジタルデー
タ処理システム内に問題が起こる。
幾つかのデジタルデータ処理システムには、手続きイン
ボケイションプロセスの間に、ある期間が存在する。そ
の期間、イクセプションサービスは、そのイクセプショ
ンがコール中の手続きの実行中に起こったものであって
もあるいはコールされた手続きの実行中に起こったもの
であっても、それを正確に達成することは不可能なので
ある。その結果、イクセプションサービスはコレクトイ
クセプションハンドラーをインボウクするのに失敗して
しまうかもしれないのである。このようなことは、イク
セプションサービスがインコレクトイクセプションハン
ドラーをインボウクした時にも、あるいは不正確な情報
を持つコレクトイクセプションハンドラーをインボウク
した時にもそのいづれにおいても起こり得る。さらに言
えば、もしイクセブションサービスが、イクセプション
が起きたときに実行中の特定の手続きを即座に判断でき
なければ、イクセプションサービスは実行中の手続きに
関連したデータ及び命令を正確にセーブすることが出来
ないかもしれないのである。
発明の概要 本発明はデータ処理システムの実行状態の検出方法にと
って新しくかつ有用なシステムを提供することにある。
本発明の第1の特徴は、システム上での実行のためにイ
ンボウクされあるいはコールされている処理中の手続き
の実行状態を判断するための容量にある。例えば、手続
き状態記述子システムは、コールされた手続きが、次の
ような状態にあることを示している状態レポートを提供
してくれる。つまり、インボケイションの状態の初めあ
るいは前であること、システムにより実行中であること
、あるいは、コールされた手続きが実行されそしてシス
テムがコール中の手続きへのリターン制御の処理中にあ
る、リターン、あるいはリストレイジョン状態であるこ
とといったことである。手続き状態記述子システムはこ
のように、イクセプションサービスに対して、イクセプ
ションサービスが適当なハンドラーをインボウクするこ
とが出来るよう、システムにより実行されている手続き
のインボケイション状態の表示を、どんな場合であって
も提供してくれるのである。
本発明の手続き状態記述子システムは、イクセプション
が起きたときに手続き状態レポートを作す出スための、
2つのコンプリメンタリな処理に頼っている。第1の処
理はフレーム記述子発生処理であり、好ましくは編集処
理の一部であり、それはシステムによって実行中の個々
の手続きのためのフレーム記述子を作り出すものである
。各々のフレーム記述子には、手続きの実行の特定のポ
イントを表示するオフセット値が含まれている。
実行のこれらの特定のポイントは、手続きの実行の異な
る状態間における境界を決定する。
第2の処理はイクセブションサービスの一部として実行
する手続き状態分析処理である。イクセブションが起こ
った時は常に、手続き状態分析処理は、イクセプション
が起こったときに実行中であった手続きのフレーム記述
子のためのフレーム記述子オフセット値を、中央処理装
置が手続きを実行した範囲を決定するための中央処理装
置からの状態情報と、比較するのである。さらに詳しく
言えば、手続き状態分析処理は、実行されるべき次の命
令のアドレス、あるいは値と、フレーム記述子オフセッ
ト値とを、どの命令が実行中であるのかを判断するため
に比較するのである。オフセット値により表された特定
の命令が実行されたかどうかの表示は、手続きの実行の
状態を表示するものである。このように手続き状態分析
処理は、手続きの実行が、相異なる実行状態間の境界を
越えてしまっているかどうか、つまりそれは、手続きの
インボケイション状態を判断することになるのである。
手続き状態分析処理はまた、中央処理装置によって実行
されるべき次の手続き命令を再調査したりもする。もし
次の命令が特定のタイプの命令であれば、手続き状態分
析処理はその後も他の手続きインボケイション状態決定
を行うことが出来る。
例えば、もし実行されるべき次の手続き命令が、コール
された手続きを回復するための回復シーケンス命令であ
れば、手続き状態分析処理は、イクセブションが起きた
ときに実行中の手続きは回復状態であったかどうかの判
断をすることが出来るのである。手続きのインボケイシ
ョン状態に従って、手続き状態分析プロセスはその後イ
クセプションサービスに対して適当な状態レポートメツ
セージを発生するのである。
手続き状態記述子システムは、イクセプションが起きた
ときは常に、デジタルデータ処理システムによって実行
されている手続きの実行状態のプロンプト表示を与える
。手続き状態記述子システムはこのように、コールされ
た手続きの範囲の表示を持つイクセプションサービスを
与えてくれるのである。この表示を用いて、イクセプシ
ョンサ−ビスは適当な応答動作をとることが出来る。こ
のことは、イクセプションに応答するデジタルデータ処
理システムの全体的なスピードを増加させてくれる。な
ぜなら、インボケイションプロセスが解決されんとして
いる間に発生したイクセプションの前に、完全にインボ
ウクされるように、システム上で実行している手続きを
待つといった遅延がないからである。システムのスピー
ドもまた手続きの実行において増加させられる、なぜな
ら、コール中及び回復手続きの間にイクセプションを無
能にしたり再可能にしたりするために、余計な命令やハ
ードウェアサポートを設ける必要がなくなるからである
。さらに言えば、本発明は、遅延させられたイクセプシ
ョン処理が、データ処理システムの故障を引き起こしか
ねないプロセス命令やデータのロスを引き起こしてしま
う可能性を、本質的に取り除いているものなのである。
実施例 第1図はデジタルデータ処理システムIOの部分を示し
ており、そこでは本発明に従って構成された手続き状態
記述子システム12を構成するプロセスが実行されてい
る。デジタルデータ処理システム10は中央処理装置1
4を含んでおり、そこでは、そこで実行されるべき中央
処理装置実行可能命令及びデータ18のセットを備えて
いるアプリケーションプロセス16が実行されている。
メモリ装置20は、プロセス命令及びデータ18、それ
にプロセス16のランニングからの中間及び最後の出力
結果を一時的にあるいは永久的に記憶するために提供さ
れている。メモリ20内の個々の命令及びデータ18の
アイテムは、特定の個々のメモリアドレスロケーション
内に書き込まれたり、その後読み出されたりする。第1
図には示されていないものとして、命令及びデータをデ
ジタルデータ処理システム10内にロードしたり、状態
レポートや出力結果をそこから受は取るために設計され
ている入出力装置がある。アドレス及びデータバス22
は、中央処理装置14、メモリ装置20それにそこへ接
続されている入出力装置間の通信リンクの必要性から設
けられている。
デジタルデータ処理システムIOが動作中の時は、中央
処理装置14はメモリ20からの情報にアクセス、ある
いはフェッチし、情報が命令かデータ18かを判断し、
そしてデータ18を命令に従って選択的に操作する。図
示した装置では、中央処理装置14は、中央処理装置1
4によって丁度処理されようとしているあるいは処理さ
れた情報のために一時的な記憶ロケーションとして供給
されている、汎用レジスタのセットを含んでいる。中央
処理装置14はまた、プログラムカウンタ26として呼
ばれる一時記憶レジスタを含んでおり、それはフェッチ
されるべき次期中央処理装置実行可能命令のメモリアド
レスを有している。ある中央処理装置14においてプロ
グラムカウンタ26は、汎用レジスタから選択されたも
のであるということもあり得る。
アプリケーションプロセス16の命令部分は、初めはユ
ーザドラフトソースコードファイル28の形態をしてい
る。ソースコードレベルでは、それらの命令はFORT
RAN 5PASCAL、あるいはそれに似たような高
レベルコンピュータ言語の形態をしている。プロセス1
6の実行をロードする前に、システムはソースコードフ
ァイル28を中央処理装置14により実行可能な命令の
セットに変換する。第1図において、ソースコードファ
イル28のこの変換はコンパイラ30によって成される
。命令のセットはメモリ20内に読み込まれそして第1
図内で、それら各々が特定のタスクを成し遂げるために
設計されている手続き32.34、それに36として認
識される。
この後、より詳細に述べるように、コンパイラ30は、
各々の手続き32.34.36ごとに手続き記述子40
.42、あるいは44を発生することにより、本発明を
サポートしそして本発明に寄与するのである。とりわけ
、第1図に示された装置においては手続き記述子40は
、手続き32の属性を記述し、手続き記述子42は手続
き34の属性を記述し、そして手続き記述子44は手続
き36の属性を記述する。また第1図に示すように、手
続き32.34、それに36、手続き記述子40.42
、それに44、そして手続き形態に従って操作されるべ
きデータ18は、中央処理装置14によって全体が処理
される、イメージ46を形成する。
手続き32内のコール命令によって示されるように、手
続き内のどのポイントにおいても中央処理装置14は、
他の手続き、例えば手続き34の、実行をインボウクし
たり始めたりするよう、命令されることが可能である。
手続き32は、コールされた手続き32が実行すべきも
のとして設計されている計算あるいはデータ処理を、コ
ール中の手続き32が要求した時は、それを実行するた
めに他の手続きをコールしたりインボウクしたりするの
である。
コール命令48は、所定の手続き32.34、あるいは
36のいづれにおいても、またその中間あるいはその最
後においても現れることが可能なのである。
手続き32.34、あるいは36のうちの1つが、1つ
またはそれより多い手続きをコールすることも出来るし
、同じ手続きを2度以上呼ぶことも出来るし、そしであ
る状況においては再帰的プロセスを通じてそれ自身をコ
ールすることも出来るのである。
第1図を参照するとオペレーティングシステム50が示
されており、それはデジタルデータ処理システムlO上
のイメージのランニングを制御するサービスのセットと
なっている。52の線により示されるように、オペレー
ティングシステム50によって与えられた関数には、手
続き32.34、それに36及びフレーム記述子40.
42、それに44のメモリ20内へのロード、データ1
8の入力デバイスからメモリ20内へのロード、それに
システム10から出力デバイスへの情報の読み出しが含
まれる。
オペレーティングシステム50はまた、デジタルデータ
処理システム10の動作中に発生するイクセプションに
応答するためのプロセスである、イクセプションサービ
ス54を含んでいる。イクセプションは、実行されてい
る手続きが解決するようには設計されていないイベント
であり、そしてそのようなイベントはアプリケーション
プロセス16のランニングに関連されているものである
かもしれないしあるいは関連されていないものであるか
もしれない。アプリケーションプロセス16に関連の無
いイクセプションは入出力デバイスのフイイラーであり
うる。アプリケーションプロセス16のランニングに関
連したイクセプションの例としては、0で割り算しよう
としたような場合、あるいは手続きが中央処理装置14
にデータ18あるいは他の手続き32.34、あるいは
36の両方にアクセスするよう命令したような時に誤っ
たメモリアドレスが現れたといったようなものが挙げら
れる。
従来技術として知られているように、イクセブションサ
ービス54のようなイクセプションサービスは、システ
ムlOにより実行されている現在の手続きをセーブし、
そしてイクセプションを解決するために適当なイクセプ
ションハンドラー(図示されていない)をインボウクす
ることにより、イクセブションに応答している。これも
また従来技術として知られているように、イクセプショ
ンンハンドラーというのは、例えば、中央処理装置14
にイクセプションを完全に矯正するよう段階を取ること
を指示し、中央処理装置にイクセブションを無視するよ
うに命令し、手続き32.34、それに36を、割り込
みした手続きを直接的にあるいは間接的にコールした停
止手続きに戻し、そうしてイクセプションは解決され、
あるいはそれらの段階の色々な組合せを受けることによ
って、特定のイクセプションを解決するよう設計されて
いる手続きである。
第1図のメモリ20内にはスタック56も含まれている
が、これは手続き32.34、あるいは36の実行の間
に使用されたデータを一時的に記憶するものである。ス
タック56もまた情報を記憶するために使用される。他
の手続きによってコールされあるいはインボウクされた
手続きを実行している間、コールされた手続きそれにコ
ール中の手続きの両方に関連している情報は、別々のコ
ールフレーム58及び60内に記憶される。コールフレ
ーム58および60の各々は、図示されているようにス
タック56内に部分的に記憶されることも可能だし、図
示されていないシステムの他の部分に記憶されることも
可能である。例えば、手続き34が、手続き32内のコ
ール命令48に応答してシステム10によって実行され
ている時は、コールフレーム58は手続キ32の実行に
関連した情報を含んでいる。コールフレーム60は手続
き34の実行に関係している情報を含んでいる。
コールフレーム58及び60は、固定サイズを持つこと
が可能であり、それは手続き32.34、及び36内に
生じたソースコードのコンパイルの間に決定される。ま
た、コールフレーム58及び60は、手続きが実行され
るまでは決定されない「可変jサイズにすることも可能
である。中央処理装置14は、スタックポインタ62を
して認識された一時レジスタを含んでおり、そのポイン
タは、手続き32.34、あるいは36の実行の間にス
タック56上に配置された最後のアイテムのアドレスを
含んでいる。中央処理装置14はまた、フレームポイン
タ64と呼ばれる一時記憶を備えており、そのポインタ
は、スタック56に配置された最後のコールフレーム5
8あるいは60のアドレスを含んでいる。ある中央処理
装置14において、スタックポインタ62それにフレー
ムポインタ64は、特定の汎用レジスタ24となってい
る。
メモリ内にロードされた時、手続き32.34、それに
36は各々、手続き34のために第3図に示すような特
定の形態をしている。データアイテムの各々の命令は、
手続き34の部分を形成しており、メモリ20内の特定
のアドレスロケーションに記憶される。さらに命令及び
データアイテムは、第1図の中央処理装置14によって
逐次的にフェッチされた順番で配列されている。第3図
に示すように、個々の手続き34は、コーラーコンテク
ストセーブブロック(a caller’s cont
ext 5ave block)がその後に続くエント
リプロローグ68から成る手続きプロローグ66を含む
エントリプロローグ68は、手続き34がコール命令4
8に応答して初めてインボウクされた時に実行される命
令のブロックである。エントリプロローグ68にはスタ
ックポインタ命令72が含まれている。
一般に、手続き34のような手続きが実行のためにコー
ルされた時は、スタック56内に情報を記憶するために
スペースが要求される。要求されたスペースが手続き3
4のインボケイションの間に割り当てられるとスタック
ポインタ命令72はスタックポインタ62(第1図)を
手続き34のために要求されたスタックスペースを提供
する値にリセットする。
コーラーコンテクストセーブブロック70は、エントリ
プロローグ68の後に実行される命令のブロックである
。コーラーコンテクストセーブブロック70は例えば、
1セットの命令を含み、この命令によって選択された汎
用レジスタ24の内容が手続き34の実行の前にセーブ
されて、上記レジスタには新しい値が書き込まれるので
ある。可変サイズのフレーム58及び60を有する手続
きのためのコーラーコンテクストセーブブロック70の
最後は、フレームポインタ命令73である。フレームポ
インタ命令73は、フレームポインタ64がコールされ
た手続き34のためのコールフレームのアドレスにリセ
ットされるようにする。
手続きプロローグ66の後には命令ブロックがあり、そ
れはデータ処理システム10による手続き34の実行を
引き起こすであろう、実行可能な命令のシーケンスを含
んでいる。第3図の手続き34において、最後の命令の
セットはリストレイションシーケンス命令76であり、
それは中央処理装置14に対して手続き(考えられる例
として手続き32)の実行に戻るように命令するのであ
る。第3図において、図示されたリストレイションシー
ケンス命令76は、リストアフレームポインタ命令77
を含み、この命令は、手続き34をコールした手続き3
2のコールフレームアドレスをリストアする。リストア
フレームポインタ命令77に続いて、リストアスタック
ポインタ命令78があり、それはコール中の手続き32
のスタックポインタアドレスがスタックポインタ62内
にロードされるようにするものである。
リストアスタックポインタ命令78に続いてリターン命
令80があり、それは中央処理装置をコール中の手続き
32にリターンさせるものである。あるデジタルデータ
処理システムIOにおいては、リターン命令80が、リ
ストアスタックポインタ命令78を絶対的に含まれるで
あろう。第3図において、リストレイションシーケンス
命令の単一のセット76は手続き34の最後に示されて
いる。他の手続き32あるいは36には、手続き32あ
るいは36のために命令ブロック74中に渡って配置さ
れている、他のリストレイシションシーケンス命令76
が存在するであろう。
システムlOによるイメージ46の処理の間は、手続き
32のような、どのような手続きでも、他の手続き34
をインボウクするコール命令48の実行を要求すること
が出来る。イクセプションが起こると、本発明の手続き
状態分析処理(第1図の12)は、イクセプションサー
ビス54に、コールされた手続きのインボケイション状
態レポートを与え、それは、イクセプションサービスに
よりコールされた手続き34の実行の間に起こったイク
セプションが、コールされた手続き34の間に起きたも
のとして処理されるべきか、あるいはコール中の手続き
32の間に起きたものとして処理されるべきかを判断す
るために使用される。
現在本発明で行われているより好ましい実施例において
、どの手続きがイクセプションと関連されるべきである
かという問題は、4つのインボケイション状態に基づい
て判断されるものであり、そのインボケイション状態は
、実行の時に特定の手続き32.34、あるいは36が
起こりうるであろう。
4つの可能なインボケイション状態とは、第1状態;ス
タックポインタ62が変更されない、つまりエントリプ
ロローグ68の実行がいまだ完成していない。
第2状態;エントリプロローグ68の実行は完成された
が命令ブロック74の実行は開始していない。
第3状態;手続きプロローグ66の実行は完成され且つ
システム10が命令ブロック74命令を実行する準備を
し、あるいはそのプロセスにある(リストレイションシ
ーケンス76の実行は始まっていない)そして、 第4状態;命令ブロック74内に含まれる命令の実行が
完成しそしてシステム10はプロセス中にあり、コール
中の手続き32の実行をするためにリターンする。
第1、第2、第4手続きインボケイション状態は、イク
セプションサービス54によって、コールされた手続き
が実行されていない(あるいはすでに実行されてしまっ
ている)−時の状態として見なされる。このように、こ
れらの状態の間に起きたイクセブションは、コール中の
手続き32を参照して解決される。手続きインボケイシ
ョン状態プロセスの第3状態の間にイクセプションが起
こると、コールされた手続き34が実際に準備され、あ
るいは中央処理装置14によって実行される。故にイク
セプションサービス54は、コールされた手続き34に
関しては、インボケイションプロセスの第3状態の間に
起きたイクセプションを解決する。
手続き状態記述子システム12は、ブロック82により
表された手続き記述子発生プロセス(第1図に示されて
いる)及びコールされた手続き34の実行の状態を決定
するための手続き状態分析プロセス(ブロック84によ
り表されている)によるものである。手続き記述子発生
プロセス82は、手続き32.34、それに36それぞ
れにフレーム記述子40.42.44を作り出す。イク
セプションが起こると、手続き状態分析プロセス84は
、コールされた手続き32.34、あるいは36のどの
実行の状態かを判断するため、中央処理装置14からの
情報とともにフレーム記述子40.42、あるいは44
内の情報を用いる。
手続き状態記述子システム12は第1図において別個の
エントリの形態をしているが、図示するためであること
を理解して頂きたい。また本発明はより好ましくは、デ
ータ処理システム10により実行されるプロセスに関連
して実行されるプロセスとして実施される。現在の本発
明の実施において、手続き記述子発生プロセス82は、
コンパイラ30のコンパイルの開に実行される。あるい
はまた、フレーム記述子の発生プロセスは、手続き32
.34、あるいは36を発生するのに応答可能な他のど
のプロセスによっても実行されることが出来る。例えば
、プロセス記述子発生プロセス82は、アセンブラ、図
示されていないが、によって、あるいはアプリケーショ
ンプロセス16の部分であるランクイムコード発生手続
き、図示されてはいないが、によって、実行されること
もできる。ランタイムコード発生手続きは、手続き32
.34、それに36を発生するため、それに後の中央処
理装置14による実行のために同一のものをメモリ18
あるいはスタック56内に記憶するために使用されるこ
とが可能である。第1図に矢印88によって示しである
ように、手続き状態分析ブロック84により表された分
析プロセスは好ましくはイクセプションサービス54の
部分として、オペレーティングシステム50によって成
し遂げられる。
本発明に従った手続き状態記述子システムの働きは、第
1図と似た、本発明を別個のモジュールとして示してい
る第2図を参照することによって、よりよく理解するこ
とが出来るであろう。矢印87によって示されるように
、コンパイラ30が中央処理装置14実行可能手続き3
2.34、及び36を発生した時、それはまたフレーム
記述子ジェネレータ82よって表示されたプロセスを実
行する。前に述べたように、このプロセスは手続き32
.34、それに36のためにフ゛レーム記述子40.4
2、それに44を発生する(第2図の矢印89により示
されている)。
第4図には手続き34のための記述子42の配列が表さ
れており、第1図それに第2図の個々の手続き記述子4
0.42、それに44の典型的なものである。
第4図に示すように、手続き記述子42は、多数の手続
き記述子フィールド90a 、 b 、 c、・・・ 
nを含んでおり、それら各々は関連した手続き32.3
4、あるいは36それぞれの幾つかの様相を記述する情
報を含んでいる。
図示した手続き記述子において、第1の記述子フィール
ドは手続きタイプフィールド90aであり、それは関連
した手続きのために発生されるであろうコールフレーム
(例えば第1図のコールフレーム58それに60)が固
定サイズか可変サイズかどうかの表示を含んでいる。手
続きタイプフィールド90aに続いてスタックポインタ
オフセットフィールド90bがあり、それはメモリ20
内の手続き32.34、あるいは36の開始アドレスに
関連したスタックポインタ命令72のオフセットロケー
ションを含んでいる。次の手続き記述フィールドはエン
トリレングスフィールド90cであり、それは命令ブロ
ック74内の第1の命令のためのアドレスロケーション
のオフセット値(手続き34の開始アドレスに関連して
いる)を含んでいる。手続き記述子エントリレングスフ
ィールド90cはまた、もし手続きプロローグ66が何
も手続き記述子32内に含まれていなければフラグ値(
−船釣には(10(10(10(10)にセットされる
であろう。手続きプロローグ66が無い時は、手続き記
述子スタックポインタオフセットフィールド90b も
またooooooooにセットされる。
手続きフィールド90a 、 b 、それにCに加え、
手続き記述子40.42.44は、付加的な手続き記述
子フィールドを含むことが出来る(第4図のフィールド
90d 、 f 、 g、、、、n)。これらの付加的
な手続き記述子フィールドは、手続き32.34、それ
に36の実行の制御に有用な他の環境情報のために使用
されることが可能である。ある付加的なフィールドの1
つは、コールされた手続き32へのリターンアドレスを
含む汎用レジスタの認識を備えている、手続き記述子通
過アドレスフィールド90dとすることが可能である。
ここで、リターンアドレスというのはコール命令48の
後の次期命令のアドレスのことである。手続き記述子記
憶アドレスフィールド90eを含むことも出来る。記憶
アドレスフィールドは、手続き34のためにコールフレ
ーム58内にロケーションを備えており、それは上で述
べた汎用レジスタのようにコールされた手続き32への
リターンアドレスを含んでいる。他の環境情報を含むこ
とも可能である。それは例えば、汎用レジスタ24の特
定のレジスタがセーブされるべきかあるいはオーバーラ
イドされるべきかを示すレジスタマスク、手続き38の
サイズ、イクセブションが関連した手続きの実行の間に
発生したときに、インボウクされるべきイクセプション
ハンドラーの認識、それに、手続きがエントリポイント
手続きなのかあるいはノーエントリポイント手続きなの
かどうかを示すプロローグフラグフィールドである。
当業者にとって、手続き記述子40.42、それに44
がシステムコンパイラプロセスの間に容易に形づくられ
るということは明らかなことであろう。
例えば、コンパイルの間に、手続き32.34、あるい
は36が手続きプロローグを含んでいるかどうかが判断
されることが可能である。もし手続き32.34、ある
いは36が手続きプロローグ66を含んでいなければ、
命令手続き記述子スタックポインタオフセット及び手続
き記述子エントリレングスフィールド90b及び90c
は手続きプロローグが無いということを示すフラグ値に
セットされる。もし手続き32.34、あるいは36が
手続きプロローグ66を含んでいれば、手続きのスター
トからスタックポインタ命令72までの間に含まれるべ
き命令の数が決定される。この値はその後、手続き34
のために記述子スタックポインタオフセットフィールド
90bに記憶される。手続き記述子エントリレングスフ
ィールド90c内に満たされるべき値はその後、手続き
のスタートから命令ブロック74の命令の第1のナンバ
ーまでの命令をカウントすることによって決定される。
手続き記述子発生プロセス82は、特定の手続きと協働
されるべきコールフレーム58あるいは60が、固定サ
イズなのかあるいは可変サイズなのかということを定め
る。これは、手続き34がスタック上に記憶している全
てのデータが固定サイズかどうかを判断することによっ
て行われる。プロセス82はその後、適当なタイプの値
を、そのフィールドが手続き32.34、あるいは36
に協働されているコールフレームのタイプを示すよう、
手続きタイプフィールド90aのために発生する。
前に述べたように、アプリケーションプロセス16がデ
ータ処理システムIO上で実行されている時、オペレー
ティングシステム50は、アプリケーションプロセス1
6を形成するイメージ46の部分である手続き32.3
4、それに36の実行を制御する。イクセプションサー
ビス54は、アプリケーションプロセス16あるいは他
のプロセスが実行中の間に起こるイクセプションに反応
する。イクセプションが起こると、イクセプションサー
ビス54はまず、システム10により現在実行されてい
る手続き32.34、あるいは36を、矢印92により
示されているように(第2図)それから手続きのために
手続き記述子40.42、あるいは44を、矢印94に
より示されているように、割り当てる。イクセプション
サービス54はその後、手続き状態分析プロセス84を
、例えば手続き36のような、手続きの実行の状態を判
断するためにインボウクする。
手続き状態分析プロセス84は、例えば手続き34よう
な特定の手続きのインボケ−ジョン状態を、実行が起き
た時にまさに実行されようとしていた手続きの部分を判
断することによって、判断する。
手続き状態分析プロセス84は、プログラムカウンタ2
6内のアドレス、それに手続き34のための手続き記述
子42内の手続き記述子値に基づいた、状態数値を求め
る。手続き状態分析プロセス84はまた、矢印1(10
で表されるように、プロセス84へのアクセスをもつ、
手続き開始フィールド98に関する状態数値を求める。
手続き開始フィールド98は、イクセプションが起きた
ときにシステムIO上で実行されていた手続き34のメ
モリ20内にその開始アドレスを含む。手続き開始フィ
ールド98内のアドレスは、オペレーティングシステム
50の他の要素によって提供される。
手続き状態分析プロセス84による状態決定の段階が、
第5図にフローチャートによって示されている。ブロッ
ク102によって示されているように、手続き状態分析
プロセス84は先ず初めに、手続き34内で実行される
べき次期命令のアドレスを、プログラムカウンタ26か
ら、そして手続き34の開始アドレスを、手続き開始フ
ィールド98、手続き記述子手続きタイプフィールド9
0a 、手続き記述子スタックポインタオフセットフィ
ールド90b 、それに手続き記述子エントリレングス
フィールド90cから読み込む。手続き状態記述子はそ
の後、決定ブロック104に示されるように、手続き記
述子エントリレングスフィールド90cが、手続き34
が手続きプロローグ66を含んでいないことを示してい
るフラグを含んでいないかどうかを判断する。もし手続
き34が手続きプロローグ6Gを含んでいなければ、手
続き状態分析84は第3状態から第4状態への決定を行
うために進んでいく。
もし手続き34が手続きプロローグ66を含んでいれば
、手続き状態分析84は以下の計算を行う。
ブロック106により示されている、 プログラムカウンタアドレス−手続き開始アドレス この計算はイクセプション割り込みポイント、他の言葉
でいえば、イクセプションが起こった場所での手続き3
4の実行ポイントを作り出す。この計算の結果は、第1
及び第2決定が威されるように、矢印110により示さ
れているように手続き状態分析84がアクセスすること
が出来るイクセプション割り込みポイントフィールド1
08(第2図)内に記憶される。
手続き状態分析プロセス84はその後、決定ブロック1
12により示されるように、手続きインボケイションプ
ロセスの第1の状態にあるのかどうかを判断する。この
判断は、イクセプション割り込みポイントフィールド1
08からのイクセブション割り込み値と、手続き記述子
スタックポインタオフセットフィールド90bからのス
タックポインタオフセット値とを比較することによって
行われる。
もしイクセプション割り込み値が、スタックポインタオ
フセット値より小さいかあるいはそれと等しければ、プ
ロローグ68の最後にあるスタックポインタ命令72は
イクセプションが起きたときには実行されないのである
。別言すれば、イクセプションが起きたときにも、中央
処理装置14はエントリプロローグ68を処理し続けて
おり、スタックポインタ62の内容はまだ変えられてい
ないということである。この場合、手続き状態分析プロ
セス84はその後、イクセプションサービス54に対し
て、ブロック114により示されるように手続き34が
・手続きインボケイションプロセスの第1状態にあると
いうレポートを作るのである。
もしイクセプション割り込み値がスタックポインタオフ
セット値より大きければ、手続き状態分析プロセス84
はその後、決定ブロック116により示されるように、
第2状態決定を行うために進む。
イクセプション割り込み値は、手続き状態記述子エント
リレングスフィールド90cからの値によって示される
ような、手続き34のための命令ブロック74内の第1
命令のアドレスと比較される。もしイクセプション割り
込み値がエントリレングス値より小さければ、スタック
ポインタ62が変更された後であって、コーラーコンテ
クストセーブブロック70によって要求されたデータ及
び命令の読み込みが完全に実行される前にイクセプショ
ンは生じる。可変サイズコールフレーム58あるいは6
0を有する手続きにおいて、このことは、フレームポイ
ンタ命令73がフレームポインタ64をリセットさせる
前に起こったイクセプションが実行される、ということ
を意味する。固定サイズコールフレーム58あるいは6
0を有する手続きにおいて、このことは、コーラ−コン
チクストのセーブを成しとげる命令の前に起きたイクセ
プションが実行される、ということを意味する。このよ
うにイクセプションは手続きインボケイションプロセス
の第2状態の間に起きるものであり、そしてそれはブロ
ック118によって示されるようにイクセプションサー
ビス54にレポートされるのである。
手続き34の手続きインボケイションプロセスの第3、
第4状態決定は、手続きプロローグ66が無いと判断し
た後、あるいは第2状態の決定の後に成されるものであ
る。決定の第1段階は、ブロック120により示される
ように、プログラムカウンタ26内に含まれているアド
レスにある命令を読み出すことである。手続き状態分析
プロセス84はその後、手続きが第4状態にあるかどう
かを、決定ブロック122により示されるように、命令
がリストレイションシーケンス命令76であるかどうか
を判断することによって、判断する。固定サイズコール
フレーム60を有する手続きにおいては、もしそれがリ
ターン命令80ならば、リストレイションシーケンス命
令76なのである。可変サイズコールフレーム60を有
する手続きにおいては、もしそれがリターン命令80が
下に続くリストアスタックポインタ命令78のシーケン
スの部分ならば、リストレイションシーケンス命令76
と考えられる。
もし次期命令がリストレイションシーケンス命令76な
らば、その後システム10はコールされた手続き34の
実行を完成させ、そしてイクセプションが起きたときに
コール中のプロセス32を実行するためリターニングの
プロセスになる。他の言葉で言えば、システム10は、
イクセプションが起きた時、コールされた手続き34の
ために手続きインボケイションプロセスの第4の状態に
あるということである。手続き状態分析プロセス84は
その後、ブロック124により示されるように、イクセ
プションサービスに第4のレポートを作るために進む。
もし手続きが第4の状態に無ければ、手続き状態分析プ
ロセス84はその後、手続き34が手続きインボケイシ
ョンプロセスの第3の状態にあるのではないかというデ
フォルト決定を行う。手続き状態分析プロセス84はそ
の後、ブロック126により示されるようにイクセプシ
ョンサービス54に、第3状態レポートを作る。
イクセプションサービス54は、どのイクセプションハ
ンドラーをイクセプションのためにインボウクすべきか
を判断するため、手続き状態分析プロセス84からの状
態レボ−) 114.118.124、あるいは126
を使用する。手続き状態分析プロセス84がインボケイ
ションプロセスコール手続き34の第1、第2、第4状
態の間に起こされたイクセプションをレポートすると、
イクセプションサービス54は、あたかもコール中の手
続き32の実行の間に起きたかのようにイクセプション
を処理する。
手続き状態分析プロセス84がコールされた手続き34
のインボケイションプロセスの第3状態の間に起こされ
たイクセプションをレポートすると、イクセプションサ
ービス54は、あたかもコールされた手続き34の実行
の間に起きたかのようにイクセプションを処理する。イ
クセプションサービス54はその後、インボウクされる
べき適当なイクセプションハンドラーのアドレスを得る
ため、手続き34のための手続き記述子42にアクセス
する。もしイクセプションサービス54がコール中の手
続き32の間に起きたものとしてイクセプションを処理
するのが適当であると判断すれば、インボウクされるべ
き適当なイクセプションハンドラーのアドレスを得るた
め、その手続きのための手続き記述子40がイクセプシ
ョンサービス54によってアクセスされる。
コールされた手続き34の実行の、第2状態の間に起こ
されたイクセプションならば、イクセブションサービス
54は、図示されてはいないが、スタックポインタリス
トレインョン手続きを、スタックポインタ56の内容が
コール中の手続き32のための適当なスタックアドレス
を含むように再書き込みされることを確実にするため、
インボウクすることも出来る。このことは、イクセプシ
ョンが解決されている間に保存された命令及びデータの
各々のセットが、イクセプションが起きたときに実行さ
れていた手続き32に関連している真の命令及びデータ
であるということを保証してくれるのである。
さらに言えば、イクセプションサービスが、コール中の
手続き32のリターンアドレスを判断することによる特
定の進行は、コールされた手続き34のインボケイショ
ン状態によるものであるかもしれない。もしイクセプシ
ョンが第1あるいは第2インボケイシヨンの間に起きた
のならば、イクセプションサービス54は、手続き記述
子通過アドレスフィールド90d内で認識されている汎
用レジスタ24の内容を参照することによって、コール
中の手続きのリターンアドレスを判断するであろう。
もしイクセプションが第3あるいは第4インボケイシヨ
ン状態の間に起こったならば、イクセプションサービス
54は、手続き記述子記憶リターンアドレスフィールド
90g内で認識されたコールフレーム580ケーシヨン
を参照することによって、コール中の手続き32のリタ
ーンアドレスを判断するであろう。
本発明の手続き状態記述子システム12は、手続き状態
レポートをいつでも発生することが出来、またそのレポ
ートは、デジタルデータ処理システムlOによって実行
されている手続き32.34、あるいは36のうちのど
のインボケイション状態をも記述してくれるものである
。したがって、イクセプションが発生し、特定の手続き
32.34あるいは36が割り込まれなければならない
時に、手続き記述子システム12は、デジタルデータ処
理システム10がどこまで実行を行ったかを知ることが
可能となり、それによってイクセプションサービス54
は、実行されている手続きに関する手続き、あるいは実
行中の手続きをコールした手続きを解決することが出来
る。このように、イクセプションサービス54は、デジ
タルデータ処理のランニングの間、どのようなイクセプ
ションに対しても即座に応答することが出来るのである
。なぜならイクセプションサービスは手続き32.34
、あるいは36の実行の間、いつでも手続きの実行の状
態伝えることが可能だからである。このことによって、
コールされた特定の手続きが十分にインボウクされ且つ
実行されるまでに起きたイクセプションに応答できない
といった、イクセプションサービス54に関連したエラ
ーは取り除かれた。さらに言えば、イクセプションの操
作に関連したエラーあるいは遅延が無いために、イクセ
プションサービス54は、デジタルデータ処理システム
IOによって処理されている現在のデータあるいは命令
を、デジタルデータ処理システ・ム10から失わせてし
まうといった可能性を、基本的に取り除いたのである。
また、手続き状態記述子システム12の他の利点は、シ
ステム12が、手続き32.34、それに36のソース
であったソースコードファイル28の言語を別個に取り
扱うといったことである。必要なものは、必要な手続き
記述子40.42、それに44を作り出すための手続き
記述子発生プロセス82だけなのである。手続き32.
34、あるいは36から発生したソースコード言語にも
係わらず、手続き状態分析プロセス84はその後、イク
プションが起きた時は、手続きの実行の状態を判断する
ために、手続き記述子40.42、それに44にアクセ
スできるのである。
手続き状態記述子システム12の他の実施例も勿論可能
である。手続きインボケイションの実際の状態や、手続
き状態記述子12のプロセスをなす段階を、上で述べた
ものとは違ったものにすることの出来る。例えば、手続
き記述子発生82プロセスは、コンパイラ30と関連さ
れている必要は無く、例えば、リンカ、ローダあるいは
オペレーティングシステム50の一部である他のプロセ
スに関連させ、それによって手続き記述子40.42、
それに44はイメージ46の一部としてメモリ20内に
形成されそしてロードされることも可能なのである。あ
るいは、手続き記述子ジェネレータ82を、手続き32
.34、それに36を発生する他のアプリケーションプ
ロセス16の一部とすることも出来る。手続き状態分析
プロセス84によって実行される状態決定は全てイクセ
プションサービスによって実行されることは不可能であ
るが、オペレーティングシステム50の一部であり、ま
たイクセプションサービス54を含むオペレーティング
システムの他の部分によってアクセスされるものである
別個のプロセスとすることも出来る。
手続きインボケイション状態の間を区別するオフセット
値のロケイションも同様に上で述べたものとは異なるも
のとすることも出来る。例えば、本発明の他の実施例で
は、インボケイションプロセスの少数あるいは多数の状
態を記述するために多少のオフセット値をもつことの出
来るのである。
このように、本発明のある実施例においては、前記した
発明の実行の手続きの第1及び第2状態を単一の状態と
することも出来るのである。本発明の他の実施例におい
ては、選択された汎用レジスタ22だけが、コールされ
た特定の手続きによって要求された新しい情報と−とも
にロードされるということを示す、付加的な状態を持つ
ことも可能である。
また本発明の他の実施例では、システム10での実行の
前に形成された特定の手続き32.34、それに36の
構成が、前記したバージョンから変化すると、手続き記
述子フィールド90及び手続き状態分析84によりなさ
れた状態決定も同様に変化するといったものとすること
も可能である。リストアフレームポインタ命令77、リ
ストアスタックポインタ命令78、あるいはリターン命
令80の他に、あるいはそれに加えて、他の命令が、手
続きのための実行の第4あるいは最後の状態を示すリス
トレイションシーケンス命令76の一部になることも可
能である。故に、これら個々の違いを作るため、手続き
記述子ジェネレータ82により発生された手続き記述子
フィールド、それに手続き状態分析プロセス82により
実行されたその後のリード及びライト決定段階は、適当
に修正されなくてはならない。
さらに言えば、あるデジタルデータ処理システム10に
おいては、第3状態から第4状態への決定が必要無いと
いうことも注意すべきである。もしデジタルデータ処理
システムIOが、単一のアトミックステップでのコール
中の手続きによって、要求されたスタックポインタ62
、フレームポインタ64、それにプログラムカウンタ2
6の値を回復することが出来るのならば、手続きインボ
ケイションプロセスの、リストレイジョン状態、あるい
は第4状態は無くてもよいことになる。これによって第
3状態から第4状態への決定シーケンスを実行する手続
き状態分析プロセス84を備える必要が取り除かれるこ
とになる。また、手続き状態分析プロセス84が、固定
サイズのコールフレーム58を有する手続きのために、
第3状態から第4状態への状態決定シーケンスを行う必
要もなくなる。コールフレーム58は、スタックポイン
タ62及びプログラムカウンタ26だけを単一のアトミ
ックステップでリストアできるシステムlOで実行され
る。故に、そのようなデジタルデータ処理システム10
において、手続き状態分析84によって実行される分析
は、第3状態から第4状態への決定が、可変サイズコー
ルフレーム60を備える手続き32.34、それに36
のためだけに実行されるように配列されている。
例えば、第5図に示されたプロセスは、プログラムカウ
ンタブロックI20内のリード命令の前に、点線で示さ
れている固定コールフレーム可変コールフレーム決定ブ
ロック128に置き換えることによって修正されること
が出来る。もし手続きが、手続き記述子手続きタイプフ
ィールド90aの内容によって示されるような固定コー
ルフレームならば、その時季続きは実行の第3状態に先
天的にあることになり、そして手続き状態分析84は適
当なレポートを作ることになる。もし手続きが可変サイ
ズコールフレーム58を持っているならば、その後手続
き状態分析84は第3状態から第4状態への決定シーケ
ンスを遂行する。
同様に、第5図に関連して述べられているシーケンスを
色々な方法に変形することも出来る。例えば、他の実施
例では、手続き状態分析プロセス84は単一の状態決定
を行う前に、まず個々のそして全ての状態決定を行うた
めに必要な全てのデータを読み込むかもしれない。本発
明の他の実施例では、手続き状態分析プロセス84は状
態決定の直前で各々の状態決定に必要なデータを読み込
むことも出来る。さらに、第5図に記述した段階は、同
一の状態決定を行うために異なるシーケンスで実行され
ることも可能である。それ故に、上の記述あるいは添付
した図面に含まれる全ての事項は実例として挙げたもの
でありこれに限定されるということではない。このよう
に、請求項は、本発明の真に意図するところ及び範囲内
にある全ての変調と変形をカバーすることが目的なので
ある。
【図面の簡単な説明】
第1図は、本発明による手続き状態記述子システムを具
体化するために形成され配置されたデジタルデータ処理
システムを、ブロック図形式で示したものである。 第2図は、本発明の手続き記述子処理を分割されたモジ
ュール形式で図示したものである。 第3図は、システムで実行を行うために、本発明のメモ
リデジタルデータ処理システム内にロードされた手続き
の、フォーマットを示したものである。 第4図は、本発明により構成された手続き記述子のフォ
ーマットを示したものである。 第5図は、デジタルデータ処理システムによって実行中
の手続き上で状態分析を実行するために本発明によって
利用可能なシーケンスを示すシーケンス図表、即ちフロ
ーチャートである。

Claims (28)

    【特許請求の範囲】
  1. (1)デジタルデータ処理システムで使用する手続き状
    態レポーティング方法において、前記方法はデジタルデ
    ータ処理システムによる実行のためにインボウクされた
    手続きのインボケイション状態をレポートするものであ
    り、その手続きは少なくとも2つの可能なインボケイシ
    ョン状態を備えており、前記方法は、 (a)手続きの2つのインボケイション状 態間の境界を示す実行のポイントを示す少なくとも1つ
    のオフセット値を備える手続き記述子を個々の手続きの
    ために発生するための、手続き記述子ジェネレータプロ
    セスと、 (b)実行されインボウクされた手続きの 部分を決定し、インボウクされた手続きのインボケイシ
    ョン状態を決定するために、実行されインボウクされた
    手続きの部分を、前記手続き記述子オフセット値の1つ
    と比較し、インボウクされた手続きのインボケイション
    状態をレポートする段階を備える手続き状態分析プロセ
    スとを備えることを特徴とする方法。
  2. (2)請求項(1)記載の手続き状態レポーティング方
    法において、インボウクされた手続きは少なくとも3つ
    の可能なインボケイション状態を備え、(a)前記手続
    き記述子ジェネレータプロ セスは更に、個々の前記手続き記述子のために、各々の
    オフセット値が手続きの実行のポイントを示しており、
    個々の前記実行のポイントが手続きのインボケイション
    状態間の別々の境界を示している、少なくとも2つの前
    記手続き記述子オフセット値を発生する段階を備え、 (b)前記手続き状態分析プロセスは更に、第1の状態
    決定を行うために、実行されインボウクされた手続きの
    部分を前記手続き記述子オフセット値の1つと比較し、
    そして前記第1状態決定に応答し、第2の状態決定を行
    うために、実行されインボウクされた手続きの部分を前
    記手続き記述子オフセット値の第2の1つと比較する段
    階を備える方法。
  3. (3)請求項(2)記載の手続き状態レポーティング方
    法において、個々の手続きはデジタルデータ処理システ
    ム実行可能命令の1セットを備えており、選択された命
    令のセットがシステムによって実行された時、その手続
    きは識別可能なインボケイション状態にあり、そして、 手続き状態分析プロセスは更に、実行されインボウクさ
    れた手続きの前記部分と前記手続き記述子オフセット値
    の1つとの、少なくとも1度の比較の結果に応答し、実
    行されるべき次期命令にアクセスすることによって選択
    的に付加的な状態決定を行い、そして前記次期命令が前
    記選択された命令のセットからのものかどうかを決定す
    る段階を備える方法。
  4. (4)請求項(1)記載の手続き状態レポーティング方
    法において、各々の手続きはデジタルデータ処理システ
    ム実行可能命令の1セットを含み、選択された命令のセ
    ットがシステムによって実行可能な時、その手続きは特
    定のインボケイション状態にあり、そして、 その手続き状態分析プロセスは更に、実行されインボウ
    クされた手続きの前記部分と前記手続き記述子オフセッ
    ト値の1つとの少なくとも1度の比較に応答して、実行
    されるべき次期命令に選択的にアクセスし、そして最後
    の状態決定を行うべく、前記次期命令が前記選択された
    命令のセットからのものかどうかを決定するため、前記
    次期命令を再調査する段階を含む方法。
  5. (5)請求項(1)記載の手続き状態レポーティング方
    法において、個々の手続きは、アドレス読み書き可能な
    メモリ内に記憶されておりそして手続きの個々の部分は
    、メモリ内のシーケンシャルなアセンディングアドレス
    ロケーション内に記憶されており、そして、 前記手続き記述子オフセット値は、手続きの開始に関連
    する協働された手続きの、特定の部分のロケーションを
    示す値である方法。
  6. (6)請求項(5)記載の手続き状態レポーティング方
    法において、実行されインボウクされた手続きの部分を
    決定する段階は、インボウクされた手続きのために開始
    メモリアドレスを決定し、実行されるべきインボウクさ
    れた手続きの次期部分のためにメモリアドレスを決定し
    そして手続き開始メモリアドレスと次にインボウクされ
    た手続き部分のメモリアドレスとの間の違いを決定しそ
    れによって実行されインボウクされた手続き部分を決定
    する段階を備える方法。
  7. (7)請求項(1)記載の手続き状態レポーティング方
    法において更に、 (a)前記手続きジェネレータプロセスは、手続きが実
    行された時に特定のインボケイション状態が手続きに存
    在しないかどうかを判断し、そしてもし前記特定の状態
    が存在しなければ、前記手続き記述子オフセット値の1
    つのためにフラグ値を発生し、そして、 (b)前記手続き状態分析プロセスは更に、前記手続き
    記述子オフセット値が前記フラグ値にセットされたかど
    うかということに基づいて状態決定を行う段階を含む方
    法。
  8. (8)請求項(5)記載の手続き状態レポーティング方
    法において、個々の前記手続きは、その後部にスタック
    ポインタ変更命令を備えるエントリプロローグとコーラ
    ーコンテクストセーブブロックとを備える手続きプロロ
    ーグを有することが可能であり、その手続き内において
    その手続きプロローグの後ろには命令ブロックがあり、
    その命令ブロックはその後部に0、1、あるいはそれよ
    り多いリストレイションシーケンス命令のセットを備え
    ており、そして、 (a)手続きプロローグを有する個々の手 続きのための前記手続き記述子ジェネレータプロセスは
    、フレームの開始に関連する前記スタックポインタ変更
    命令のロケーションを決定しそして前記ロケーションを
    第1の手続き記述子オフセット値として供給し、手続き
    の開始に関連する前記命令ブロック内の第1の命令のロ
    ケーションを決定しそして前記ロケーションを第2の手
    続き記述子値オフセット値として供給する段階を含み、 (b)手続きプロローグを有する個々の手 続きのための前記手続き状態分析プロセスは、更に、 インボウクされた手続きの手続きのため に開始メモリアドレスを決定し、実行されるべきインボ
    ウクされた手続きの次期部分のメモリアドレスを決定し
    、そして前記手続き開始メモリアドレスと次期手続き部
    分の前記メモリアドレスとの違いを決定しそれによって
    実行されインボウクされた手続きの前記部分を決定し、
    前記スタックポインタ変更命令が実行さ れたかどうかを決定するため、実行されインボウクされ
    た手続きの前記部分を前記第1の手続き記述子オフセッ
    ト値と比較し、そしてもし前記スタックポインタ変更命
    令が実行されていなければ、第1のインボケイション状
    態レポートを作成し、 もし前記スタックポインタ変更命令が 実行されていれば、前記命令ブロック第1命令が実行さ
    れていないかを決定するため、実行されインボウクされ
    た手続きの前記部分を前記第2の手続き記述子オフセッ
    ト値と比較し、第2のインボケイション状態レポートを
    作成し、そして、 もし前記命令ブロック命令が実行され ていれば、実行されるべき次にインボウクされた手続き
    の部分が、リストレイションシーケンス命令かどうかを
    決定し、そしてもしそうならば、第4のインボケイショ
    ン状態レポートを作成し、そしてもしそうでなければ、
    第3のインボケイション状態レポートを作成する段階を
    含む方法。
  9. (9)請求項(8)記載の手続き状態レポーティング方
    法において、個々の手続きに協働されているのは固定あ
    るいは可変サイズのスタックコールフレームであり、そ
    して、 前記手続き記述子発生プロセスは更に、 手続きに協働されたコールフレームが固定サイズコール
    フレームを持つのかあるいは可変サイズコールフレーム
    を持つのかを決定し、そして、その手続きに協働された
    スタックコールフレームが固定あるいは可変サイズかど
    うかを示す手続き記述子手続きタイプフィールドを発生
    する段階を含む方法。
  10. (10)請求項(9)記載の手続き状態レポーティング
    方法において、それに協働されている固定サイズコール
    フレームを有する個々の手続きは第1のリストレイショ
    ンシーケンス命令のセットを備えそしてそれに協働され
    ている可変サイズコールフレームを有する個々の手続き
    は第2のリストレイションシーケンス命令のセットを備
    えており、そして実行されるべき次のインボウクされた
    手続きの部分がリストレイションシーケンス命令である
    かどうかということを決定する、前記手続き状態分析プ
    ロセス決定は更に、前記手続き記述子手続きタイプフィ
    ールドからインボウクされた手続きが固定サイズコール
    フレームを持つのかあるいは可変サイズコールフレーム
    を持つのかを決定し、もし前記インボウクされた手続き
    が固定サイズコールフレームを持っていれば、第1のリ
    ストレイションシーケンス命令のセットについて前記リ
    ストレイションシーケンス命令決定を成し、そしてもし
    前記インボウクされた手続きが可変サイズコールフレー
    ムを持っていれば、第2のリストレイションシーケンス
    命令のセットについて前記リストレイションシーケンス
    命令決定を成す段階を含む方法。
  11. (11)請求項(9)記載の手続き状態レポーティング
    方法において、実行されるべき次の手続き部分がリスト
    レイションシーケンス命令であるかどうかの前記決定を
    成す前に、前記手続き状態分析プロセスは更に、前記手
    続き記述子手続きタイプフィールドからインボウクされ
    た手続きが固定サイズスタックコールフレームを持つの
    かあるいは可変サイズスタックコールフレームを持つの
    かを決定し、そしてもし前記インボウクされた手続きが
    固定サイズスタックコールフレームを持っていれば、第
    3のインボケイション状態レポートを作成し、そしても
    し前記インボウクされた手続きが可変サイズスタックコ
    ールフレームを持っていれば、実行されるべき次の手続
    き部分がリストレイションシーケンス命令かどうかの前
    記決定を行うために先に進む段階を含む方法。
  12. (12)請求項(7)記載の手続き状態分析プロセスに
    おいて、前記手続き記述子オフセット値が前記フラグ値
    にセットされたかどうかを決定する前記段階は、実行さ
    れインボウクされた手続きの部分と前記手続き記述子値
    の1つとの比較の前に行われるプロセス。
  13. (13)請求項(8)記載の手続き状態分析プロセスに
    おいて、 (a)前記手続きジェネレータプロセス は、手続きが実行された時に手続きプロローグが手続き
    に無いかどうかを決定し、そしてもし手続きプロローグ
    が無ければ、前記特定の手続き記述子オフセット値の1
    つのためにフラグ値を発生し、そして、 (b)前記手続き状態分析プロセスは、 実行されインボウクされた手続きの部分を前記第1の手
    続き記述子オフセット値と比較する前に、更に、前記特
    定の手続き記述子オフセット値が前記フラグにセットさ
    れているかということを決定し、もし前記フラグ値がセ
    ットされていれば、実行されるべきインボウクされた手
    続きの次の部分がリストレイションシーケンス命令かど
    うかを決定する前記段階へと進み、そしてもし前記フラ
    グ値がセットされていなければ、インボウクされた手続
    きの部分と前記第1の手続き記述子値との前記比較を行
    う段階を含むプロセス。
  14. (14)デジタルデータ処理システムによる実行のため
    にインボウクされた少なくとも2つのインボケイション
    状態を有する手続きの、インボケイション状態の決定を
    行うために、デジタルデータ処理システム内で使用する
    手続き状態分析プロセスにおいて、前記プロセスは、実
    行されインボウクされた手続きの部分の決定、及び、実
    行されインボウクされた手続きの部分と手続きのための
    手続き記述子オフセット値との比較といった段階を備え
    ており、前記手続きオフセット値は、その手続きの実行
    のポイントを示しており、前記実行のポイントは手続き
    の2つのインボケイション状態間の境界を示しており、
    前記比較はその手続きのインボケイション状態を決定す
    ることを特徴とするプロセス。
  15. (15)請求項(14)記載の手続き状態分析プロセス
    において、インボウクされた手続きは少なくとも3つの
    インボケイション状態を備えておりそしてその手続きは
    それに協働された少なくとも2つの手続き記述子オフセ
    ット値を備えており、手続き記述子オフセット値の各々
    は手続きの実行の別々のポイントを示しており、前記実
    行の別々のポイントは手続きのインボケイション状態間
    の別々の境界を示しており、 前記状態分析プロセスは更に、実行されイ ンボウクされた手続きの部分と前記手続き記述子オフセ
    ット値の1つとを、第1の状態決定を行うために比較し
    、そして、 実行されインボウクされた手続きの部分と 前記手続き記述子オフセット値の第2の1つとを、第2
    の状態決定を行うために選択的に比較する段階を含むプ
    ロセス。
  16. (16)請求項(14)記載の手続き状態分析プロセス
    において、インボウクされた手続き内の選択された命令
    のセットがシステムによって実行された時、手続きは識
    別可能なインボケイション状態にありそして前記手続き
    状態分析プロセスは更に、実行されるべき次の手続き命
    令にアクセスすることによって付加的な状態決定を行い
    、そして、前記次期命令が前記選択された命令のセット
    に含まれるどうかの決定を行う段階を含むプロセス。
  17. (17)請求項(15)記載の手続き状態分析プロセス
    において、手続きは識別可能なインボケイション状態に
    ありそして前記プロセスは更に、前記状態決定の少なく
    とも1つの結果に応答し、実行されるべき次の手続き命
    令にアクセスすることによって付加的な状態決定を選択
    的に行い、そして、前記次の命令が前記選択された命令
    のセットからのものなのかどうかを決定する段階を含む
    プロセス。
  18. (18)請求項(14)記載の手続き状態分析プロセス
    において、個々の手続きはデジタルデータ処理システム
    のアドレス読み書き可能なメモリ内に記憶されており、
    手続きの各々の部分はメモリ内のシーケンシャルアドレ
    スロケーション内に記憶されており、前記手続き記述子
    オフセット値は手続きの開始に関連する、手続きの特定
    の部分のロケーションを示している値であり、そして実
    行されインボウクされた手続きの部分の決定は、 インボウクされた手続きの開始メモリアド レスを決定し、 実行されるべきインボウクされた手続きの、次の部分の
    ためのメモリアドレスを決定し、開始メモリアドレスと
    次期インボウクされた手続き部分のメモリアドレスとの
    違いを決定し、それによって実行されインボウクされた
    手続きの前記部分を決定する段階を備えるプロセス。
  19. (19)請求項(14)記載の手続き状態分析プロセス
    において、特定のインボケイション状態がインボイウク
    された手続き内には無い場合、手続きのための手続き記
    述子オフセット値はフラグ値にセットされ、そして前記
    プロセスは更に、手続き記述子オフセット値がフラグ値
    にセットされているかどうかを判断する段階を含むプロ
    セス。
  20. (20)請求項(15)記載の手続き状態分析プロセス
    において、特定のインボケイション状態がインボイウク
    された手続き内に無い場合、選択された手続き記述子オ
    フセット値の1つが手続きのためにフラグ値にセットさ
    れ、そして前記プロセスは更に、選択された手続き記述
    子オフセット値が前記フラグ値にセットされたかどうか
    を決定する段階を含むプロセス。
  21. (21)請求項(19)記載の手続き状態分析プロセス
    において、手続き記述子オフセット値がフラグ値を含む
    かどうかの前記決定は、実行されインボウクされた手続
    きの部分と手続き記述子値との前記比較を成す前に行わ
    れるプロセス。
  22. (22)請求項(20)記載の手続き状態分析プロセス
    において、選択された手続き記述子オフセット値がフラ
    グ値にセットされたかどうかの前記決定は、実行されイ
    ンボウクされた手続きの部分と前記選択された前記手続
    き記述子値の1つとの前記比較を成す前に行われるプロ
    セス。
  23. (23)請求項(22)記載の手続き状態分析プロセス
    において、特定のインボケイション状態がインボイウク
    された手続き内に無い場合、選択された手続き記述子オ
    フセット値の1つがフラグ値にセットされ、そして、実
    行されインボウクされた手続きの部分と手続き記述子値
    の1つとの前記比較の前に、前記プロセスは更に、選択
    された手続き記述子オフセット値がフラグ値にセットさ
    れたかどうかの決定段階を含むプロセス。
  24. (24)請求項(23)記載の手続き状態分析プロセス
    において、インボウクされた手続き内の選択された命令
    のセットがシステムによって実行された時、手続きは識
    別可能インボケイション状態にあり、そして前記プロセ
    スは更に、実行されインボウクされた手続きの部分と手
    続き記述子オフセット値の1つとの、少なくとも1度の
    比較の結果に応答する段階を備え、前記プロセスは更に
    、実行されるべき次の命令にアクセスすることによって
    付加的な状態決定を選択的に行い、そして前記次期命令
    が前記選択された命令のセット内にあるかどうかの決定
    をする段階を含むプロセス。
  25. (25)システムによって実行されるべき手続きのため
    に手続き記述子を作るべく、デジタルで処理システム内
    で使用する手続き記述子発生プロセスにおいて、個々の
    手続きはアドレス読み書き可能メモリ内にロードされ、
    手続きの各々の部分はメモリのシーケンシャルアドレス
    ロケーション内に記憶され、前記プロセスは、手続きの
    ための開始アドレスに関連した、手続きの選択された部
    分のロケーションを決定し、そして手続き記述子のため
    に手続き記述子オフセット値を発生する段階を備えてお
    り、ここで前記ロケーションは手続きの2つのインボケ
    イション状態間の境界を示しており、また、前記手続き
    記述子オフセット値は前記手続きの選択された部分の前
    記ロケーションを示す値を含んでいることを特徴とする
    プロセス。
  26. (26)請求項(25)記載の手続き状態分析プロセス
    において、前記プロセスは更に、手続きの開始アドレス
    に関連した、手続きの少なくとも2つの選択された部分
    のロケーションを決定し、そして手続き記述子のために
    少なくとも2つの手続き記述子オフセット値を発生する
    ことを含み、また、手続きの個々の部分は手続きの2つ
    のインボケイション状態間の別々の境界を決定し、各々
    の前記手続き記述子オフセット値は手続きの別々の、選
    択されたロケーションを含むプロセス。
  27. (27)請求項(25)記載の手続き状態分析プロセス
    において更に、選択されたインボケイション状態が手続
    きに含まれるかどうかを決定し、そして、もし選択され
    たインボケイション状態が手続き内に含まれていなけれ
    ば、前記手続き記述子オフセット値をフラグ値にセット
    するプロセス。
  28. (28)請求項(26)記載の手続き状態分析プロセス
    において更に、選択されたインボケイション状態が手続
    きに含まれるかどうかを決定し、そして、もし選択され
    たインボケイション状態が手続き内に含まれていなけれ
    ば、前記手続き記述子オフセット値の1つをフラグ値に
    セットするプロセス。
JP2243664A 1989-09-13 1990-09-13 デジタルデータプロセッサのための手続き状態記述子システム Pending JPH03184123A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40645289A 1989-09-13 1989-09-13
US406452 1989-09-13

Publications (1)

Publication Number Publication Date
JPH03184123A true JPH03184123A (ja) 1991-08-12

Family

ID=23608058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2243664A Pending JPH03184123A (ja) 1989-09-13 1990-09-13 デジタルデータプロセッサのための手続き状態記述子システム

Country Status (5)

Country Link
US (1) US5388263A (ja)
EP (1) EP0417916B1 (ja)
JP (1) JPH03184123A (ja)
AT (1) ATE174700T1 (ja)
DE (1) DE69032835T2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937186A (en) * 1994-03-24 1999-08-10 International Business Machines Corporation Asynchronous interrupt safing of prologue portions of computer programs
JP2001043180A (ja) * 1999-08-03 2001-02-16 Mitsubishi Electric Corp マイクロプロセッサおよびそのための記憶装置
US7870541B1 (en) * 2004-11-01 2011-01-11 Wind River Systems, Inc. Context tracing for software with a frame pointer and a stack pointer and with a stack pointer but without a frame pointer
US8341383B2 (en) * 2007-11-02 2012-12-25 Qualcomm Incorporated Method and a system for accelerating procedure return sequences
US9262250B2 (en) 2011-12-12 2016-02-16 Crashlytics, Inc. System and method for data collection and analysis of information relating to mobile applications
US9495311B1 (en) * 2013-12-17 2016-11-15 Google Inc. Red zone avoidance for user mode interrupts
US9594704B1 (en) 2013-12-17 2017-03-14 Google Inc. User mode interrupts

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649472A (en) * 1981-02-04 1987-03-10 Burroughs Corporation Multi-phase subroutine control circuitry
US4493027A (en) * 1981-05-22 1985-01-08 Data General Corporation Method of performing a call operation in a digital data processing system having microcode call and return operations

Also Published As

Publication number Publication date
EP0417916A2 (en) 1991-03-20
ATE174700T1 (de) 1999-01-15
US5388263A (en) 1995-02-07
EP0417916B1 (en) 1998-12-16
EP0417916A3 (en) 1992-04-29
DE69032835D1 (de) 1999-01-28
DE69032835T2 (de) 1999-07-01

Similar Documents

Publication Publication Date Title
US6529985B1 (en) Selective interception of system calls
US6442752B1 (en) Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner
US6779187B1 (en) Method and system for dynamic interception of function calls to dynamic link libraries into a windowed operating system
US7406592B1 (en) Method, system, and apparatus for efficient evaluation of boolean expressions
US7607127B2 (en) Registry emulation
US6086623A (en) Method and implementation for intercepting and processing system calls in programmed digital computer to emulate retrograde operating system
US6336122B1 (en) Object oriented class archive file maker and method
US5504901A (en) Position independent code location system
JP2883784B2 (ja) マイクロコンピュータ
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
US6931521B2 (en) Data processing apparatus generates initialization schedule by sorting module order according to number of its dependencies for initializing data affecting execution of operational instructions
JPH0644085A (ja) アクセスを実行する方法及び装置並びにコンピュータシステム
JP2005293578A (ja) 属性を介して制御されるテストケース継承
US20140149996A1 (en) Runtime emulating static thread local storage of portable executable software code
US6901583B1 (en) Method for testing of a software emulator while executing the software emulator on a target machine architecture
JPH0812616B2 (ja) オペレーティングシステムカーネル用受動回復方法およびシステム
US20110016463A1 (en) Computer-hardware, life-extension apparatus and method
US20040123308A1 (en) Hybird of implicit and explicit linkage of windows dynamic link labraries
US5065400A (en) Method for editing and executing computer programs
US7577541B1 (en) Test services provider
JPH07230386A (ja) データ処理装置及び制御ルーチン呼出し方法
JPH03184123A (ja) デジタルデータプロセッサのための手続き状態記述子システム
CA2126740A1 (en) Method and system for incorporation of a utility function into an operating system
US5724585A (en) Method for processing an application termination initiated from a pre-initialized computer language execution environment
JPH08502375A (ja) コンピュータにて並列実行処理可能なオブジェクト指向プログラムの少なくとも1つのオブジェクトにおける少なくとも1つのテストの実施方法