【誤訳訂正書】
【提出日】平成25年4月5日(2013.4.5)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
トランスレータによって対象プログラム・コードを目的コードにトランスレーションしながら、当該目的コードを実行する間に直面する例外を処理する方法であって、前記トランスレーションされた目的コードを実行する目的プロセッサとメモリとを備えているコンピュータが、
前記トランスレータを使用して例外の発生を検出するステップと、
前記検出された例外を処理するために要求される正確度レベルであって、前記例外が発生したときの対象プロセッサの状態の当該正確度レベルが最も低いレベルになるように、前記トランスレータを使用して下記基準に従い下記４つの正確度レベルから正確度レベルを選択するステップであって、
前記対象プログラム・コードを実行する前記対象プロセッサの状態が、対象レジスタ値及びプログラム・カウンタ値を含み、
前記正確度レベルは下記レベル０〜３から選択され、
前記レベル０の選択は、前記トランスレータによるデコード時に、対象プロセッサの状態が例外処理に全く必要としないと前記トランスレータが決定する場合に行われ、
前記レベル１の選択は、例外信号の供給源が非同期の外部イベントを含む外部イベントである場合に行われ、又は、例外信号の供給源がデコード時に検出される場合若しくは例外信号の供給源が目的コードの実行によって生じる場合にデフォルト・レベルとして行われ、
前記レベル２の選択は、前記トランスレータがデコード時に、特定の対象命令が例外信号をトリガすること、及び対象信号ハンドラが前記正確なプログラム・カウンタ値を必要とすること、を前記トランスレータが決定する場合に行われ、
前記レベル３の選択は、前記トランスレータがデコード時に、命令によって例外が発生すること、及びプログラム・カウンタの値とその他のコンテキストが必要になること、を前記トランスレータが決定する場合、又は、前記トランスレータがデコード時に、前記対象プログラム・コードにおける特定の命令によって例外が発生すること、及び例外処理には前記対象プロセッサの状態がプログラム・カウンタ値とその他の状態が必要になること、を前記トランスレータが決定する場合に行われ、
当該正確度レベルがレベル０から３の順に高くなり、当該正確度レベルが、
例外処理時に、対象プロセッサの状態を全く必要としないレベルであるレベル０、
例外処理時に、最新の既知のスタック・フレームであることを必要とするレベルであるレベル１、ここで前記最新の既知のスタック・フレームは、最新の既知のスタック・ポインタ値、ベース・ポインタ値、およびプログラム・カウンタ・レジスタ値の最新の既知の整合性のある値を含み、
例外処理時に、現在の状態を反映し、対象プログラム・カウンタに対する正確なプログラム・カウンタ値であることを必要とするレベルであるレベル２、及び
例外処理時に、対象レジスタ・バンクにおける修正された対象レジスタ値を含む正確な対象レジスタ値、及び対象プログラム・カウンタに対する正確なプログラム・カウンタ値であることを必要とするレベルであるレベル３、
である、前記選択するステップと、
前記選択された正確度レベルに対応付けられた動作を実行することで、前記検出された例外を処理するステップであって、前記正確度レベルに対応して、
前記正確度レベルがレベル０の時にはプログラム・カウンタ値及び対象レジスタ値をロードしないような動作が行われ、
前記正確度レベルがレベル１の時には前記最新の既知のスタック・フレームを与え、但し対象レジスタ値の修正をしないような動作が行われ、
前記正確度レベルがレベル２の時には前記最新の既知のスタック・フレームを与え、且つ、前記正確なプログラム・カウンタ値を設定するような動作が行われ、但し対象レジスタ値の修正をしない、
前記正確度レベルがレベル３の時には前記正確な対象レジスタ値、及び前記正確なプログラム・カウンタ値を設定するような動作が行われる、
前記処理するステップと
を実行することを含む、前記方法。
【請求項２】
トランスレータによって対象プログラム・コードを目的コードにトランスレーションしながら、当該目的コードを実行する間に直面する例外を処理するトランスレータ装置であって、
メモリと、
前記メモリに接続され、前記トランスレーションされた目的コードを実行する目的プロセッサであって、
前記トランスレータを使用して例外の発生を検出すること、
前記検出された例外を処理するために要求される正確度レベルであって、前記例外が発生したときの対象プロセッサの状態の当該正確度レベルが最も低いレベルになるように、前記トランスレータを使用して下記基準に従い下記４つの正確度レベルから正確度レベルを選択することであって、
前記対象プログラム・コードを実行する前記対象プロセッサの状態が、対象レジスタ値及びプログラム・カウンタ値を含み、
前記正確度レベルは下記レベル０〜３から選択され、
前記レベル０の選択は、前記トランスレータによるデコード時に、対象プロセッサの状態が例外処理に全く必要としないと前記トランスレータが決定する場合に行われ、
前記レベル１の選択は、例外信号の供給源が非同期の外部イベントを含む外部イベントである場合に行われ、又は、例外信号の供給源がデコード時に検出される場合若しくは例外信号の供給源が目的コードの実行によって生じる場合にデフォルト・レベルとして行われ、
前記レベル２の選択は、前記トランスレータがデコード時に、特定の対象命令が例外信号をトリガすること、及び対象信号ハンドラが前記正確なプログラム・カウンタ値を必要とすること、を前記トランスレータが決定する場合に行われ、
前記レベル３の選択は、前記トランスレータがデコード時に、命令によって例外が発生すること、及びプログラム・カウンタの値とその他のコンテキストが必要になること、を前記トランスレータが決定する場合、又は、前記トランスレータがデコード時に、前記対象プログラム・コードにおける特定の命令によって例外が発生すること、及び例外処理には前記対象プロセッサの状態がプログラム・カウンタ値とその他の状態が必要になること、を前記トランスレータが決定する場合に行われ、
当該正確度レベルがレベル０から３の順に高くなり、当該正確度レベルが、
例外処理時に、対象プロセッサの状態を全く必要としないレベルであるレベル０、
例外処理時に、最新の既知のスタック・フレームであることを必要とするレベルであるレベル１、ここで前記最新の既知のスタック・フレームは、最新の既知のスタック・ポインタ値、ベース・ポインタ値、およびプログラム・カウンタ・レジスタ値の最新の既知の整合性のある値を含み、
例外処理時に、現在の状態を反映し、対象プログラム・カウンタに対する正確なプログラム・カウンタ値であることを必要とするレベルであるレベル２、及び
例外処理時に、対象レジスタ・バンクにおける修正された対象レジスタ値を含む正確な対象レジスタ値、及び対象プログラム・カウンタに対する正確なプログラム・カウンタ値であることを必要とするレベルであるレベル３、
である、前記選択すること、
前記選択された正確度レベルに対応付けられた動作を実行することで、前記検出された例外を処理することであって、前記正確度レベルに対応して、
前記正確度レベルがレベル０の時にはプログラム・カウンタ値及び対象レジスタ値をロードしないような動作が行われ、
前記正確度レベルがレベル１の時には前記最新の既知のスタック・フレームを与え、但し対象レジスタ値の修正をしないような動作が行われ、
前記正確度レベルがレベル２の時には前記最新の既知のスタック・フレームを与え、且つ、前記正確なプログラム・カウンタ値を設定するような動作が行われ、但し対象レジスタ値の修正をしない、
前記正確度レベルがレベル３の時には前記正確な対象レジスタ値、及び前記正確なプログラム・カウンタ値を設定するような動作が行われる、
前記処理すること
を実行する、前記プロセッサと
を備えている、前記トランスレータ装置。
【請求項３】
トランスレータによって対象プログラム・コードを目的コードにトランスレーションしながら、当該目的コードを実行する間に直面する例外を処理するコンピュータ・プログラムであって、前記トランスレーションされた目的コードを実行する目的プロセッサとメモリとを備えているコンピュータに、請求項１に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００３６
【訂正方法】変更
【訂正の内容】
【００３６】
一実施形態においては、可変正確度の例外処理メカニズム２２によって、例外処理が、対象コンテキスト正確度の４つのレベルで提供される。すなわち（０）状態を全く必要としない、（１）最新の既知の整合性のあるスタック・フレーム、（２）正確なプログラム・カウンタ、（３）完全に修正された対象レジスタである。前述したように、すべての対象レジスタを修正するコストは非常に高く、したがって可能ならば回避される。それ故、トランスレータ１９は、必要な正確度の最も低いレベルで、各例外を処理する。可変正確度の例外処理メカニズム２２のこの実施形態では、対象コンテキスト正確度の４つのレベルについて説明しているが、可変正確度の例外処理メカニズム２２は、正確度の任意の数の可能なレベルから正確度の任意のレベルを選択することができる。さらに、正確度の各レベルに対して、捕捉されている対象コンテキストの特定のコンポーネントの選択も、可変とすることができる。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００３８
【訂正方法】変更
【訂正の内容】
【００３８】
【表２】
2007525737.tif 000001
レベル・ゼロ（レベル０）は、例外処理時に、対象プロセッサの状態を全く必要としないレベルである。
場合によっては、トランスレータ１９は、対象プロセッサの状態を全く必要としないことが、例外処理に必要であると決定する。これらの場合には、トランスレート済み信号ハンドラ１２７に送られる対象コンテキスト１３５は、正確なプロセッサの状態データを含む必要はまったくない。たとえば、Ｌｉｎｕｘ（登録商標）オペレーティング・システムでは、例外信号数３１が、「Ｐｔｈｒｅａｄ」スレッディング・ライブラリに対して予約される。この信号は、新たに形成される子スレッドからその親に送られて、形成が成功したことを示す。Ｐｔｈｒｅａｄライブラリを実施するということは、ハンドラ１２７がどんな状態も必要としてはおらず、むしろ、例外を送る動作自体が唯一の必要とするデータであることを示している。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００４３
【訂正方法】変更
【訂正の内容】
【００４３】
レベル３は、例外処理時に、対象レジスタ・バンクにおける修正された対象レジスタ値を含む正確な対象レジスタ値、及び対象プログラム・カウンタに対する正確なプログラム・カウンタ値であることを必要とするレベルである。
レベル３は、説明している実施形態の最も高い正確度レベルである。レベル３が使用されるのは、トランスレータ１９がデコード時に、命令によって例外が発生することおよびプログラム・カウンタＰＣの値とその他のコンテキストが必要となることを、検出する場合である。場合によっては、トランスレータ１９は、デコード時に、対象コード１７における特定の命令によって例外が発生すること、例外処理にはプログラム・カウンタ値とその他の状態が必要であることを判断する。この場合には、デコード時にトランスレータ１９は、除外された命令の正確なプログラム・カウンタ値ＰＣ（対象アドレス）を記録すること、および除外された命令の前のすべての対象レジスタ値を強制的に修正するためのコードを生成することの両方を行なう。この結果、トランスレータ１９は、例外がもたらされたときに、完全な対象コンテキストをもたらすことができる。加えて、ブロック・トランスレーション・モードで動作するシステムの場合には、トランスレータ１９は、例外を含むコードのブロックをマークして、コード生成の間にある特定の最適化が適用されることがないようにする。言い換えれば、コード移動を伴ういくつかの最適化においては、対象レジスタ値を、一時的に（すなわち、目的コードにおけるある特定の時点で）対象プロセッサの状態と、たとえ修正されても、整合性がないようにすることができる。これらの最適化は、例外を含むブロックの場合には停止される。これは、トランスレート済み対象信号ハンドラ１２７に送られる対象プロセッサの状態の正確度を保証するためである。