(57)【要約】  サブルーチンの実行に続いて、入力オペランドとしてのアドレスを有するリターン命令が実行される。この入力オペランドは、１つ以上の所定の値との一致が検出されるかどうかを比較され、前記リターン命令応答は、一致が検出されたかどうかに基づいて選択される。従って、前記リターンアドレス値は、例外リターン応答または手続きリターン応答のような異なるリターン命令応答を呼び出すために使用されることが可能である。前記１つ以上の所定のアドレスは、メモリーマップ内の最高位のメモリーアドレスを都合の良いように割り当ててよい。
2008535072.tif 000002
【特許請求の範囲】
【請求項１】
プログラム命令によって指定されたデータ処理演算を実行するための装置であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答するリターンロジックを有し、
（ｉ）もし、前記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１リターン状態をもたらすために、１つ以上の第１リターン応答演算を具備する第１リターン応答を前記リターンロジックが引き起こし、
（ｉｉ）もし、前記アドレスが前記１つ以上の所定のアドレス値と一致する値を有するならば、第２リターン状態をもたらすために、１つ以上の第２リターン応答演算を具備する第２リターン命令応答を前記リターンロジックが引き起こし、前記１つ以上の第２リターン命令応答演算は、前記１つ以上の第１リターン命令応答演算と異なるものである装置。
【請求項２】
複数のプログラム命令内の実行ポイントを指定するプログラムカウンタを具備する請求項１記載の装置。
【請求項３】
前記第１リターン命令応答は、手続きリターン応答であるとともに、前記アドレスを用いた前記プログラムカウンタレジスタの読み込みである請求項２記載の装置。
【請求項４】
スタックメモリへのデータ格納と、前記スタックメモリからのデータ読み取りとを可能にするスタックメモリロジックを具備し、前記第２リターン命令応答は、例外リターン応答であるとともに、前記スタックメモリからの格納アドレスの読み取りと、前記格納アドレスを用いた前記プログラムカウンタレジスタの読み込みとである請求項２記載の装置。
【請求項５】
前記アドレスの格納を可能にするリンクレジスタを具備する請求項１記載の装置。
【請求項６】
（ｉ）前記１つ以上の所定のアドレス値と一致する値の前記リンクレジスタ内の格納と、
（ｉｉ）前記格納されたアドレスの前記スタックメモリ内の格納と、
（ｉｉｉ）例外扱いルーチンの実行と
を引き起こすための例外の発生に応答する例外処理ロジックを具備する請求項４記載の装置。
【請求項７】
前記アドレスが前記１つ以上の所定のアドレス値と一致するとき、前記１つ以上の第２リターン命令応答演算によって復元されるための前記装置の状態変数をエンコードする１つ以上のビットを、該アドレスが具備する請求項１記載の装置。
【請求項８】
前記状態変数が、
（ｉ）前記第２リターン命令応答演算の間に読み取る必要がある複数個のスタックメモリの値のいずれかによって制御する変数と、
（ｉｉ）前記第２リターン応答に続いて使用される必要がある複数個のスタックメモリの値のいずれかによって制御する変数と、
（ｉｉｉ）現在の処理への割り込みを許可された割り込みイベントのレベルを制御するアクティベーションレベルを示す変数と
を１つ以上含む請求項７記載の装置。
【請求項９】
前記リターンロジックが、前記入力オペランドである前記アドレスの値に基づいて、前記第１リターン命令応答または前記第２リターン命令応答のどちらにもそれぞれの結果を出すことが可能な、リターン命令の複数の型に応答する請求項１記載の装置。
【請求項１０】
プログラム命令によって指定されたデータ処理演算を実行する方法であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答し、
（ｉ）もし、前記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１リターン状態をもたらすために、１つ以上の第１リターン応答演算を具備する第１リターン応答が引き起こされる段階と、
（ｉｉ）もし、前記アドレスが前記１つ以上の所定のアドレス値と一致する値を有するならば、第２リターン状態をもたらすために、１つ以上の第２リターン応答演算を具備する第２リターン命令応答が引き起こされる段階とを有し、前記１つ以上の第２リターン命令応答演算は、前記１つ以上の第１リターン命令応答演算と異なるものである方法。
【請求項１１】
請求項１０記載の方法を実行するためのデータ処理装置の制御を可能にするコンピュータプログラムを搭載したコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムの分野に関するものである。特に本発明は、サブルーチンからのリターンの際に使用されるためのサブルーチンリターン構造の制御に関する。
【背景技術】
【０００２】
サブルーチンをサポートするデータ処理システムを提供することが知られている。一形式のサブルーチン実行は、一般プログラム実行中に呼び出された手続き（procedure）から生じ、そうするとすぐにサブルーチンが実行され、かつサブルーチンの終わりでは、手続きリターン命令が、プログラムフローをプログラム命令へリダイレクトするために、手続き呼び出しプログラム命令に続いて実行される。一般的に、上記処理システムの演算方式は、このような手続き呼び出しによって変更されない。
【０００３】
また、例外（exception）処理サブルーチン（例えば、例外ハンドラールーチンなど）も、データ処理システム内でサポートされており、一般処理中に発生する例外／割り込み（interrupt）によって引き起こされる。これらは例外扱いサブルーチンの実行を引き起こす。このような例外扱いサブルーチンは、オリジナルプログラム命令フロー内の適切な点（例外を生じさせた命令、または次に続く命令、またはその他の点の可能性がある）へのリターンを引き起こす例外リターン命令を用いて処理する。このような例外扱いルーチンに関連して、例外が発生した時点でのシステムの状態を特徴化した変数を格納し、ついで例外リターン命令を実行するときにコンテクストを復元するこれらの変数を復元するコンテクストスイッチを提供することが知られている。
【０００４】
例えば、スタックメモリからのコンテクスト変数の復元、または演算を復元する他のコンテクストのような例外リターン命令の実行上の動作は、手続きリターン命令が実行されたときの動作とは異なる。サブルーチンの末尾で２つの異なる形式の動作が適切に呼び出されることを可能にするためには、例外リターン処理または手続きリターン処理をそれぞれ引き起こす機能を持った個別のリターン命令を提供することが知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この公知の対処法の結果は、末尾のリターン命令がサブルーチンの性質上適切な方法で書かれることは、サブルーチンプログラムにとって必要ということである。上記理由は、例外扱いサブルーチンのようないくつかのサブルーチンプログラムにとって、手入力またはアセンブリ言語で書かれていることが普通だからである。その結果、必要なコンテクストの復元が実行されたとき、及びリターンがなされたときに他の演算が実行されるように、サブルーチンを終了するために使用してもよい。例外扱いサブルーチンを手入力またはアセンブリ言語で書くというこの要求は、例外扱いコード全体及び他のサブルーチンを書くためにＣ言語のような高レベルのコンピュータ言語の使用を妨げることで、不利益を与えていた。
【課題を解決するための手段】
【０００６】
本発明の一実施態様は、プログラム命令に指定されたデータ処理演算を実行するための装置であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答するリターンロジックを有し、
（ｉ）もし、上記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１リターン状態をもたらすために、１つ以上の第１リターン応答演算を具備する第１リターン応答を上記リターンロジックが引き起こし、
（ｉｉ）もし、上記アドレスが上記１つ以上の所定のアドレス値と一致する値を有するならば、第２リターン状態をもたらすために、１つ以上の第２リターン応答演算を具備する第２リターン命令応答を上記リターンロジックが引き起こし、上記１つ以上の第２リターン命令応答演算は、上記１つ以上の第１リターン命令応答演算と異なるものである装置を提供する。
【０００７】
本発明は、リターン応答演算の異なる形式間の識別が、リターン命令への入力オペランドの１つのアドレス値の中でなされることを認識する。さらに、本ハードウェアは、１つ以上の所定のアドレス値と一致するアドレス値を検出することができ、かつ、この検出に基づいて実行されるためのリターン命令応答演算を適切に選択できる。これにより、同一のリターン命令を使用することができるとともに、データ値に基づき、かつ命令符号化に何の変更も加えずに、異なる型のリターン命令応答演算を呼び出すことができる。ついで、１つ以上の所定のアドレスに関係するリターン命令応答演算の形式を必要とする命令を行うことによって、リターン命令へ入力オペランド（例えば、サブルーチンのためのリターンアドレスなど）のようなアドレスを提供する。さらに、必要なリターン命令応答演算を呼び出すことが可能である。
【発明の効果】
【０００８】
本技術は、高度な言語がサブルーチンコード入力に統一して用いられることを可能とするような、本技術によって使用されるためのリターン命令を標準化し、その代わりに、必要なときに異なる形式のリターン命令応答演算を引き起こす１つ以上の所定の値のために使用されるメモリーマップの小領域を専有する。一般実行可能コードのために使用できない特殊用途のメモリ領域を備えていることが、データ処理システムでは知られている。従って、それらの現在のメモリ領域内にこのような１つ以上の所定の値を備えることは、現在のシステム設計の重大な妥協または制限を意味しない。
【０００９】
同時に、本技術は、幅広い種類の異なるリターン命令応答を識別して使用可能であり、特に、アドレス値がプログラムカウンタレジスタの中へ読み戻される場合、手続きリターン応答間の識別に役立つ。しかも、スタックメモリの中に格納されたリターンアドレスの中の例外リターン応答が、プログラムカウンタレジスタの中へ再読み込みされてコンテクストが復元される。
【００１０】
また、検出される上記１つ以上の所定のアドレス値は、上記１つ以上の第２リターン命令応答演算によって復元されるためのシステムの状態変数を、有効にエンコードするために使用してもよい。そのビットスペースの中に復元される状態変数はエンコードされ、第２リターン命令応答を引き起こすために使用された上記所定のアドレス値の範囲は、追加のビットスペースを備える。それによって状態変数格納構造の中の制限を克服し、かつシステム内のその他の場所に備わるリソースを復元する。
【００１１】
システムが、異なるリターン命令応答となる関連アドレスによって決まる単一形式のリターン命令を有する一方で、本技術の好適な実施態様は、本技術を使用するために適合される複数の型のリターン命令を有する。これにより、リターン命令応答は、入力オペランドとして当該リターン命令に提供されるアドレスと、１つ以上の所定のアドレス値との一致の検出によって制御される。
【００１２】
本発明の他の実施態様は、プログラム命令によって指定されたデータ処理演算を実行する方法であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こす、入力オペランドとしてのアドレスを有するリターン命令に応答し、
（ｉ）もし、上記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１リターン状態をもたらすために、１つ以上の第１リターン応答演算を具備する第１リターン応答が引き起こされる段階と、
（ｉｉ）もし、上記アドレスが上記１つ以上の所定のアドレス値と一致する値を有するならば、第２リターン状態をもたらすために、１つ以上の第２リターン応答演算を具備する第２リターン命令応答が引き起こされる段階とを有し、上記１つ以上の第２リターン命令応答演算は、上記１つ以上の第１リターン命令応答演算と異なるものである方法を提供する。
【００１３】
補足的な見地から、本発明は、上述の技術に適合したデータ処理装置を制御可能にするコンピュータプログラムを持ったコンピュータプログラム製品を備えていると考えることができる。
【００１４】
上述の及び他の目的のための、この発明の特徴及び利点は、添付する図面から読み取れる図示された実施形態の詳細な記述に沿って明示される。
【発明を実施するための最良の形態】
【００１５】
図１は、プログラム命令Ａ、Ｂ、Ｃ・・・の実行順序を示す。これらのプログラム命令内で、プログラム命令ａ、ｂ、ｃ・・・を含むサブルーチンへ処理を行わせる手続き呼び出しという呼び出し命令がある。この呼び出し命令が実行されたとき、ＰＣレジスタ内に格納された現在のプログラムカウンタレジスタの値は、リンクレジスタＬＲへ保存され、かつプログラムカウンタレジスタＰＣには、サブルーチン内の第１命令、すなわち命令ａのアドレスが読み込まれる。その後、サブルーチンの実行は、サブルーチン末尾のリターン命令が出るまで続く。
【００１６】
この段階において、リターン命令応答は呼び出される。これにより、リンクレジスタＬＲに格納された値は、１つ以上の所定の値と比較され、かつ一致しないことが検出される。従って、手続きリターン命令応答は呼び出され、リンクレジスタＬＲの値がプログラムカウンタレジスタＰＣに読み戻され（つまり、リンクレジスタＬＲの値は呼出し命令に続くプログラム命令を指す）、かつ、プログラム実行は命令Ｅから再開する。図１の手続き呼び出しでは、コンテクストスイッチは呼び出されず、従って、モードは切り替わらない。すなわち、レジスタ格納演算または復元演算は、リターン時には必要である。
【００１７】
図２は、例外サブルーチン呼び出しの概略図である。メインプログラム命令Ａ、Ｂ、Ｃ・・・の実行はこれまで通りであるが、命令Ｄの実行中にも例外は発生する。例外が命令実行中に発生可能となり、その結果、該命令が例外扱いルーチンからのリターン時に再実行を強いられること、または代わりに次の命令が実行されなければならないことを意味する。双方のこれら動作は、本技術範囲内に含まれ、必要に応じて適切な例外扱いサブルーチンによって制御される。発生するかもしれない他の種類の例外は、割り込み（典型的な非同期性を持つ）からのものであり、そうすると、割り込み扱いルーチンは、次の命令との境界上で呼び出される。もし、図２に示した例外が割り込みに置き換えられたと仮定すると、サブルーチンは、命令Ｄと命令Ｅとの境界で呼び出される。割り込み扱いルーチンは命令Ｅから実行を再開する。
【００１８】
図２に示したように、例外サブルーチン呼び出しに対する動作は、図１の手続き呼び出しの動作とは異なる。特に、例外／割り込みの検出に関係するハードウェアメカニズムは、１つ以上の所定のアドレスと一致するアドレス（exc_return）をリンクレジスタＬＲの中に格納させるように機能する。また、処理装置の現在のコンテクストは、現在のプログラムカウンタレジスタＰＣの値を含んでスタックメモリ領域に保存される。その後、例外手続きルーチンａ、ｂ、ｃは、最後のリターン命令が出るまで実行される。
【００１９】
この段階において、リンクレジスタは、図１にあるように読み取られ、かつ例外リターン命令の動作と一致する既知の１つ以上の所定のアドレスと比較される。これらが一致する場合には、従って、例外リターン命令応答演算は、ハードウェアによって特別なexc_return値へセットされているリンクレジスタＬＲ内の値を使用するのではなく、スタックメモリ内に格納された値からの処理装置のコンテクストの復元、及びスタックメモリ上に格納された値からのプログラムカウンタレジスタＰＣの値の復元を含んで引き起こされる。
【００２０】
図３は、図１及び図２に示した動作を概略的に示すフロー図である。ステップ１０において、システムはリターン命令が受け取られるのを待つ。データ処理システム内で、命令取り出し（fetch）ユニット、命令デコードユニット、命令実行ユニットなどのような、異なる機能のユニット各部は、リターン命令へ適切に応答するために演算し、かつ必要なリターン命令応答演算を呼び出すリターン命令ロジックの、機能性の１つに寄与するためにすべて考慮されてよい。図３のステップ１０は、リターン命令が受け取られるまで待ち、受け取ると、ステップ１２は、リターン命令が１つ以上の所定の値と一致することに関係するリターンアドレスかどうかを判定する。この例において、上記判定は、リターンアドレスが0xFFFFFFF0より大きいかどうかである。
【００２１】
もし、ステップ１２での上記判定が一致の発生でなかったならば、リターン命令は、手続き呼び出しリターン命令であると見なされて、演算は、リンクレジスタＬＲからのリターンアドレスがプログラムカウンタレジスタＰＣに復元されるステップ１４へ進む。
【００２２】
もし、ステップ１２での上記判定が一致の検出ならば、処理は、ステップ１６に進む。ステップ１６では、リターンアドレス自体の最下位桁ビット内でエンコードされた１つ以上の状態変数の復元と、その後に続くステップ１８でのスタックメモリ上に格納された種
々のレジスタの値を含む処理装置のコンテクストの復元を含んで、例外呼び出しリターン命令応答演算が呼び出される。
【００２３】
図４は、本技術を組み入れたデータ処理装置の一部分の概略図である。図示された要素は比例した縮尺でなく、かつ実際にはシステム全体内には多くの他の回路要素が存在する。命令取り出しユニット２０は、現在実行しているプログラム命令を示すアドレスを格納するプログラムカウンタレジスタ２２を含む。パイプラインシステム内では、命令取り出しユニット２０内に格納されたプログラムカウンタの値と、ダウンストリーム実行ステージで実際に実行された命令とは、両者間でずれが生じる可能性がある。
【００２４】
一般命令フローに従って各命令が取り出されるので、増加器２４は、このプログラムカウンタの値を増加させる。もし、実行ユニット２６または読み込み格納ユニット２８が適切な手続き呼び出し命令を実行させるならば、これは、マルチプレクサ３０及び３２を経由してプログラムカウンタレジスタ２２内に、手続き呼び出し命令によって指定されるアドレスに読み込ませることによって、手続きサブルーチンへのジャンプを引き起こす。
【００２５】
サブルーチンの末尾では、リターン命令は、命令取り出しユニット２０によって取り出され、かつデコードされるために進み、かつ読み込み格納ユニット２８または実行ユニット２６によって適切に実行される。このようなリターン命令が実行されたとき、リターンアドレスの値をプログラムカウンタレジスタ２２へマルチプレクサ３０及び３２を経由して書き込もうとする。リターンアドレスチェック回路３４は、プログラムカウンタレジスタ２２へ書き込まれるリターンアドレスを検査し、もしこれが例外リターン動作に対応する既知の１つ以上の所定の値と一致するならば、これは、パイプライン制御回路３６によって実行される適切なパイプラインのフラッシュ（flush）、並びにメインメモリ４２内で実行されるスタックメモリ４０からのコンテクストデータの修復及び再読み込みを含む例外リターン演算を引き起こす。
【００２６】
この実施形態において、一致の検出のための１つ以上の所定のアドレスは、３２ビットメモリスペース内の上位１６のアドレスである。リターンアドレスとして使用されたときのこれらのアドレスの最下位桁ビットは、復元するために使用されるためのスタックメモリ、及びリターンの後に使用されるためのスタックメモリ、及びリターン時に実行された処理に割り込むための務めができるかどうかわからない割り込みを示すリターンに続くシステムの起動レベルを含む、例外リターン時に復元されるための状態変数をエンコードするための務めをする。
【００２７】
また、例外エントリ及びリターン制御ロジック３８は、図２に示すように例外手続きルーチンの実行を引き起こす外部の非同期性の割り込み信号ＩＲＱ（割り込み要求）へ応答する。実行ユニット２６による未定義命令の実行の試みは、読み込み格納ユニット２８によるある演算、及びシステム内のその他の場所でのある演算を行おうとするのみならず、例外動作を生じさせることも可能にする。例外サブルーチンへのエントリ時に、リターンの実行時に復元される状態を意味するいくらかのデータは、リターンアドレスの最下位桁ビット（この例では、４ビット）でエンコードされる。
【００２８】
本発明の概要は、添付する図面の参照によって詳細に説明されるが、本発明がそれらの実施形態そのものに限定されないこと、並びに添付する特許請求の範囲によって特定される発明の範囲及び本質から逸脱することなく、当業者によって本発明にさまざまな変更及び修正を加えることが可能であることは明白である。
【図面の簡単な説明】
【００２９】
【図１】手続き呼び出しサブルーチンの概略図である。
【図２】例外呼び出しサブルーチンの概略図である。
【図３】リターン命令の受け取りに対して行われる処理を図示したフローダイアグラムである。
【図４】図３に示した、異なる形式のリターン命令応答に従った演算を行うデータ処理装置のブロック図である。
【符号の説明】
【００３０】
２０  命令取り出しユニット
２２  プログラムカウンタレジスタ
２４  増加器
２６  実行ユニット
２８  読み込み格納ユニット
３０、３２  マルチプレクサ
３４  リターンアドレスチェック回路
３６  パイプライン制御回路
３８  例外エントリ及びリターン制御ロジック
４０  スタックメモリ
４２  メインメモリ
【図１】
2008535072.tif 000003
【図２】
2008535072.tif 000004
【図３】
2008535072.tif 000005
【図４】
2008535072.tif 000006
【手続補正書】
【提出日】平成19年10月1日(2007.10.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラム命令によって指定されたデータ処理演算を実行するための装置であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答するリターンロジックを有し、
（ｉ）もし、前記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、手続き呼び出しからのリターンであり、かつ第１復帰状態をもたらすための１つ以上の第１リターン命令応答演算を具備する手続きリターン命令応答を、前記リターンロジックが引き起こし、
（ｉｉ）もし、前記アドレスが前記１つ以上の所定のアドレス値と一致する値を有するならば、例外呼び出しからのリターンであり、かつ第２復帰状態をもたらすための１つ以上の第２リターン命令応答演算を具備する例外リターン命令応答を、前記リターンロジックが引き起こし、前記１つ以上の第２リターン命令応答演算は、前記１つ以上の第１リターン命令応答演算と異なるものである装置。
【請求項２】
複数のプログラム命令内の実行ポイントを指定するプログラムカウンタを具備する請求項１記載の装置。
【請求項３】
前記手続きリターン命令応答が、前記アドレスを用いた前記プログラムカウンタレジスタの読み込みである請求項２記載の装置。
【請求項４】
スタックメモリへのデータ格納と、前記スタックメモリからのデータ読み取りとを可能にするスタックメモリロジックを具備し、前記例外リターン命令応答が、前記スタックメモリからの格納アドレスの読み取りと、前記格納アドレスを用いた前記プログラムカウンタレジスタの読み込みとである請求項２記載の装置。
【請求項５】
前記アドレスの格納を可能にするリンクレジスタを具備する請求項１記載の装置。
【請求項６】
（ｉ）前記１つ以上の所定のアドレス値と一致する値のリンクレジスタ内の格納と、
（ｉｉ）前記格納されたアドレスの前記スタックメモリ内の格納と、
（ｉｉｉ）例外扱いルーチンの実行と
を引き起こすための例外の発生に応答する例外処理ロジックを具備する請求項４記載の装置。
【請求項７】
前記アドレスが前記１つ以上の所定のアドレス値と一致するとき、前記１つ以上の第２リターン命令応答演算によって復元されるための前記装置の状態変数をエンコードする１つ以上のビットを、該アドレスが具備する請求項１記載の装置。
【請求項８】
前記状態変数が、
（ｉ）前記第２リターン命令応答演算の間に読み取る必要がある複数個のスタックメモリの値のいずれかによって制御する変数と、
（ｉｉ）前記例外リターン命令応答に続いて使用される必要がある複数個のスタックメモリの値のいずれかによって制御する変数と、
（ｉｉｉ）現在の処理への割り込みを許可された割り込みイベントのレベルを制御するアクティベーションレベルを示す変数と
を１つ以上含む請求項７記載の装置。
【請求項９】
前記リターンロジックが、前記入力オペランドである前記アドレスの値に基づいて、前記手続きリターン命令応答または前記例外リターン命令応答のどちらにもそれぞれの結果を出すことが可能な、リターン命令の複数の型に応答する請求項１記載の装置。
【請求項１０】
プログラム命令によって指定されたデータ処理演算を実行する方法であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答し、
（ｉ）もし、前記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１復帰状態をもたらすための１つ以上の第１リターン命令応答演算を具備する、手続き呼び出しからのリターンである手続きリターン命令応答が引き起こされる段階と、
（ｉｉ）もし、前記アドレスが前記１つ以上の所定のアドレス値と一致する値を有するならば、第２復帰状態をもたらすための１つ以上の第２リターン命令応答演算を具備する、例外呼び出しからのリターンである例外リターン命令応答が引き起こされる段階とを有し、前記１つ以上の第２リターン命令応答演算は、前記１つ以上の第１リターン命令応答演算と異なるものである方法。
【請求項１１】
請求項１０記載の方法を実行するためのデータ処理装置の制御を可能にするコンピュータプログラムを搭載したコンピュータプログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の一実施態様は、プログラム命令に指定されたデータ処理演算を実行するための装置であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こすために、入力オペランドとしてのアドレスを有するリターン命令に応答するリターンロジックを有し、
（ｉ）もし、上記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、手続き呼び出しからのリターンであり、かつ第１復帰状態をもたらすために１つ以上の第１リターン命令応答演算を具備する手続きリターン命令応答を、上記リターンロジックが引き起こし、
（ｉｉ）もし、上記アドレスが上記１つ以上の所定のアドレス値と一致する値を有するならば、例外呼び出しからのリターンであり、かつ第２復帰状態をもたらすために、１つ以上の第２リターン命令応答演算を具備する例外リターン命令応答を、上記リターンロジックが引き起こし、上記１つ以上の第２リターン命令応答演算は、上記１つ以上の第１リターン命令応答演算と異なるものである装置を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明は、リターン応答演算の異なる形式間の識別が、リターン命令への入力オペランドの１つのアドレス値の中でなされることを認識する。さらに、本ハードウェアは、１つ以上の所定のアドレス値と一致するアドレス値を検出することができ、かつ、この検出に基づいて実行されるためのリターン命令応答演算を適切に選択できる。これにより、同一のリターン命令を使用することができるとともに、データ値に基づき、かつ命令符号化に何の変更も加えずに、異なる型のリターン命令応答演算を呼び出すことができる。ついで、１つ以上の所定のアドレスに関係するリターン命令応答演算の形式を必要とする命令を行うことによって、リターン命令へ入力オペランド（例えば、サブルーチンのためのリターンアドレスなど）のようなアドレスを提供する。さらに、必要なリターン命令応答演算を呼び出すことが可能である。特に、アドレス値がプログラムカウンタレジスタの中へ読み戻される場合、手続きリターン応答間の識別に役立つ。しかも、スタックメモリの中に格納されたリターンアドレスの中の例外リターン応答が、プログラムカウンタレジスタの中へ再読み込みされてコンテクストが復元される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明の他の実施態様は、プログラム命令によって指定されたデータ処理演算を実行する方法であって、そのアドレスによって示されるプログラム命令の実行へのリターンを引き起こす、入力オペランドとしてのアドレスを有するリターン命令に応答し、
（ｉ）もし、上記アドレスが１つ以上の所定のアドレス値と一致しない値を有するならば、第１復帰状態をもたらすための１つ以上の第１リターン命令応答演算を具備する、手続き呼び出しからのリターンである手続きリターン命令応答が引き起こされる段階と、
（ｉｉ）もし、上記アドレスが上記１つ以上の所定のアドレス値と一致する値を有するならば、第２復帰状態をもたらすための１つ以上の第２リターン命令応答演算を具備する、例外呼び出しからのリターンである例外リターン命令応答が引き起こされる段階とを有し、上記１つ以上の第２リターン命令応答演算は、上記１つ以上の第１リターン命令応答演算と異なるものである方法を提供する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
本発明の概要は、添付する図面の参照によって詳細に説明されるが、本発明がそれらの実施形態そのものに限定されないこと、並びに添付する特許請求の範囲によって特定される発明の範囲から逸脱することなく、当業者によって本発明にさまざまな変更及び修正を加えることが可能であることは明白である。
【国際調査報告】
2008535072.tif 000007
2008535072.tif 000008
2008535072.tif 000009