JPH1021089A - 対応する厳密例外機構を有するディジタル・コンピュータ上での遅延例外のエミュレート - Google Patents
対応する厳密例外機構を有するディジタル・コンピュータ上での遅延例外のエミュレートInfo
- Publication number
- JPH1021089A JPH1021089A JP9048418A JP4841897A JPH1021089A JP H1021089 A JPH1021089 A JP H1021089A JP 9048418 A JP9048418 A JP 9048418A JP 4841897 A JP4841897 A JP 4841897A JP H1021089 A JPH1021089 A JP H1021089A
- Authority
- JP
- Japan
- Prior art keywords
- exception
- instruction
- unhandled
- processor
- condition
- 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
Links
- 230000007246 mechanism Effects 0.000 title abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 121
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000003111 delayed effect Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000001143 conditioned effect Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 3
- 230000003750 conditioning effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 29
- 238000007726 management method Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000238366 Cephalopoda Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
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)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 対応する厳密例外機構を有するプロセッサに
よる遅延例外機構のエミュレーションを容易にする新規
の改良されたシステムおよび方法を提供する。 【解決手段】 本発明のディジタル・コンピュータ・シ
ステムは、厳密例外処理プロセッサと制御サブシステム
とを備える。厳密例外処理プロセッサは、命令の制御下
で処理動作を実行する。厳密例外処理プロセッサは、あ
る命令に関連して例外条件が検出された場合にその例外
条件がその命令に関連して処理される厳密例外処理モデ
ルに従って構築される。厳密例外処理プロセッサはさら
に、未処理例外表示条件と非未処理例外表示状態とを有
する未処理例外インディケータを含む。制御サブシステ
ムは、少なくとも1つの被エミュレート・プログラム命
令のエミュレーションを容易にするために厳密例外処理
プロセッサに一連の命令を与える。
よる遅延例外機構のエミュレーションを容易にする新規
の改良されたシステムおよび方法を提供する。 【解決手段】 本発明のディジタル・コンピュータ・シ
ステムは、厳密例外処理プロセッサと制御サブシステム
とを備える。厳密例外処理プロセッサは、命令の制御下
で処理動作を実行する。厳密例外処理プロセッサは、あ
る命令に関連して例外条件が検出された場合にその例外
条件がその命令に関連して処理される厳密例外処理モデ
ルに従って構築される。厳密例外処理プロセッサはさら
に、未処理例外表示条件と非未処理例外表示状態とを有
する未処理例外インディケータを含む。制御サブシステ
ムは、少なくとも1つの被エミュレート・プログラム命
令のエミュレーションを容易にするために厳密例外処理
プロセッサに一連の命令を与える。
Description
【0001】
【発明の属する技術分野】本発明は、全般的には、ディ
ジタル・コンピュータの分野に関し、詳細には、厳密例
外処理機構を有するディジタル・コンピュータ上で遅延
例外処理機構をエミュレートすることに関する。
ジタル・コンピュータの分野に関し、詳細には、厳密例
外処理機構を有するディジタル・コンピュータ上で遅延
例外処理機構をエミュレートすることに関する。
【0002】
【従来の技術】ディジタル・コンピュータは、様々なタ
イプのプログラムを処理する。各プログラムは、コンピ
ュータに特定のデータ要素に関連して特定の動作を実行
させる一連の命令を含む。ディジタル・コンピュータで
は様々なタイプのプロセッサを使用することができ、各
タイプのプロセッサは、アーキテクチャ自体に従って構
築されたプロセッサが実行する1組の命令、様々な命令
のフォーマット、処理できるデータのタイプおよびフォ
ーマット、命令処理時に使用できる様々なレジスタに関
する定義、コンピュータのメモリ内の情報がどのように
アクセスされるか、アーキテクチャ自体に従って構築さ
れたプロセッサが、命令処理時に検出される例外条件を
どのように処理すべきかなどを記述するアーキテクチャ
に従って構築される。
イプのプログラムを処理する。各プログラムは、コンピ
ュータに特定のデータ要素に関連して特定の動作を実行
させる一連の命令を含む。ディジタル・コンピュータで
は様々なタイプのプロセッサを使用することができ、各
タイプのプロセッサは、アーキテクチャ自体に従って構
築されたプロセッサが実行する1組の命令、様々な命令
のフォーマット、処理できるデータのタイプおよびフォ
ーマット、命令処理時に使用できる様々なレジスタに関
する定義、コンピュータのメモリ内の情報がどのように
アクセスされるか、アーキテクチャ自体に従って構築さ
れたプロセッサが、命令処理時に検出される例外条件を
どのように処理すべきかなどを記述するアーキテクチャ
に従って構築される。
【0003】多くの場合、「被エミュレート・プロセッ
サ」としてのあるタイプのプロセッサが、「ホスト・プ
ロセッサ」としての他のタイプのプロセッサによってエ
ミュレートできるようにすることが望ましい。ホスト・
プロセッサは一般に、被エミュレート・プロセッサ用に
書かれたプログラムを処理することによって被エミュレ
ート・プロセッサをエミュレートし、被エミュレート・
プロセッサによって生成される出力に有効に対応する出
力を生成する。一般に、エミュレーションは、被エミュ
レート・プロセッサによって実行できるように生成され
たプログラム(「最初の」プログラム)を、ホスト・プ
ロセッサによって処理できるプログラム(「変換済み」
プログラム)に変換することによって行われる。この変
換プロセスはたとえば、最初のプログラムの命令および
その他の要素から、ホスト・プロセッサのアーキテクチ
ャに基づく命令およびその他の要素を生成し、それによ
って変換済みプログラムを作成することを含むであろ
う。変換は、たとえばホスト・プロセッサ自体によって
実行することも、あるいは同じコンピュータ・システム
内の他のプロセッサによって実行することも、あるいは
他のコンピュータ・システムによって実行することもで
き、プログラムを処理すべきホスト・プロセッサは、変
換プログラムの制御下でこの変換を得ることができる。
変換を実行する際は、最初のプログラム(すなわち、被
エミュレート・プロセッサのアーキテクチャに基づくプ
ログラム)内の各命令あるいは命令のシーケンスまたは
様々な命令群を、ホスト・プロセッサによって処理でき
る1つの命令あるいは一連の命令または命令群に変換す
ることができる。変換プロセスは通常、プロセッサが最
初のプログラムの処理を開始したときに最初のプログラ
ムのすべての部分または選択された部分に対して実行さ
れる。ただし、処理の進行に応じて、最初のプログラム
のうちの1つの命令を変換することも、あるいは命令群
を変換することもできることが理解されよう。また、被
エミュレート・プロセッサのデータ・フォーマットがホ
スト・プロセッサが直接使用できないものである場合、
データは、被エミュレートプロセッサのフォーマットか
ら、ホスト・プロセッサが使用できるフォーマットに変
換されるように処理することができる。
サ」としてのあるタイプのプロセッサが、「ホスト・プ
ロセッサ」としての他のタイプのプロセッサによってエ
ミュレートできるようにすることが望ましい。ホスト・
プロセッサは一般に、被エミュレート・プロセッサ用に
書かれたプログラムを処理することによって被エミュレ
ート・プロセッサをエミュレートし、被エミュレート・
プロセッサによって生成される出力に有効に対応する出
力を生成する。一般に、エミュレーションは、被エミュ
レート・プロセッサによって実行できるように生成され
たプログラム(「最初の」プログラム)を、ホスト・プ
ロセッサによって処理できるプログラム(「変換済み」
プログラム)に変換することによって行われる。この変
換プロセスはたとえば、最初のプログラムの命令および
その他の要素から、ホスト・プロセッサのアーキテクチ
ャに基づく命令およびその他の要素を生成し、それによ
って変換済みプログラムを作成することを含むであろ
う。変換は、たとえばホスト・プロセッサ自体によって
実行することも、あるいは同じコンピュータ・システム
内の他のプロセッサによって実行することも、あるいは
他のコンピュータ・システムによって実行することもで
き、プログラムを処理すべきホスト・プロセッサは、変
換プログラムの制御下でこの変換を得ることができる。
変換を実行する際は、最初のプログラム(すなわち、被
エミュレート・プロセッサのアーキテクチャに基づくプ
ログラム)内の各命令あるいは命令のシーケンスまたは
様々な命令群を、ホスト・プロセッサによって処理でき
る1つの命令あるいは一連の命令または命令群に変換す
ることができる。変換プロセスは通常、プロセッサが最
初のプログラムの処理を開始したときに最初のプログラ
ムのすべての部分または選択された部分に対して実行さ
れる。ただし、処理の進行に応じて、最初のプログラム
のうちの1つの命令を変換することも、あるいは命令群
を変換することもできることが理解されよう。また、被
エミュレート・プロセッサのデータ・フォーマットがホ
スト・プロセッサが直接使用できないものである場合、
データは、被エミュレートプロセッサのフォーマットか
ら、ホスト・プロセッサが使用できるフォーマットに変
換されるように処理することができる。
【0004】前述のように、アーキテクチャの定義に
は、そのアーキテクチャに従って構築されたプロセッサ
が、命令処理時に検出される例外条件をどのように処理
すべきかの記述が含まれる。例外条件を処理する2つの
方法が開発されている。一方の方法は、アーキテクチャ
が「遅延」例外処理モデルを指定するプロセッサの例で
あり、そのような方法では、命令の処理時に例外が検出
された場合、例外が示された命令の次の命令の処理にプ
ロセッサが進んだ後のある点まで例外ハンドラは呼び出
されない。たとえば、現在、8086マイクロプロセッ
サ・ラインと、8088マイクロプロセッサ・ライン
と、80286マイクロプロセッサ・ラインと、803
86マイクロプロセッサ・ラインと、80486マイク
ロプロセッサ・ラインと、「PentiumTM」マイク
ロプロセッサ・ラインとを含む、Intel Corp
oration x86マイクロプロセッサ・ファミリ
ーの例外処理では、浮動小数点の処理時に例外条件が検
出された場合、マイクロプロセッサは、次の不動小数点
命令が処理されるまでその例外に対する例外ハンドラを
呼び出さない。この方法の1つの利益は、マイクロプロ
セッサが、例外条件が検出された後に他の浮動小数点命
令を処理しない場合、例外条件を処理する必要はなく、
したがって、例外ハンドラを呼び出す必要がないことで
ある。しかし、プロセッサは一般に、例外ハンドラが有
効に呼び出された場合に、例外を処理するのに必要な情
報を有するように、例外条件が検出された浮動小数点命
令の後しばらくの間ある種の例外状況情報を保持する必
要がある。
は、そのアーキテクチャに従って構築されたプロセッサ
が、命令処理時に検出される例外条件をどのように処理
すべきかの記述が含まれる。例外条件を処理する2つの
方法が開発されている。一方の方法は、アーキテクチャ
が「遅延」例外処理モデルを指定するプロセッサの例で
あり、そのような方法では、命令の処理時に例外が検出
された場合、例外が示された命令の次の命令の処理にプ
ロセッサが進んだ後のある点まで例外ハンドラは呼び出
されない。たとえば、現在、8086マイクロプロセッ
サ・ラインと、8088マイクロプロセッサ・ライン
と、80286マイクロプロセッサ・ラインと、803
86マイクロプロセッサ・ラインと、80486マイク
ロプロセッサ・ラインと、「PentiumTM」マイク
ロプロセッサ・ラインとを含む、Intel Corp
oration x86マイクロプロセッサ・ファミリ
ーの例外処理では、浮動小数点の処理時に例外条件が検
出された場合、マイクロプロセッサは、次の不動小数点
命令が処理されるまでその例外に対する例外ハンドラを
呼び出さない。この方法の1つの利益は、マイクロプロ
セッサが、例外条件が検出された後に他の浮動小数点命
令を処理しない場合、例外条件を処理する必要はなく、
したがって、例外ハンドラを呼び出す必要がないことで
ある。しかし、プロセッサは一般に、例外ハンドラが有
効に呼び出された場合に、例外を処理するのに必要な情
報を有するように、例外条件が検出された浮動小数点命
令の後しばらくの間ある種の例外状況情報を保持する必
要がある。
【0005】一方、第2の方法は、プロセッサが「厳
密」例外処理モデルに従うコンピュータを代表するもの
であり、そのような方法では、命令の処理時に例外条件
が検出された場合、例外ハンドラは、命令に対して動作
が実行された直後に呼び出される。この方法に従って構
築されたプロセッサのある種の実施態様はたとえば、S
PARC International,Inc[Da
vid L.Weaver and Tom Germ
ond(eds)]発行の「The SPARCArc
hitecure Manual Version
9」(Prentice−Hall、1994年)(下
記では「SPARCアーキテクチャ・マニュアル、バー
ジョン9」と呼ぶ)に記載されたSPARCバージョン
9に従って構築されたプロセッサが含まれる。この方法
の1つの利益は、例外ハンドラが、例外条件を発生させ
た命令が処理された直後に処理されるので、例外ハンド
ラに必要な例外状況情報が、直接得られ、例外条件を発
生させたプログラム命令に対する処理の後まで保存して
おく必要がないことである。しかし、この方法では、プ
ロセッサは、それ自体による後続の処理が、例外条件を
扱うことを必要としない場合でも、常に例外ハンドラを
処理する。
密」例外処理モデルに従うコンピュータを代表するもの
であり、そのような方法では、命令の処理時に例外条件
が検出された場合、例外ハンドラは、命令に対して動作
が実行された直後に呼び出される。この方法に従って構
築されたプロセッサのある種の実施態様はたとえば、S
PARC International,Inc[Da
vid L.Weaver and Tom Germ
ond(eds)]発行の「The SPARCArc
hitecure Manual Version
9」(Prentice−Hall、1994年)(下
記では「SPARCアーキテクチャ・マニュアル、バー
ジョン9」と呼ぶ)に記載されたSPARCバージョン
9に従って構築されたプロセッサが含まれる。この方法
の1つの利益は、例外ハンドラが、例外条件を発生させ
た命令が処理された直後に処理されるので、例外ハンド
ラに必要な例外状況情報が、直接得られ、例外条件を発
生させたプログラム命令に対する処理の後まで保存して
おく必要がないことである。しかし、この方法では、プ
ロセッサは、それ自体による後続の処理が、例外条件を
扱うことを必要としない場合でも、常に例外ハンドラを
処理する。
【0006】しかし、「厳密」例外処理モデルに従うホ
スト・プロセッサが、「遅延」例外処理モデルに従う被
エミュレート・プロセッサをエミュレートできるように
することが望ましい場合に問題が生じる。前述のよう
に、厳密例外処理モデルに従うホスト・プロセッサは、
遅延例外処理モデルに従う被エミュレート・プロセッサ
によって例外が処理される方法と同様な方法では例外を
処理しないので、そのようなホスト・プロセッサがその
ような被エミュレート・プロセッサを正しくエミュレー
トすることは困難である。
スト・プロセッサが、「遅延」例外処理モデルに従う被
エミュレート・プロセッサをエミュレートできるように
することが望ましい場合に問題が生じる。前述のよう
に、厳密例外処理モデルに従うホスト・プロセッサは、
遅延例外処理モデルに従う被エミュレート・プロセッサ
によって例外が処理される方法と同様な方法では例外を
処理しないので、そのようなホスト・プロセッサがその
ような被エミュレート・プロセッサを正しくエミュレー
トすることは困難である。
【0007】
【発明が解決しようとする課題】本発明は、対応する厳
密例外機構を有するプロセッサによる遅延例外機構のエ
ミュレーションを容易にする新規の改良されたシステム
および方法を提供する。
密例外機構を有するプロセッサによる遅延例外機構のエ
ミュレーションを容易にする新規の改良されたシステム
および方法を提供する。
【0008】
【課題を解決するための手段】簡単に言えば、本発明は
一態様で、厳密例外処理プロセッサと制御サブシステム
とを備えるディジタル・コンピュータ・システムを提供
する。厳密例外処理プロセッサは、命令の制御下で処理
動作を実行する。厳密例外処理プロセッサは、厳密例外
処理モデルに従って構築され、厳密例外処理モデルで
は、ある例外条件がある命令に関連して検出された場
合、その例外条件はその命令に関連して処理される。厳
密例外処理プロセッサはさらに、未処理例外指示状態と
非未処理例外指示状態とを有する未処理例外指示器を含
む。制御サブシステムは、厳密例外処理プロセッサに一
連の命令を提供し、被エミュレート・プログラムの少な
くとも1つの命令のエミュレーションを容易にする。被
エミュレート・プログラムは、遅延例外処理プロセッサ
によって処理されるように構築され、遅延例外処理プロ
セッサは遅延例外処理モデルに従って構築され、遅延例
外処理モデルでは、命令の処理時に例外が検出された場
合、その例外条件はその後の命令に関連して処理され
る。制御サブシステムから与えられる一連の命令は、被
エミュレート・プログラムの命令のエミュレート時に、
厳密例外処理プロセッサを下記のように制御する。
一態様で、厳密例外処理プロセッサと制御サブシステム
とを備えるディジタル・コンピュータ・システムを提供
する。厳密例外処理プロセッサは、命令の制御下で処理
動作を実行する。厳密例外処理プロセッサは、厳密例外
処理モデルに従って構築され、厳密例外処理モデルで
は、ある例外条件がある命令に関連して検出された場
合、その例外条件はその命令に関連して処理される。厳
密例外処理プロセッサはさらに、未処理例外指示状態と
非未処理例外指示状態とを有する未処理例外指示器を含
む。制御サブシステムは、厳密例外処理プロセッサに一
連の命令を提供し、被エミュレート・プログラムの少な
くとも1つの命令のエミュレーションを容易にする。被
エミュレート・プログラムは、遅延例外処理プロセッサ
によって処理されるように構築され、遅延例外処理プロ
セッサは遅延例外処理モデルに従って構築され、遅延例
外処理モデルでは、命令の処理時に例外が検出された場
合、その例外条件はその後の命令に関連して処理され
る。制御サブシステムから与えられる一連の命令は、被
エミュレート・プログラムの命令のエミュレート時に、
厳密例外処理プロセッサを下記のように制御する。
【0009】(i)未処理例外指示器が未処理例外指示
状態であるかどうかを判定し、そうである場合、未処理
の例外を処理するルーチンを呼び出し、未処理例外指示
器を非未処理例外指示状態に条件付ける。 (ii)被エミュレート処理命令に従って処理動作を実
行する。 (iii)処理動作時に例外条件が検出された場合、プ
ロセッサの厳密例外処理モデルに従って例外ハンドラを
呼び出し、未処理例外指示器を未処理例外指示状態に条
件付け、それによって、この例外条件が、後続の被エミ
ュレートプログラム命令に対する処理動作時に処理され
るようにする。
状態であるかどうかを判定し、そうである場合、未処理
の例外を処理するルーチンを呼び出し、未処理例外指示
器を非未処理例外指示状態に条件付ける。 (ii)被エミュレート処理命令に従って処理動作を実
行する。 (iii)処理動作時に例外条件が検出された場合、プ
ロセッサの厳密例外処理モデルに従って例外ハンドラを
呼び出し、未処理例外指示器を未処理例外指示状態に条
件付け、それによって、この例外条件が、後続の被エミ
ュレートプログラム命令に対する処理動作時に処理され
るようにする。
【0010】厳密例外処理プロセッサが被エミュレート
・プログラムの少なくともいくつかの命令に関連してこ
れらの動作を実行できるようにする命令を、制御サブシ
ステムが与えた場合、厳密例外処理プロセッサは、制御
サブシステムから与えられた命令によって、
・プログラムの少なくともいくつかの命令に関連してこ
れらの動作を実行できるようにする命令を、制御サブシ
ステムが与えた場合、厳密例外処理プロセッサは、制御
サブシステムから与えられた命令によって、
【0011】(a)ある被エミュレート・プログラム命
令に与えられる命令の処理時に例外条件が示されたと
き、厳密例外処理プロセッサの厳密例外処理モデルに従
って例外ハンドラを呼び出し、未処理の例外条件が存在
することを示すように未処理例外指示器を制御し(この
動作は、上記の(iii)によってイネーブルされ
る)、(b)後続の被エミュレート・プログラム命令の
処理時に未処理例外条件を処理し(この動作は、上記の
(i)によってイネーブルされる)、
令に与えられる命令の処理時に例外条件が示されたと
き、厳密例外処理プロセッサの厳密例外処理モデルに従
って例外ハンドラを呼び出し、未処理の例外条件が存在
することを示すように未処理例外指示器を制御し(この
動作は、上記の(iii)によってイネーブルされ
る)、(b)後続の被エミュレート・プログラム命令の
処理時に未処理例外条件を処理し(この動作は、上記の
(i)によってイネーブルされる)、
【0012】それによって、エミュレート中の遅延例外
処理プロセッサの遅延例外処理モデルをエミュレートす
ることができる。
処理プロセッサの遅延例外処理モデルをエミュレートす
ることができる。
【0013】他の態様によれば、本発明は、命令の処理
時に例外が検出された場合に例外条件が後続の命令に関
連して処理される遅延例外処理モデルに従って構築され
た遅延例外処理プロセッサによって処理されるように構
築された少なくとも1つの被エミュレート・プログラム
命令に応答して少なくとも1つの変換済み命令を生成
し、この変換済み命令が、ある命令に関連して例外条件
が検出された場合に例外条件がその命令に関連して処理
される厳密例外処理モデルに従って構築された厳密例外
処理プロセッサによって処理され、厳密例外処理プロセ
ッサが、未処理例外指示状態と非未処理例外指示状態と
を有する未処理例外指示器を含む変換システムを提供す
る。少なくとも1つの変換済み命令は、厳密例外処理プ
ロセッサを下記のように制御する。
時に例外が検出された場合に例外条件が後続の命令に関
連して処理される遅延例外処理モデルに従って構築され
た遅延例外処理プロセッサによって処理されるように構
築された少なくとも1つの被エミュレート・プログラム
命令に応答して少なくとも1つの変換済み命令を生成
し、この変換済み命令が、ある命令に関連して例外条件
が検出された場合に例外条件がその命令に関連して処理
される厳密例外処理モデルに従って構築された厳密例外
処理プロセッサによって処理され、厳密例外処理プロセ
ッサが、未処理例外指示状態と非未処理例外指示状態と
を有する未処理例外指示器を含む変換システムを提供す
る。少なくとも1つの変換済み命令は、厳密例外処理プ
ロセッサを下記のように制御する。
【0014】(i)未処理例外指示器が未処理例外指示
状態であるかどうかを判定し、そうである場合、未処理
の例外を処理する未処理例外処理ルーチンを呼び出す。 (ii)被エミュレート処理命令に従って処理動作を実
行する。 (iii)処理動作時に例外条件が検出された場合、厳
密例外処理プロセッサの厳密例外処理モデルに従って例
外ハンドラを呼び出し、未処理例外指示器を未処理例外
指示状態に条件付け、この例外条件が、後続の被エミュ
レートプログラム命令に対する処理動作時に処理される
ようにする。
状態であるかどうかを判定し、そうである場合、未処理
の例外を処理する未処理例外処理ルーチンを呼び出す。 (ii)被エミュレート処理命令に従って処理動作を実
行する。 (iii)処理動作時に例外条件が検出された場合、厳
密例外処理プロセッサの厳密例外処理モデルに従って例
外ハンドラを呼び出し、未処理例外指示器を未処理例外
指示状態に条件付け、この例外条件が、後続の被エミュ
レートプログラム命令に対する処理動作時に処理される
ようにする。
【0015】厳密例外処理プロセッサにそのような一連
の命令が与えられた場合、厳密例外処理プロセッサは、
(a)ある被エミュレート・プログラム命令に与えられ
る命令の処理時に例外条件が示されたとき、厳密例外処
理プロセッサの厳密例外処理モデルに従って例外ハンド
ラを呼び出し、未処理の例外条件が存在することを示す
ように未処理例外指示器を制御し(この動作は、上記の
(iii)によってイネーブルされる)、(b)後続の
被エミュレート・プログラム命令の処理時に未処理の例
外条件を処理し(この動作は、上記の(i)によってイ
ネーブルされる)、それによって、エミュレート中のプ
ロセッサの遅延例外処理モデルをエミュレートすること
ができる。
の命令が与えられた場合、厳密例外処理プロセッサは、
(a)ある被エミュレート・プログラム命令に与えられ
る命令の処理時に例外条件が示されたとき、厳密例外処
理プロセッサの厳密例外処理モデルに従って例外ハンド
ラを呼び出し、未処理の例外条件が存在することを示す
ように未処理例外指示器を制御し(この動作は、上記の
(iii)によってイネーブルされる)、(b)後続の
被エミュレート・プログラム命令の処理時に未処理の例
外条件を処理し(この動作は、上記の(i)によってイ
ネーブルされる)、それによって、エミュレート中のプ
ロセッサの遅延例外処理モデルをエミュレートすること
ができる。
【0016】本発明は、添付の特許請求の範囲に詳しく
記載されている。本発明の上記およびその他の利点は、
下記の説明を添付の図面と共に参照することによってよ
り良く理解されよう。
記載されている。本発明の上記およびその他の利点は、
下記の説明を添付の図面と共に参照することによってよ
り良く理解されよう。
【0017】
【発明の実施の形態】図1は、本発明によって構築され
たディジタル・コンピュータ・システム10の機能ブロ
ック図である。図1を参照する分かるように、ディジタ
ル・コンピュータ・システム10は、メモリ管理装置1
4を通じてメモリ・サブシステム12および全体的に参
照符号13で識別された1つまたは複数の入出力サブシ
ステムと通信するマイクロプロセッサ11を含む。マイ
クロプロセッサ11は、オペレーティング・システム
と、それぞれが命令を含む1つまたは複数のアプリケー
ション・プログラムとを含むプログラムをデータに従っ
て処理し、命令およびデータ(本明細書では、これらを
まとめて「情報」と呼ぶ)は、メモリ・サブシステム1
2に記憶される。通常、マイクロプロセッサ11は、命
令およびデータをメモリ・サブシステム12から検索し
て処理し、処理済みのデータをメモリ・サブシステム1
2に記憶する。メモリ・サブシステム12は、マイクロ
プロセッサ11によって処理すべき情報を記憶すること
ができ、かつマイクロプロセッサ11が処理済みデータ
を記憶することができるいくつかのアドレス可能な記憶
位置を含む。
たディジタル・コンピュータ・システム10の機能ブロ
ック図である。図1を参照する分かるように、ディジタ
ル・コンピュータ・システム10は、メモリ管理装置1
4を通じてメモリ・サブシステム12および全体的に参
照符号13で識別された1つまたは複数の入出力サブシ
ステムと通信するマイクロプロセッサ11を含む。マイ
クロプロセッサ11は、オペレーティング・システム
と、それぞれが命令を含む1つまたは複数のアプリケー
ション・プログラムとを含むプログラムをデータに従っ
て処理し、命令およびデータ(本明細書では、これらを
まとめて「情報」と呼ぶ)は、メモリ・サブシステム1
2に記憶される。通常、マイクロプロセッサ11は、命
令およびデータをメモリ・サブシステム12から検索し
て処理し、処理済みのデータをメモリ・サブシステム1
2に記憶する。メモリ・サブシステム12は、マイクロ
プロセッサ11によって処理すべき情報を記憶すること
ができ、かつマイクロプロセッサ11が処理済みデータ
を記憶することができるいくつかのアドレス可能な記憶
位置を含む。
【0018】ディジタル・コンピュータ・システム10
は、大容量記憶サブシステム、オペレータ入出力サブシ
ステム、ネットワーク・ポートなどを含め、いくつかの
様々なタイプの入出力サブシステム13を含むことがで
きる。大容量記憶サブシステムは一般に、マイクロプロ
セッサ11によって処理できる情報を長期的に記憶する
ことができる。大容量記憶サブシステムは、情報の記憶
または検索、あるいはその両方を行うことができるディ
スク・サブシステムまたはテープ・サブシステム、光学
ディスク記憶装置、CD−ROM装置などの装置を含む
ことができる。1つまたは複数の大容量記憶サブシステ
ムは、オペレータによって取り外し設置することができ
る取り外し可能な記憶媒体を使用することができ、この
記憶媒体によって、オペレータは、プログラムおよびデ
ータをディジタル・コンピュータ・システムにロードし
ディジタル・コンピュータ・システムから処理済みデー
タを得ることができる。マイクロプロセッサ11から与
えられる制御情報の制御下で、大容量記憶サブシステム
に記憶されている情報をメモリ・サブシステム12へ転
送し記憶することができる。情報がメモリ・サブシステ
ム12に記憶された後、マイクロプロセッサ11は、そ
の情報をメモリ・サブシステム12から検索し処理する
ことができる。処理済みデータが生成された後、マイク
ロプロセッサ11は、大容量記憶サブシステムが、処理
済みデータをメモリ・サブシステム12から検索し比較
的長期間にわたって記憶できるようにすることもでき
る。
は、大容量記憶サブシステム、オペレータ入出力サブシ
ステム、ネットワーク・ポートなどを含め、いくつかの
様々なタイプの入出力サブシステム13を含むことがで
きる。大容量記憶サブシステムは一般に、マイクロプロ
セッサ11によって処理できる情報を長期的に記憶する
ことができる。大容量記憶サブシステムは、情報の記憶
または検索、あるいはその両方を行うことができるディ
スク・サブシステムまたはテープ・サブシステム、光学
ディスク記憶装置、CD−ROM装置などの装置を含む
ことができる。1つまたは複数の大容量記憶サブシステ
ムは、オペレータによって取り外し設置することができ
る取り外し可能な記憶媒体を使用することができ、この
記憶媒体によって、オペレータは、プログラムおよびデ
ータをディジタル・コンピュータ・システムにロードし
ディジタル・コンピュータ・システムから処理済みデー
タを得ることができる。マイクロプロセッサ11から与
えられる制御情報の制御下で、大容量記憶サブシステム
に記憶されている情報をメモリ・サブシステム12へ転
送し記憶することができる。情報がメモリ・サブシステ
ム12に記憶された後、マイクロプロセッサ11は、そ
の情報をメモリ・サブシステム12から検索し処理する
ことができる。処理済みデータが生成された後、マイク
ロプロセッサ11は、大容量記憶サブシステムが、処理
済みデータをメモリ・サブシステム12から検索し比較
的長期間にわたって記憶できるようにすることもでき
る。
【0019】オペレータ入出力サブシステム13は、一
般に、ディジタル・コンピュータ・システム10のオペ
レータ・インタフェースを形成する。特に、オペレータ
入力サブシステムはたとえば、キーボードとマウス装置
とを含むことができ、オペレータはこれらの装置を使用
して、情報を対話によってディジタル・コンピュータ・
システム10に入力し処理することができる。また、オ
ペレータ入力サブシステムは、オペレータがディジタル
・コンピュータ・システム10を制御するための機構を
備えることができる。オペレータ出力サブシステムは、
ビデオ表示装置などの装置を含むことができ、ディジタ
ル・コンピュータ・システム10はこのような装置を介
してマイクロプロセッサ11の制御下で、処理結果をオ
ペレータに表示する。また、オペレータ用のハードコピ
ー出力を与えるためにプリンタを設けることができる。
般に、ディジタル・コンピュータ・システム10のオペ
レータ・インタフェースを形成する。特に、オペレータ
入力サブシステムはたとえば、キーボードとマウス装置
とを含むことができ、オペレータはこれらの装置を使用
して、情報を対話によってディジタル・コンピュータ・
システム10に入力し処理することができる。また、オ
ペレータ入力サブシステムは、オペレータがディジタル
・コンピュータ・システム10を制御するための機構を
備えることができる。オペレータ出力サブシステムは、
ビデオ表示装置などの装置を含むことができ、ディジタ
ル・コンピュータ・システム10はこのような装置を介
してマイクロプロセッサ11の制御下で、処理結果をオ
ペレータに表示する。また、オペレータ用のハードコピ
ー出力を与えるためにプリンタを設けることができる。
【0020】ネットワーク・ポートは、ディジタル・コ
ンピュータ・システム10を通信リンクに接続し、それ
によってコンピュータ・システム10をコンピュータ・
ネットワーク内で接続することができる。ネットワーク
・ポートによって、コンピュータ・システム10は、ネ
ットワーク(図示せず)内の他のコンピュータ・システ
ムおよび他の装置との間で情報(プログラム命令とデー
タの両方を含む)を送受することができる。たとえばク
ライアント・サーバ・パラダイムに従って構成された通
常のネットワークでは、ネットワーク内のある種のコン
ピュータ・システムがサーバとして指定され、サーバ
は、情報を他のクライアント・システムが処理できるよ
うに記憶し、それによってクライアント・コンピュータ
・システムは情報を共用することができる。特定のサー
バによって維持されている情報へのアクセスを必要とす
るクライアント・コンピュータ・システムは、そのサー
バでネットワークを介してそのクライアント・コンピュ
ータ・システムに情報をダウンロードすることができ
る。クライアント・コンピュータ・システムは、データ
を処理した後、処理済みのデータをサーバに返し記憶す
ることもできる。ネットワークは、(前述のサーバとク
ライアントとを含む)コンピュータ・システムだけでな
く、ネットワーク内で接続された様々なコンピュータ・
システム間で共用できる、たとえばプリンタおよびファ
クシミリ装置、ディジタル・オーディオ記憶・分配装置
またはディジタル・ビデオ記憶・分配装置などを含むこ
ともできる。ネットワーク内でコンピュータ・システム
を相互接続する通信リンクは従来どおり、ワイヤ、また
は光ファイバ、またはコンピュータ・システム間で信号
を送るためのその他の媒体を含め、好都合な情報転送媒
体を備えることができる。コンピュータ・システムは、
通信リンクを介して転送されるメッセージによってネッ
トワークを介して情報を転送し、各メッセージは、情報
と、メッセージを受け取る装置を識別する識別子とを含
む。
ンピュータ・システム10を通信リンクに接続し、それ
によってコンピュータ・システム10をコンピュータ・
ネットワーク内で接続することができる。ネットワーク
・ポートによって、コンピュータ・システム10は、ネ
ットワーク(図示せず)内の他のコンピュータ・システ
ムおよび他の装置との間で情報(プログラム命令とデー
タの両方を含む)を送受することができる。たとえばク
ライアント・サーバ・パラダイムに従って構成された通
常のネットワークでは、ネットワーク内のある種のコン
ピュータ・システムがサーバとして指定され、サーバ
は、情報を他のクライアント・システムが処理できるよ
うに記憶し、それによってクライアント・コンピュータ
・システムは情報を共用することができる。特定のサー
バによって維持されている情報へのアクセスを必要とす
るクライアント・コンピュータ・システムは、そのサー
バでネットワークを介してそのクライアント・コンピュ
ータ・システムに情報をダウンロードすることができ
る。クライアント・コンピュータ・システムは、データ
を処理した後、処理済みのデータをサーバに返し記憶す
ることもできる。ネットワークは、(前述のサーバとク
ライアントとを含む)コンピュータ・システムだけでな
く、ネットワーク内で接続された様々なコンピュータ・
システム間で共用できる、たとえばプリンタおよびファ
クシミリ装置、ディジタル・オーディオ記憶・分配装置
またはディジタル・ビデオ記憶・分配装置などを含むこ
ともできる。ネットワーク内でコンピュータ・システム
を相互接続する通信リンクは従来どおり、ワイヤ、また
は光ファイバ、またはコンピュータ・システム間で信号
を送るためのその他の媒体を含め、好都合な情報転送媒
体を備えることができる。コンピュータ・システムは、
通信リンクを介して転送されるメッセージによってネッ
トワークを介して情報を転送し、各メッセージは、情報
と、メッセージを受け取る装置を識別する識別子とを含
む。
【0021】従来どおり、各入出力サブシステム13は
通常、それぞれの入出力サブシステム13自体によって
実行される動作を制御しその動作状況を示すために使用
される制御情報、状況情報、その他の情報を記憶するレ
ジスタおよびその他のデータ記憶要素(図示せず)を含
む。マイクロプロセッサ11は、レジスタおよびその他
の記憶要素に情報を記憶し、それによってマイクロプロ
セッサ11自体がメモリ・システム12に情報を記憶す
る方法と同様な方法でそれぞれの入出力サブシステム1
3を制御することができる。同様に、マイクロプロセッ
サ11は、マイクロプロセッサ11自体がメモリ・シス
テム12から情報を記憶する方法と同様な方法で入出力
サブシステム13に含まれる情報を検索し、それぞれの
入出力サブシステム13の動作状況を確認することがで
きる。
通常、それぞれの入出力サブシステム13自体によって
実行される動作を制御しその動作状況を示すために使用
される制御情報、状況情報、その他の情報を記憶するレ
ジスタおよびその他のデータ記憶要素(図示せず)を含
む。マイクロプロセッサ11は、レジスタおよびその他
の記憶要素に情報を記憶し、それによってマイクロプロ
セッサ11自体がメモリ・システム12に情報を記憶す
る方法と同様な方法でそれぞれの入出力サブシステム1
3を制御することができる。同様に、マイクロプロセッ
サ11は、マイクロプロセッサ11自体がメモリ・シス
テム12から情報を記憶する方法と同様な方法で入出力
サブシステム13に含まれる情報を検索し、それぞれの
入出力サブシステム13の動作状況を確認することがで
きる。
【0022】メモリ管理装置14は、いくつかの動作を
実行する。特に、メモリ管理装置14は通常、メモリ・
キャッシュを含み、このメモリ・キャッシュは、マイク
ロプロセッサ11から要求された情報をメモリ・サブシ
ステム12からキャッシュする。また、従来どおり、マ
イクロプロセッサ11は、たとえばメモリ・サブシステ
ム12から検索すべき情報を要求し、あるいは、たとえ
ばメモリ・サブシステム12に記憶すべき処理済みデー
タを与えるとき、メモリ管理装置14に仮想アドレス空
間中のアドレスを与える。マイクロプロセッサ11によ
って処理される様々なアプリケーション・プログラム
は、それぞれの仮想アドレス空間を備えることができ
る。仮想アドレス空間は「ページ」に分割され、各ペー
ジは、選択された数の仮想アドレス可能記憶位置を備
え、各仮想アドレス可能記憶位置に情報が記憶される。
アプリケーション・プログラムの仮想アドレス空間のペ
ージは通常、大容量記憶サブシステム上に記憶され、マ
イクロプロセッサ11によって、処理時に必要に応じて
個別のページをメモリ・サブシステム12にコピーする
ことができる。処理時に修正されたページの場合、マイ
クロプロセッサ11は、そのページを大容量記憶サブシ
ステムにコピーし長期的に記憶できるようにすることが
できる。
実行する。特に、メモリ管理装置14は通常、メモリ・
キャッシュを含み、このメモリ・キャッシュは、マイク
ロプロセッサ11から要求された情報をメモリ・サブシ
ステム12からキャッシュする。また、従来どおり、マ
イクロプロセッサ11は、たとえばメモリ・サブシステ
ム12から検索すべき情報を要求し、あるいは、たとえ
ばメモリ・サブシステム12に記憶すべき処理済みデー
タを与えるとき、メモリ管理装置14に仮想アドレス空
間中のアドレスを与える。マイクロプロセッサ11によ
って処理される様々なアプリケーション・プログラム
は、それぞれの仮想アドレス空間を備えることができ
る。仮想アドレス空間は「ページ」に分割され、各ペー
ジは、選択された数の仮想アドレス可能記憶位置を備
え、各仮想アドレス可能記憶位置に情報が記憶される。
アプリケーション・プログラムの仮想アドレス空間のペ
ージは通常、大容量記憶サブシステム上に記憶され、マ
イクロプロセッサ11によって、処理時に必要に応じて
個別のページをメモリ・サブシステム12にコピーする
ことができる。処理時に修正されたページの場合、マイ
クロプロセッサ11は、そのページを大容量記憶サブシ
ステムにコピーし長期的に記憶できるようにすることが
できる。
【0023】仮想アドレス空間のそれぞれのページは、
物理アドレスで識別されるメモリ・サブシステム12の
物理位置にコンパクトに記憶することができ、メモリ管
理装置14は、マイクロプロセッサ11からの要求に応
答して特定の仮想アドレス空間位置に関連するアクセス
動作(すなわち、特定の物理位置からの情報の検索また
は特定の物理位置への情報の記憶)を実行する際、この
仮想アドレスを変換し、メモリ・サブシステム12に関
連するアクセス動作を実行する際に使用できる物理アド
レスを得る。また、メモリ管理装置14は、ページがメ
モリ・サブシステム12内にあるかどうか、アプリケー
ション・プログラムがページにアクセスする(すなわ
ち、そのページからデータを読み取り、あるいはそのペ
ージにデータを書き込む)許可を有するかどうか、要求
されたページが仮想空間において有効なページであるか
どうかなどを判定するための検査を含め、いくつかの検
査動作を実行することができる。メモリ管理装置14
は、検査動作において否定的な判定を下した場合、すな
わち、たとえばページがメモリ・サブシステム12内に
なく、あるいはアプリケーション・プログラムが適当な
アクセス許可を有さず、あるいは仮想アドレス空間ペー
ジの要求されたページが、アプリケーション・プログラ
ムの仮想アドレス空間中で有効なページではないと判定
した場合、ACCESS FAULT指示を生成するこ
とができる。マイクロプロセッサ11は、この指示を受
け取り、選択された障害処理動作を実行する際に使用す
ることができる。
物理アドレスで識別されるメモリ・サブシステム12の
物理位置にコンパクトに記憶することができ、メモリ管
理装置14は、マイクロプロセッサ11からの要求に応
答して特定の仮想アドレス空間位置に関連するアクセス
動作(すなわち、特定の物理位置からの情報の検索また
は特定の物理位置への情報の記憶)を実行する際、この
仮想アドレスを変換し、メモリ・サブシステム12に関
連するアクセス動作を実行する際に使用できる物理アド
レスを得る。また、メモリ管理装置14は、ページがメ
モリ・サブシステム12内にあるかどうか、アプリケー
ション・プログラムがページにアクセスする(すなわ
ち、そのページからデータを読み取り、あるいはそのペ
ージにデータを書き込む)許可を有するかどうか、要求
されたページが仮想空間において有効なページであるか
どうかなどを判定するための検査を含め、いくつかの検
査動作を実行することができる。メモリ管理装置14
は、検査動作において否定的な判定を下した場合、すな
わち、たとえばページがメモリ・サブシステム12内に
なく、あるいはアプリケーション・プログラムが適当な
アクセス許可を有さず、あるいは仮想アドレス空間ペー
ジの要求されたページが、アプリケーション・プログラ
ムの仮想アドレス空間中で有効なページではないと判定
した場合、ACCESS FAULT指示を生成するこ
とができる。マイクロプロセッサ11は、この指示を受
け取り、選択された障害処理動作を実行する際に使用す
ることができる。
【0024】一実施形態では、システム10において有
用なマイクロプロセッサ11は、SPARCアーキテク
チャ・マニュアル・バージョン9に記載されたSPAR
Cバージョン9アーキテクチャに従って構築されたマイ
クロプロセッサを備える。マイクロプロセッサ11は一
般に、レジスタ・セット20と、1つまたは複数の機能
装置21と、バス・インタフェース22と、制御回路2
3とを含むいくつかの要素を含む。一般に、バス・イン
タフェース22は、制御回路23の制御下で、メモリ管
理装置14と協働し、メモリ・サブシステム12、また
は特定の入出力サブシステム13によって維持されてい
るデータ記憶要素から命令およびデータを検索して処理
し、検索済みデータをレジスタ・セット20内のレジス
タにロードする。また、機能装置21は、制御回路23
の制御下で、制御回路23によってレジスタ・セット2
0から機能単位21へ転送することができるデータを用
いて論理演算、整数演算、浮動小数点演算と、その他の
処理動作を実行し、処理済みデータを生成する。処理済
みデータは、レジスタ・セット20へ転送され記憶され
る。制御回路23によって、バス・インタフェース22
は、やはりメモリ管理装置14と協働し、処理済みデー
タをレジスタ・セット20からメモリ・サブシステム1
2、または特定の入出力サブシステム13によって維持
されているデータ記憶要素へ転送し記憶することもでき
る。
用なマイクロプロセッサ11は、SPARCアーキテク
チャ・マニュアル・バージョン9に記載されたSPAR
Cバージョン9アーキテクチャに従って構築されたマイ
クロプロセッサを備える。マイクロプロセッサ11は一
般に、レジスタ・セット20と、1つまたは複数の機能
装置21と、バス・インタフェース22と、制御回路2
3とを含むいくつかの要素を含む。一般に、バス・イン
タフェース22は、制御回路23の制御下で、メモリ管
理装置14と協働し、メモリ・サブシステム12、また
は特定の入出力サブシステム13によって維持されてい
るデータ記憶要素から命令およびデータを検索して処理
し、検索済みデータをレジスタ・セット20内のレジス
タにロードする。また、機能装置21は、制御回路23
の制御下で、制御回路23によってレジスタ・セット2
0から機能単位21へ転送することができるデータを用
いて論理演算、整数演算、浮動小数点演算と、その他の
処理動作を実行し、処理済みデータを生成する。処理済
みデータは、レジスタ・セット20へ転送され記憶され
る。制御回路23によって、バス・インタフェース22
は、やはりメモリ管理装置14と協働し、処理済みデー
タをレジスタ・セット20からメモリ・サブシステム1
2、または特定の入出力サブシステム13によって維持
されているデータ記憶要素へ転送し記憶することもでき
る。
【0025】制御回路23の制御下でマイクロプロセッ
サ11によって実行される動作は、プログラム命令によ
って制御される。プログラム命令は、レジスタ・セット
20へのデータのロード、機能装置21によって実行さ
れる動作、レジスタ20からメモリ・サブシステム12
または入出力装置13へのデータの転送および記憶を制
御する。機能装置21は、命令の処理時に、処理すべき
特定のデータの値および実行すべき特定の動作に応じ
て、次の処理を必要とする処理時に例外条件に出会った
ことを示すEXC COND例外条件指示を生成するこ
とができる。当技術分野では、たとえば、整数演算また
は浮動小数点演算時の零結果またはアンダーフロー結果
またはオーバーフロー結果の生成、浮動小数点演算時の
非正規化結果の生成などを含め、いくつかの例外条件が
知られている。EXC COND例外条件指示が生成さ
れたことに応答して、制御回路23は、例外条件の性質
および例外条件に応答して実行すべき動作を判定する例
外ハンドラを呼び出す。
サ11によって実行される動作は、プログラム命令によ
って制御される。プログラム命令は、レジスタ・セット
20へのデータのロード、機能装置21によって実行さ
れる動作、レジスタ20からメモリ・サブシステム12
または入出力装置13へのデータの転送および記憶を制
御する。機能装置21は、命令の処理時に、処理すべき
特定のデータの値および実行すべき特定の動作に応じ
て、次の処理を必要とする処理時に例外条件に出会った
ことを示すEXC COND例外条件指示を生成するこ
とができる。当技術分野では、たとえば、整数演算また
は浮動小数点演算時の零結果またはアンダーフロー結果
またはオーバーフロー結果の生成、浮動小数点演算時の
非正規化結果の生成などを含め、いくつかの例外条件が
知られている。EXC COND例外条件指示が生成さ
れたことに応答して、制御回路23は、例外条件の性質
および例外条件に応答して実行すべき動作を判定する例
外ハンドラを呼び出す。
【0026】1つの特定の実施形態では、マイクロプロ
セッサ11、特に制御回路23は、機能装置21からE
XC COND例外条件指示を受け取り、EXC CO
ND例外条件指示が生成された命令に対する動作を制御
回路23自体が完了する間あるいは完了した直後で、か
つプログラム内の次の命令に関連する処理動作を開始す
る前に、ハンドラを呼び出しその指示を処理する。した
がって、マイクロプロセッサ11は、「厳密」例外処理
モデルを備える。
セッサ11、特に制御回路23は、機能装置21からE
XC COND例外条件指示を受け取り、EXC CO
ND例外条件指示が生成された命令に対する動作を制御
回路23自体が完了する間あるいは完了した直後で、か
つプログラム内の次の命令に関連する処理動作を開始す
る前に、ハンドラを呼び出しその指示を処理する。した
がって、マイクロプロセッサ11は、「厳密」例外処理
モデルを備える。
【0027】この同じ実施形態では、マイクロプロセッ
サ11は、ディジタル・コンピュータ・システム10内
で、「遅延」例外処理モデルを備えるマイクロプロセッ
サのエミュレーションに関連して使用される。そのよう
な遅延例外処理モデルを備える1つのマイクロプロセッ
サ・ファミリーはたとえば、Intel Corpor
ationのx86ファミリー(現在、8086マイク
ロプロセッサ・ラインと、8088マイクロプロセッサ
・ラインと、80286マイクロプロセッサ・ライン
と、80386マイクロプロセッサ・ラインと、804
86マイクロプロセッサ・ラインと、「Pentium
TM」マイクロプロセッサ・ラインとを含む)。遅延例外
処理モデルを備えるマイクロプロセッサは、EXC C
OND例外条件が生成された命令に対する処理時には、
少なくとも選択されたタイプの例外条件に関して、EX
C COND例外条件指示が生成されたことを記録し、
選択された後続の命令の処理時には、未処理例外条件、
すなわち前の命令に関して示された例外条件を処理する
例外ハンドラを呼び出す。前述のIntel x86マ
イクロプロセッサ・ファミリーでは、遅延例外処理モデ
ルは、特定のタイプの命令、特に浮動小数点演算に使用
される。したがって、浮動小数点命令の処理時にx86
ファミリーのマイクロプロセッサによってEXC CO
ND例外条件指示が生成されると、このマイクロプロセ
ッサは、この例外条件に関係する情報を含む例外ポイン
タを記憶し、次の浮動小数点命令の処理時に例外ハンド
ラを呼び出す。例外ハンドラは、例外条件の処理時に、
前に保存された例外ポインタを使用して、処理すべき特
定の例外条件を識別する。
サ11は、ディジタル・コンピュータ・システム10内
で、「遅延」例外処理モデルを備えるマイクロプロセッ
サのエミュレーションに関連して使用される。そのよう
な遅延例外処理モデルを備える1つのマイクロプロセッ
サ・ファミリーはたとえば、Intel Corpor
ationのx86ファミリー(現在、8086マイク
ロプロセッサ・ラインと、8088マイクロプロセッサ
・ラインと、80286マイクロプロセッサ・ライン
と、80386マイクロプロセッサ・ラインと、804
86マイクロプロセッサ・ラインと、「Pentium
TM」マイクロプロセッサ・ラインとを含む)。遅延例外
処理モデルを備えるマイクロプロセッサは、EXC C
OND例外条件が生成された命令に対する処理時には、
少なくとも選択されたタイプの例外条件に関して、EX
C COND例外条件指示が生成されたことを記録し、
選択された後続の命令の処理時には、未処理例外条件、
すなわち前の命令に関して示された例外条件を処理する
例外ハンドラを呼び出す。前述のIntel x86マ
イクロプロセッサ・ファミリーでは、遅延例外処理モデ
ルは、特定のタイプの命令、特に浮動小数点演算に使用
される。したがって、浮動小数点命令の処理時にx86
ファミリーのマイクロプロセッサによってEXC CO
ND例外条件指示が生成されると、このマイクロプロセ
ッサは、この例外条件に関係する情報を含む例外ポイン
タを記憶し、次の浮動小数点命令の処理時に例外ハンド
ラを呼び出す。例外ハンドラは、例外条件の処理時に、
前に保存された例外ポインタを使用して、処理すべき特
定の例外条件を識別する。
【0028】本発明は、厳密例外処理モデルを備えるマ
イクロプロセッサ11などのマイクロプロセッサが、遅
延例外処理モデルを備えるIntel x86ファミリ
ーのマイクロプロセッサなどのマイクロプロセッサをエ
ミュレートすることができる構成を提供する。厳密例外
処理モデルを備えるマイクロプロセッサ11を本明細書
では「ホスト」マイクロプロセッサ11と呼び、遅延例
外処理モデルを備えるマイクロプロセッサを本明細書で
は「被エミュレート」マイクロプロセッサと呼ぶ。具体
的には、本発明は、ホスト・マイクロプロセッサ11
が、変換プログラム26によって生成された「変換済
み」プログラム25を処理するのと同時に、被エミュレ
ート・マイクロプロセッサ(図示せず)向けに書かれた
「最初の」プログラム27を処理する際に被エミュレー
ト・マイクロプロセッサによって実行される動作をエミ
ュレートできるようにし、特に、ホスト・プロセッサ1
1が、被エミュレート・マイクロプロセッサが浮動小数
点例外条件に関連する処理を行う方法をエミュレートで
きるようにする構成を提供する。
イクロプロセッサ11などのマイクロプロセッサが、遅
延例外処理モデルを備えるIntel x86ファミリ
ーのマイクロプロセッサなどのマイクロプロセッサをエ
ミュレートすることができる構成を提供する。厳密例外
処理モデルを備えるマイクロプロセッサ11を本明細書
では「ホスト」マイクロプロセッサ11と呼び、遅延例
外処理モデルを備えるマイクロプロセッサを本明細書で
は「被エミュレート」マイクロプロセッサと呼ぶ。具体
的には、本発明は、ホスト・マイクロプロセッサ11
が、変換プログラム26によって生成された「変換済
み」プログラム25を処理するのと同時に、被エミュレ
ート・マイクロプロセッサ(図示せず)向けに書かれた
「最初の」プログラム27を処理する際に被エミュレー
ト・マイクロプロセッサによって実行される動作をエミ
ュレートできるようにし、特に、ホスト・プロセッサ1
1が、被エミュレート・マイクロプロセッサが浮動小数
点例外条件に関連する処理を行う方法をエミュレートで
きるようにする構成を提供する。
【0029】この動作では、ホスト・マイクロプロセッ
サ11は、最初のプログラム27の浮動小数点命令に基
づく変換済みプログラム25の命令の処理時にEXC
COND例外条件指示が生成されたことに応答して、例
外条件指示が生成されたことの指示を有効に記録し、そ
れによって、未処理浮動小数点例外条件が存在すること
を示す。マイクロプロセッサ11は、最初のプログラム
27の後続の浮動小数点命令がもしあれば、その浮動小
数点命令に関して生成された変換済みプログラムの命令
または命令群を処理する間に、浮動小数点例外ハンドラ
を呼び出し未処理の浮動小数点例外を処理することがで
きる。
サ11は、最初のプログラム27の浮動小数点命令に基
づく変換済みプログラム25の命令の処理時にEXC
COND例外条件指示が生成されたことに応答して、例
外条件指示が生成されたことの指示を有効に記録し、そ
れによって、未処理浮動小数点例外条件が存在すること
を示す。マイクロプロセッサ11は、最初のプログラム
27の後続の浮動小数点命令がもしあれば、その浮動小
数点命令に関して生成された変換済みプログラムの命令
または命令群を処理する間に、浮動小数点例外ハンドラ
を呼び出し未処理の浮動小数点例外を処理することがで
きる。
【0030】これらの動作は、変換済みプログラム25
によってイネーブルされ、そのため、最初のプログラム
27の各命令をマイクロプロセッサ11がエミュレート
できるようにするには、変換プログラムが、下記のこと
を行う1つまたは複数の命令を与えなければならない。
によってイネーブルされ、そのため、最初のプログラム
27の各命令をマイクロプロセッサ11がエミュレート
できるようにするには、変換プログラムが、下記のこと
を行う1つまたは複数の命令を与えなければならない。
【0031】(i)ホスト・マイクロプロセッサ11
が、未処理浮動小数点条件が存在するかどうかを判定
し、すなわち、前の浮動小数点命令に関して浮動小数点
例外条件が記録されているかどうかを判定できるように
し、記録されている場合、ホスト・マイクロプロセッサ
11が未処理の浮動小数点例外を処理できるようにす
る。これらの動作は、最初のプログラム27の浮動小数
点に関して変換プログラム26によって変換済みプログ
ラム25の一部として、あるいはホスト・マイクロプロ
セッサ11がそのような処理時に呼び出すことができる
例外ハンドラの一部として与えられる1つまたは一連の
命令によって、全体的にイネーブルすることも、あるい
は部分的にイネーブルすることもできる。 (ii)ホスト・マイクロプロセッサ11が最初のプロ
グラム27からの浮動小数点に必要な動作を実行できる
ようにする。 (iii)上記の(ii)の処理時に例外条件指示が生
成された場合に、マイクロプロセッサ11が、その表示
を記録し、それによって未処理浮動小数点例外条件が存
在することを示すことができるようにする。また、これ
らの命令によって、マイクロプロセッサ11は、未処理
浮動小数点例外条件を処理するのに必要な例外情報(前
述の例外ポインタ情報など)を記憶することができる。
ホスト・マイクロプロセッサ11は、厳密例外処理モデ
ルに従って(iii)の動作を実行する。その場合、動
作は、少なくとも部分的には、マイクロプロセッサ11
に与えられる例外ハンドラによってイネーブルすること
ができる。
が、未処理浮動小数点条件が存在するかどうかを判定
し、すなわち、前の浮動小数点命令に関して浮動小数点
例外条件が記録されているかどうかを判定できるように
し、記録されている場合、ホスト・マイクロプロセッサ
11が未処理の浮動小数点例外を処理できるようにす
る。これらの動作は、最初のプログラム27の浮動小数
点に関して変換プログラム26によって変換済みプログ
ラム25の一部として、あるいはホスト・マイクロプロ
セッサ11がそのような処理時に呼び出すことができる
例外ハンドラの一部として与えられる1つまたは一連の
命令によって、全体的にイネーブルすることも、あるい
は部分的にイネーブルすることもできる。 (ii)ホスト・マイクロプロセッサ11が最初のプロ
グラム27からの浮動小数点に必要な動作を実行できる
ようにする。 (iii)上記の(ii)の処理時に例外条件指示が生
成された場合に、マイクロプロセッサ11が、その表示
を記録し、それによって未処理浮動小数点例外条件が存
在することを示すことができるようにする。また、これ
らの命令によって、マイクロプロセッサ11は、未処理
浮動小数点例外条件を処理するのに必要な例外情報(前
述の例外ポインタ情報など)を記憶することができる。
ホスト・マイクロプロセッサ11は、厳密例外処理モデ
ルに従って(iii)の動作を実行する。その場合、動
作は、少なくとも部分的には、マイクロプロセッサ11
に与えられる例外ハンドラによってイネーブルすること
ができる。
【0032】したがって、変換プログラム26によって
生成されるような変換済みプログラム25が、ホスト・
マイクロプロセッサ11が、(a)ホスト・マイクロプ
ロセッサの厳密例外モデルにしたがって、最初のプログ
ラムに関する1つの浮動小数点命令の処理動作時に例外
条件指示が生成されたことを記録し、それによって未処
理浮動小数点例外条件の存在を示し(この動作は、上記
の(iii)で説明した命令または一連の命令によって
イネーブルされる)、(b)最初のプログラムに関する
後続の浮動小数点命令の処理動作時に未処理例外条件を
処理し(この動作は、上記の(i)で説明した命令また
は一連の命令によってイネーブルされる)、それによっ
て、エミュレート中のマイクロプロセッサの遅延例外処
理モデルをエミュレートすることができるようにする命
令を与えることが理解されよう。
生成されるような変換済みプログラム25が、ホスト・
マイクロプロセッサ11が、(a)ホスト・マイクロプ
ロセッサの厳密例外モデルにしたがって、最初のプログ
ラムに関する1つの浮動小数点命令の処理動作時に例外
条件指示が生成されたことを記録し、それによって未処
理浮動小数点例外条件の存在を示し(この動作は、上記
の(iii)で説明した命令または一連の命令によって
イネーブルされる)、(b)最初のプログラムに関する
後続の浮動小数点命令の処理動作時に未処理例外条件を
処理し(この動作は、上記の(i)で説明した命令また
は一連の命令によってイネーブルされる)、それによっ
て、エミュレート中のマイクロプロセッサの遅延例外処
理モデルをエミュレートすることができるようにする命
令を与えることが理解されよう。
【0033】変換済みプログラム25に関連してホスト
・マイクロプロセッサ11によって実行される動作につ
いて、図1に示したブロック図と、変換プログラム26
に関連してマイクロプロセッサ11によって実行される
動作を理解するうえで有用な流れ図を含む図2と、それ
ぞれ、マイクロプロセッサ11による処理時に未処理浮
動小数点例外条件を示すための特定の機構を示す、本発
明の2つの実施形態を理解するうえで有用なフローチャ
ートを含む図3及び図4に関連して説明する。
・マイクロプロセッサ11によって実行される動作につ
いて、図1に示したブロック図と、変換プログラム26
に関連してマイクロプロセッサ11によって実行される
動作を理解するうえで有用な流れ図を含む図2と、それ
ぞれ、マイクロプロセッサ11による処理時に未処理浮
動小数点例外条件を示すための特定の機構を示す、本発
明の2つの実施形態を理解するうえで有用なフローチャ
ートを含む図3及び図4に関連して説明する。
【0034】引き続き図1を参照すると分かるように、
ホストマイクロプロセッサ11は、被エミュレート・マ
イクロプロセッサ・レジスタ・セット30を維持する。
被エミュレート・マイクロプロセッサ・レジスタ・セッ
ト30は一般に、被エミュレート・マイクロプロセッサ
に存在し、被エミュレート・マイクロプロセッサ用のア
プリケーション・プログラムまたは被エミュレート・マ
イクロプロセッサ用のオペレーティング・システムから
アクセスすることができるレジスタを含む。被エミュレ
ート・マイクロプロセッサ・レジスタ・セット30内の
レジスタはたとえば、被エミュレート・マイクロプロセ
ッサの汎用レジスタ・セット31と、前述の例外ハンド
ラの処理に関連して使用すべき例外ポインタを記憶する
例外ポインタ・ストア32とを含み、被エミュレート・
マイクロプロセッサの制御・状況レジスタ33を含むこ
ともできる。ホスト・マイクロプロセッサ11は、被エ
ミュレート・マイクロプロセッサ・レジスタ・セット3
0をそのメモリ・サブシステム12またはそれ自体のレ
ジスタ・セット20に維持することができる。
ホストマイクロプロセッサ11は、被エミュレート・マ
イクロプロセッサ・レジスタ・セット30を維持する。
被エミュレート・マイクロプロセッサ・レジスタ・セッ
ト30は一般に、被エミュレート・マイクロプロセッサ
に存在し、被エミュレート・マイクロプロセッサ用のア
プリケーション・プログラムまたは被エミュレート・マ
イクロプロセッサ用のオペレーティング・システムから
アクセスすることができるレジスタを含む。被エミュレ
ート・マイクロプロセッサ・レジスタ・セット30内の
レジスタはたとえば、被エミュレート・マイクロプロセ
ッサの汎用レジスタ・セット31と、前述の例外ハンド
ラの処理に関連して使用すべき例外ポインタを記憶する
例外ポインタ・ストア32とを含み、被エミュレート・
マイクロプロセッサの制御・状況レジスタ33を含むこ
ともできる。ホスト・マイクロプロセッサ11は、被エ
ミュレート・マイクロプロセッサ・レジスタ・セット3
0をそのメモリ・サブシステム12またはそれ自体のレ
ジスタ・セット20に維持することができる。
【0035】また、下記で図3のフローチャートに関連
して説明する本発明の実施形態によれば、ホスト・マイ
クロプロセッサ11は、未処理障害条件が存在すること
を示すために使用される浮動小数点例外フラグ34を維
持する。図1で、浮動小数点例外フラグ34は、ホスト
・マイクロプロセッサ11の一部を構成するものとして
示されているが、たとえば被エミュレート・マイクロプ
ロセッサ・レジスタ・セット30内の被エミュレート・
レジスタなど、システム10内の他の場所に維持される
要素で構成できることが理解されよう。一般に、ホスト
・プロセッサ11は、ある浮動小数点命令の処理時に機
能装置21によってEXC COND例外条件指示が生
成されたことに応答して、浮動小数点例外フラグ34の
セッティングをイネーブルし、それによって未処理浮動
小数点例外条件の存在を示し、かつ後で未処理浮動小数
点例外条件の処理時に使用すべき情報の保存をイネーブ
ルする。保存すべき情報はたとえば、被エミュレート・
マイクロプロセッサ・レジスタ・セット30内の例外ポ
インタ・ストア32にロードすることができる。前述の
ように、ホスト・マイクロプロセッサ11は、「厳密」
例外処理モデルに従って構築され、したがって浮動小数
点例外フラグ34をセットし、情報を後で使用できるよ
うに保存する場合には、EXC COND例外条件指示
が生成されることに応答してホスト・マイクロプロセッ
サの「厳密」例外ハンドラによって動作がイネーブルさ
れる。
して説明する本発明の実施形態によれば、ホスト・マイ
クロプロセッサ11は、未処理障害条件が存在すること
を示すために使用される浮動小数点例外フラグ34を維
持する。図1で、浮動小数点例外フラグ34は、ホスト
・マイクロプロセッサ11の一部を構成するものとして
示されているが、たとえば被エミュレート・マイクロプ
ロセッサ・レジスタ・セット30内の被エミュレート・
レジスタなど、システム10内の他の場所に維持される
要素で構成できることが理解されよう。一般に、ホスト
・プロセッサ11は、ある浮動小数点命令の処理時に機
能装置21によってEXC COND例外条件指示が生
成されたことに応答して、浮動小数点例外フラグ34の
セッティングをイネーブルし、それによって未処理浮動
小数点例外条件の存在を示し、かつ後で未処理浮動小数
点例外条件の処理時に使用すべき情報の保存をイネーブ
ルする。保存すべき情報はたとえば、被エミュレート・
マイクロプロセッサ・レジスタ・セット30内の例外ポ
インタ・ストア32にロードすることができる。前述の
ように、ホスト・マイクロプロセッサ11は、「厳密」
例外処理モデルに従って構築され、したがって浮動小数
点例外フラグ34をセットし、情報を後で使用できるよ
うに保存する場合には、EXC COND例外条件指示
が生成されることに応答してホスト・マイクロプロセッ
サの「厳密」例外ハンドラによって動作がイネーブルさ
れる。
【0036】ホスト・マイクロプロセッサ11は、浮動
小数点例外フラグ34をセットし、例外条件を保存した
後、変換プログラム26が最初のプログラム27の次の
命令のために生成できるようにする、変換済みプログラ
ム25の1つの命令または一連の命令の処理を開始す
る。ホスト・マイクロプロセッサ11は、変換済みプロ
グラム25の各命令または一連の命令の始めに、最初の
プログラム27の各浮動小数点命令のエミュレーション
のために、未処理浮動小数点条件が存在するかどうかを
浮動小数点例外フラグ34の条件から判定し、それによ
って前の浮動小数点命令に関して例外条件指示が生成さ
れたかどうかを判定する。未処理浮動小数点例外条件が
存在する場合、変換済みプログラム・シーケンスは、マ
イクロプロセッサ11が未処理浮動小数点例外条件を処
理するルーチンを呼び出すことができるようにし、その
後、最初のプログラムの現浮動小数点命令の処理動作に
進む。したがって、変換済みプログラムは、ホスト・マ
イクロプロセッサ11が例外条件を後で処理できるよう
にする。これは、被エミュレート・マイクロプロセッサ
11が例外条件を処理する方法に類似している。
小数点例外フラグ34をセットし、例外条件を保存した
後、変換プログラム26が最初のプログラム27の次の
命令のために生成できるようにする、変換済みプログラ
ム25の1つの命令または一連の命令の処理を開始す
る。ホスト・マイクロプロセッサ11は、変換済みプロ
グラム25の各命令または一連の命令の始めに、最初の
プログラム27の各浮動小数点命令のエミュレーション
のために、未処理浮動小数点条件が存在するかどうかを
浮動小数点例外フラグ34の条件から判定し、それによ
って前の浮動小数点命令に関して例外条件指示が生成さ
れたかどうかを判定する。未処理浮動小数点例外条件が
存在する場合、変換済みプログラム・シーケンスは、マ
イクロプロセッサ11が未処理浮動小数点例外条件を処
理するルーチンを呼び出すことができるようにし、その
後、最初のプログラムの現浮動小数点命令の処理動作に
進む。したがって、変換済みプログラムは、ホスト・マ
イクロプロセッサ11が例外条件を後で処理できるよう
にする。これは、被エミュレート・マイクロプロセッサ
11が例外条件を処理する方法に類似している。
【0037】具体的には、ホスト・マイクロプロセッサ
11は、浮動小数点命令を実行する動作の始めに、浮動
小数点例外フラグ34がセットされていると判定した場
合、前に例外ポインタ・ストア32に保存された例外ポ
インタが表す浮動小数点例外条件を処理するハンドラを
呼び出す。この点で呼び出されるハンドラは、通常はホ
スト・マイクロプロセッサ11によってエミュレートす
ることができる被エミュレート・マイクロプロセッサに
よって処理される浮動小数点例外ハンドラを構成するこ
とができる。別法として、ハンドラは、前に例外ポイン
タ・ストア32に保存された例外ポインタが示すタイプ
の例外条件を処理するためにホスト・マイクロプロセッ
サから呼び出されるルーチンを構成することができる。
いずれの場合も、浮動小数点例外ハンドラが処理された
後、ホスト・マイクロプロセッサ11は通常、浮動小数
点命令(すなわち、EXC COND例外条件指示が生
成された浮動小数点命令の次の浮動小数点命令)が必要
とする動作をイネーブルする。
11は、浮動小数点命令を実行する動作の始めに、浮動
小数点例外フラグ34がセットされていると判定した場
合、前に例外ポインタ・ストア32に保存された例外ポ
インタが表す浮動小数点例外条件を処理するハンドラを
呼び出す。この点で呼び出されるハンドラは、通常はホ
スト・マイクロプロセッサ11によってエミュレートす
ることができる被エミュレート・マイクロプロセッサに
よって処理される浮動小数点例外ハンドラを構成するこ
とができる。別法として、ハンドラは、前に例外ポイン
タ・ストア32に保存された例外ポインタが示すタイプ
の例外条件を処理するためにホスト・マイクロプロセッ
サから呼び出されるルーチンを構成することができる。
いずれの場合も、浮動小数点例外ハンドラが処理された
後、ホスト・マイクロプロセッサ11は通常、浮動小数
点命令(すなわち、EXC COND例外条件指示が生
成された浮動小数点命令の次の浮動小数点命令)が必要
とする動作をイネーブルする。
【0038】一方、ホスト・マイクロプロセッサ11
が、浮動小数点命令を実行する動作の始めに、浮動小数
点例外フラグ34がセットされていないと判定した場
合、前の浮動小数点例外命令に関してEXC COND
例外条件指示は生成されていない。この場合、ホスト・
マイクロプロセッサ11は浮動小数点例外ハンドラをバ
イパスし、直接、浮動小数点命令が必要とする動作に進
む。したがって、ホスト・マイクロプロセッサ11は、
厳密処理モデルを備えており、遅延例外処理モデル、す
なわちホスト・マイクロプロセッサ11によってエミュ
レートされている被エミュレート・マイクロプロセッサ
の特性に従って、特定の浮動小数点例外命令に対して指
示されている浮動小数点例外を次の浮動小数点例外命令
の処理の始めに処理する。前の浮動小数点命令に関する
未処理浮動小数点例外条件が存在することは、浮動小数
点例外フラグ34の条件で指示される。
が、浮動小数点命令を実行する動作の始めに、浮動小数
点例外フラグ34がセットされていないと判定した場
合、前の浮動小数点例外命令に関してEXC COND
例外条件指示は生成されていない。この場合、ホスト・
マイクロプロセッサ11は浮動小数点例外ハンドラをバ
イパスし、直接、浮動小数点命令が必要とする動作に進
む。したがって、ホスト・マイクロプロセッサ11は、
厳密処理モデルを備えており、遅延例外処理モデル、す
なわちホスト・マイクロプロセッサ11によってエミュ
レートされている被エミュレート・マイクロプロセッサ
の特性に従って、特定の浮動小数点例外命令に対して指
示されている浮動小数点例外を次の浮動小数点例外命令
の処理の始めに処理する。前の浮動小数点命令に関する
未処理浮動小数点例外条件が存在することは、浮動小数
点例外フラグ34の条件で指示される。
【0039】一実施形態では、マイクロプロセッサ11
がSPARCアーキテクチャ・マニュアル、バージョン
9に記載されたSPARCバージョン9に従って構築さ
れ、浮動小数点例外フラグ34はたとえば、「浮動小数
点イネーブル」フラグを含むことができ、機能装置21
内の浮動小数点機能装置をイネーブルし、ディスエーブ
ルするように条件付けることができる。また、最初のプ
ログラム27内の各浮動小数点命令は通常、変換済みプ
ログラム25内の少なくとも1つの浮動小数点命令によ
ってエミュレートされる。この実施形態では、未処理障
害条件が存在する場合、浮動小数点イネーブル・フラグ
がセットされ、それによって浮動小数点機能装置による
動作がイネーブルされる。一方、未処理障害条件が存在
する場合、浮動小数点イネーブル・フラグはクリアさ
れ、それによって通常、浮動小数点機能装置による動作
がディスエーブルされる(前述の浮動小数点イネーブル
・フラグの条件が前述の浮動小数点例外フラグ34の条
件の補数に対応することが理解されよう)。この場合、
ホスト・マイクロプロセッサ11が浮動小数点命令を実
行しようとするときに浮動小数点イネーブル・フラグが
クリアされた場合、例外指示が生成され、例外ハンドラ
が呼び出される。例外ハンドラはその点で、未処理浮動
小数点例外を処理し、浮動小数点イネーブル・フラグを
セットし、ホスト・マイクロプロセッサ11が浮動小数
点命令の処理を再開できるようにする。
がSPARCアーキテクチャ・マニュアル、バージョン
9に記載されたSPARCバージョン9に従って構築さ
れ、浮動小数点例外フラグ34はたとえば、「浮動小数
点イネーブル」フラグを含むことができ、機能装置21
内の浮動小数点機能装置をイネーブルし、ディスエーブ
ルするように条件付けることができる。また、最初のプ
ログラム27内の各浮動小数点命令は通常、変換済みプ
ログラム25内の少なくとも1つの浮動小数点命令によ
ってエミュレートされる。この実施形態では、未処理障
害条件が存在する場合、浮動小数点イネーブル・フラグ
がセットされ、それによって浮動小数点機能装置による
動作がイネーブルされる。一方、未処理障害条件が存在
する場合、浮動小数点イネーブル・フラグはクリアさ
れ、それによって通常、浮動小数点機能装置による動作
がディスエーブルされる(前述の浮動小数点イネーブル
・フラグの条件が前述の浮動小数点例外フラグ34の条
件の補数に対応することが理解されよう)。この場合、
ホスト・マイクロプロセッサ11が浮動小数点命令を実
行しようとするときに浮動小数点イネーブル・フラグが
クリアされた場合、例外指示が生成され、例外ハンドラ
が呼び出される。例外ハンドラはその点で、未処理浮動
小数点例外を処理し、浮動小数点イネーブル・フラグを
セットし、ホスト・マイクロプロセッサ11が浮動小数
点命令の処理を再開できるようにする。
【0040】本発明の第2の実施形態によれば、ホスト
・マイクロプロセッサ11は、被エミュレート・マイク
ロプロセッサ汎用レジスタ・セット31と、エミュレー
ション・ポインタ・ストア32と、制御・状況レジスタ
33を使用して被エミュレート・マイクロプロセッサを
エミュレートする。しかし、ホスト・マイクロプロセッ
サ11は、未処理浮動小数点例外条件が存在するかどう
かを示すときに、図1に示した浮動小数点例外フラグ3
4を使用しない。その代わりに、第2の実施形態では、
ホスト・マイクロプロセッサ11は、現在実行中のプロ
グラム用の仮想アドレス空間の選択されたページに対す
るアクセス許可を制御することによって、未処理浮動小
数点例外条件が存在するかどうかを示す。このページ
は、普通なら、処理すべきデータまたは命令を記憶する
ときには使用されないものである。
・マイクロプロセッサ11は、被エミュレート・マイク
ロプロセッサ汎用レジスタ・セット31と、エミュレー
ション・ポインタ・ストア32と、制御・状況レジスタ
33を使用して被エミュレート・マイクロプロセッサを
エミュレートする。しかし、ホスト・マイクロプロセッ
サ11は、未処理浮動小数点例外条件が存在するかどう
かを示すときに、図1に示した浮動小数点例外フラグ3
4を使用しない。その代わりに、第2の実施形態では、
ホスト・マイクロプロセッサ11は、現在実行中のプロ
グラム用の仮想アドレス空間の選択されたページに対す
るアクセス許可を制御することによって、未処理浮動小
数点例外条件が存在するかどうかを示す。このページ
は、普通なら、処理すべきデータまたは命令を記憶する
ときには使用されないものである。
【0041】具体的には、変換済みプログラム25に与
えられた1つまたは一連の命令の処理時に、最初のプロ
グラム27のある浮動小数点命令に対して、例外指示が
生成された場合、マイクロプロセッサ11は、たとえば
そのページへの書込みアクセスをディスエーブルし、そ
れによって未処理浮動小数点例外条件が存在することを
示す1つの命令または命令のシーケンスに進むことがで
きる。最初のプログラム27内の各浮動小数点命令ごと
に変換済みプログラム25に与えられる1つまたは一連
の命令は、マイクロプロセッサ11がデータをページに
記憶することを試みることができるようにする記憶命令
を含む。記憶命令の処理時にアクセス障害が生成されな
い場合、マイクロプロセッサ11は、未処理浮動小数点
例外条件は存在しないと判定し、その場合、変換済みプ
ログラム25内の次の命令の処理に進み、特に、最初の
プログラム27内の浮動小数点命令をエミュレートする
のに必要な動作を実行することができる。
えられた1つまたは一連の命令の処理時に、最初のプロ
グラム27のある浮動小数点命令に対して、例外指示が
生成された場合、マイクロプロセッサ11は、たとえば
そのページへの書込みアクセスをディスエーブルし、そ
れによって未処理浮動小数点例外条件が存在することを
示す1つの命令または命令のシーケンスに進むことがで
きる。最初のプログラム27内の各浮動小数点命令ごと
に変換済みプログラム25に与えられる1つまたは一連
の命令は、マイクロプロセッサ11がデータをページに
記憶することを試みることができるようにする記憶命令
を含む。記憶命令の処理時にアクセス障害が生成されな
い場合、マイクロプロセッサ11は、未処理浮動小数点
例外条件は存在しないと判定し、その場合、変換済みプ
ログラム25内の次の命令の処理に進み、特に、最初の
プログラム27内の浮動小数点命令をエミュレートする
のに必要な動作を実行することができる。
【0042】一方、記憶命令を処理している間にアクセ
ス障害が生成された場合、ホスト・マイクロプロセッサ
11は、未処理浮動小数点例外条件が存在すると判定す
る。この場合、ホスト・マイクロプロセッサ11は、未
処理浮動小数点例外を処理する例外ハンドラを呼び出す
ことができる。例外ハンドラの処理時に、マイクロプロ
セッサ11は、選択されたページに対するアクセスをイ
ネーブルするようにアクセス許可を修正し、それによっ
て、未処理浮動小数点例外条件が存在することを示す指
示を消去することができる。ホスト・マイクロプロセッ
サ11は、例外ハンドラを処理した後、記憶命令を繰り
返すことができる。書込みアクセスがイネーブルされて
いるので、記憶命令はアクセス障害指示を生成せずに完
了する。ホスト・マイクロプロセッサ11は、記憶命令
の処理を完了した後、変換済みプログラム25内の次の
命令の処理に進み、最初のプログラム27内の浮動小数
点命令をエミュレートするのに必要な動作を実行するこ
とができる。
ス障害が生成された場合、ホスト・マイクロプロセッサ
11は、未処理浮動小数点例外条件が存在すると判定す
る。この場合、ホスト・マイクロプロセッサ11は、未
処理浮動小数点例外を処理する例外ハンドラを呼び出す
ことができる。例外ハンドラの処理時に、マイクロプロ
セッサ11は、選択されたページに対するアクセスをイ
ネーブルするようにアクセス許可を修正し、それによっ
て、未処理浮動小数点例外条件が存在することを示す指
示を消去することができる。ホスト・マイクロプロセッ
サ11は、例外ハンドラを処理した後、記憶命令を繰り
返すことができる。書込みアクセスがイネーブルされて
いるので、記憶命令はアクセス障害指示を生成せずに完
了する。ホスト・マイクロプロセッサ11は、記憶命令
の処理を完了した後、変換済みプログラム25内の次の
命令の処理に進み、最初のプログラム27内の浮動小数
点命令をエミュレートするのに必要な動作を実行するこ
とができる。
【0043】変換プログラム26が、未処理浮動小数点
例外条件を処理することを必要とする命令の前にホスト
・マイクロプロセッサ11によって実行される位置に、
変換済みプログラム内の記憶命令を与えることが理解さ
れよう。
例外条件を処理することを必要とする命令の前にホスト
・マイクロプロセッサ11によって実行される位置に、
変換済みプログラム内の記憶命令を与えることが理解さ
れよう。
【0044】具体的には、選択されたページが確立され
ると、ページ内のすべての記憶位置が、「零」など1つ
または複数の所定の値を含むように初期設定される。第
2の実施形態によれば、浮動小数点命令の処理時に機能
装置21によってEXC COND例外条件指示が生成
されたことに応答して、ホスト・マイクロプロセッサ1
1は、メモリ管理装置14が選択されたページに対する
アクセス許可を制御できるようにし、そのページにデー
タを記憶することが試みられた場合にアクセス障害指示
が生成されるようにする。メモリ管理装置14がこのペ
ージに対する書込み許可を制御できるようにする際にホ
スト・マイクロプロセッサ11によって実行される動作
は、ホスト・マイクロプロセッサの厳密例外処理モデル
に従って処理時に呼び出される例外ハンドラによって制
御することができる。その後、ホスト・マイクロプロセ
ッサ11は次の命令の処理を開始する。
ると、ページ内のすべての記憶位置が、「零」など1つ
または複数の所定の値を含むように初期設定される。第
2の実施形態によれば、浮動小数点命令の処理時に機能
装置21によってEXC COND例外条件指示が生成
されたことに応答して、ホスト・マイクロプロセッサ1
1は、メモリ管理装置14が選択されたページに対する
アクセス許可を制御できるようにし、そのページにデー
タを記憶することが試みられた場合にアクセス障害指示
が生成されるようにする。メモリ管理装置14がこのペ
ージに対する書込み許可を制御できるようにする際にホ
スト・マイクロプロセッサ11によって実行される動作
は、ホスト・マイクロプロセッサの厳密例外処理モデル
に従って処理時に呼び出される例外ハンドラによって制
御することができる。その後、ホスト・マイクロプロセ
ッサ11は次の命令の処理を開始する。
【0045】最初のプログラム27の各浮動小数点命令
を実行する変換済みプログラム25の命令の始め近く
で、ホスト・マイクロプロセッサ11が、選択されたペ
ージ内の記憶位置に選択された値(零など)を記憶する
記憶動作を開始できるようにする命令が与えられる。メ
モリ管理装置14は、変換済みプログラム25が、選択
されたページにデータを記憶する許可を有すると判定し
た場合、アクセス障害指示を生成せず、未処理浮動小数
点例外条件が存在しないことを示す。この場合、ホスト
・マイクロプロセッサ11は、現在処理中の最初のプロ
グラムの浮動小数点命令に関して生成された変換済みプ
ログラム25の命令に進む。
を実行する変換済みプログラム25の命令の始め近く
で、ホスト・マイクロプロセッサ11が、選択されたペ
ージ内の記憶位置に選択された値(零など)を記憶する
記憶動作を開始できるようにする命令が与えられる。メ
モリ管理装置14は、変換済みプログラム25が、選択
されたページにデータを記憶する許可を有すると判定し
た場合、アクセス障害指示を生成せず、未処理浮動小数
点例外条件が存在しないことを示す。この場合、ホスト
・マイクロプロセッサ11は、現在処理中の最初のプロ
グラムの浮動小数点命令に関して生成された変換済みプ
ログラム25の命令に進む。
【0046】メモリ管理装置14は、変換済みプログラ
ム25が、選択されたページにデータを記憶する許可を
有さないと判定した場合、アクセス障害指示を生成し、
未処理浮動小数点例外条件が存在することを示す。アク
セス障害指示に応答して、マイクロプロセッサ11は、
被エミュレート・マイクロプロセッサ・レジスタ・セッ
ト30に記憶されている例外ポインタ32を使用して浮
動小数点例外ハンドラの処理を開始することができる。
浮動小数点例外ハンドラが処理された後、ホスト・マイ
クロプロセッサ11は、現浮動小数点命令(すなわち、
EXC COND例外条件指示が生成された浮動小数点
命令の次の浮動小数点命令)が必要とする動作をイネー
ブルする。
ム25が、選択されたページにデータを記憶する許可を
有さないと判定した場合、アクセス障害指示を生成し、
未処理浮動小数点例外条件が存在することを示す。アク
セス障害指示に応答して、マイクロプロセッサ11は、
被エミュレート・マイクロプロセッサ・レジスタ・セッ
ト30に記憶されている例外ポインタ32を使用して浮
動小数点例外ハンドラの処理を開始することができる。
浮動小数点例外ハンドラが処理された後、ホスト・マイ
クロプロセッサ11は、現浮動小数点命令(すなわち、
EXC COND例外条件指示が生成された浮動小数点
命令の次の浮動小数点命令)が必要とする動作をイネー
ブルする。
【0047】したがって、厳密例外処理モデルを備えた
ホスト・マイクロプロセッサ11が、エミュレートされ
ている被エミュレート・マイクロプロセッサの特徴であ
る遅延例外処理モデルの必要に応じて、特定の浮動小数
点命令に関して示された浮動小数点例外を次の浮動小数
点命令の処理の始めに処理する。前の浮動小数点命令に
関する未処理浮動小数点例外条件が存在することは、選
択されたページにアクセスできることによって示され
る。
ホスト・マイクロプロセッサ11が、エミュレートされ
ている被エミュレート・マイクロプロセッサの特徴であ
る遅延例外処理モデルの必要に応じて、特定の浮動小数
点命令に関して示された浮動小数点例外を次の浮動小数
点命令の処理の始めに処理する。前の浮動小数点命令に
関する未処理浮動小数点例外条件が存在することは、選
択されたページにアクセスできることによって示され
る。
【0048】この背景を用いて、それぞれの実施形態に
関連してホスト・マイクロプロセッサ11によって実行
される動作を、図2ないし図4に示したフローチャート
に関連して説明する。図2のフローチャートは、最初の
プログラム27の浮動小数点命令の変換済みプログラム
25の命令を生成している変換プログラム26の制御下
で、たとえばホスト・マイクロプロセッサ11によって
実行される動作を示す。図3および図4は、最初の命令
27の浮動小数点命令に関して生成される変換済みプロ
グラム25の1つまたは複数の命令の制御下でホスト・
マイクロプロセッサ11によって実行される動作を示
す。図3は全体的に、第1の実施形態、すなわち、浮動
小数点例外フラグ34を使用して未処理浮動小数点例外
条件が存在することを示す実施形態に関連して生成され
る命令の制御下で実行される動作を示す。一方、図4は
全体的に、第2の実施形態、すなわち仮想アドレス空間
の選択されたページに対するアクセス許可を使用して、
未処理浮動小数点例外条件が存在することを示す実施形
態に関連して生成される命令の制御下で実行される動作
を示す。
関連してホスト・マイクロプロセッサ11によって実行
される動作を、図2ないし図4に示したフローチャート
に関連して説明する。図2のフローチャートは、最初の
プログラム27の浮動小数点命令の変換済みプログラム
25の命令を生成している変換プログラム26の制御下
で、たとえばホスト・マイクロプロセッサ11によって
実行される動作を示す。図3および図4は、最初の命令
27の浮動小数点命令に関して生成される変換済みプロ
グラム25の1つまたは複数の命令の制御下でホスト・
マイクロプロセッサ11によって実行される動作を示
す。図3は全体的に、第1の実施形態、すなわち、浮動
小数点例外フラグ34を使用して未処理浮動小数点例外
条件が存在することを示す実施形態に関連して生成され
る命令の制御下で実行される動作を示す。一方、図4は
全体的に、第2の実施形態、すなわち仮想アドレス空間
の選択されたページに対するアクセス許可を使用して、
未処理浮動小数点例外条件が存在することを示す実施形
態に関連して生成される命令の制御下で実行される動作
を示す。
【0049】図2は、最初のプログラム27の浮動小数
点命令の変換済みプログラム25の命令を生成する際に
変換プログラム26の制御下で、たとえばホスト・マイ
クロプロセッサ11[またはディジタル・コンピュータ
・システム10(図示せず)内の他のマイクロプロセッ
サ、または他のディジタル・コンピュータ・システム
(やはり図示せず)]によって実行される動作を示す。
図2を参照すると分かるように、変換プログラム26は
最初に、ホスト・マイクロプロセッサ11が、変換すべ
き最初のプログラム27の命令を検索できるようにする
(ステップ80)。変換プログラム26は次いで、ホス
ト・マイクロプロセッサ11が、検索された最初のプロ
グラム命令が浮動小数点命令であるかどうかを判定でき
るようにする(ステップ81)。ステップ81で肯定的
な判定が下された場合、変換プログラム26は、ホスト
・マイクロプロセッサ11が、未処理浮動小数点例外条
件が存在するかどうかを判定し、そうである場合、未処
理条件を処理することができるようにする1つまたは複
数の命令を、ホスト・マイクロプロセッサ11自体が与
えることができるようにする。ステップ82またはステ
ップ81の後、ホスト・マイクロプロセッサ11が、変
換プログラム26の制御下で、最初のプログラムの検索
された命令が浮動小数点命令ではないと判定した場合、
変換プログラムは、最初のプログラムの検索された命令
に必要な動作を実行できるようにする命令をホスト・マ
イクロプロセッサ11が生成できるようにする1つまた
は複数の命令を与える(ステップ83)。また、変換プ
ログラム26は、ホスト・マイクロプロセッサ11が、
変換済みプログラム25を処理する際、ステップ83で
生成された命令の処理時に例外条件指示が生成された場
合、厳密例外処理モデルに従ってその例外条件を処理す
る例外ハンドラを呼び出す(ステップ84)。なお、ス
テップ80で検索された最初のプログラム27の命令が
浮動小数点命令であった場合、ホスト・マイクロプロセ
ッサ11は、例外ハンドラを呼び出す際、例外条件指示
を記録し、それによって未処理浮動小数点例外条件が存
在することを示し、また、未処理浮動小数点例外条件を
処理するのに必要な例外情報(前述の例外ポインタ情報
など)を記憶することもできる。
点命令の変換済みプログラム25の命令を生成する際に
変換プログラム26の制御下で、たとえばホスト・マイ
クロプロセッサ11[またはディジタル・コンピュータ
・システム10(図示せず)内の他のマイクロプロセッ
サ、または他のディジタル・コンピュータ・システム
(やはり図示せず)]によって実行される動作を示す。
図2を参照すると分かるように、変換プログラム26は
最初に、ホスト・マイクロプロセッサ11が、変換すべ
き最初のプログラム27の命令を検索できるようにする
(ステップ80)。変換プログラム26は次いで、ホス
ト・マイクロプロセッサ11が、検索された最初のプロ
グラム命令が浮動小数点命令であるかどうかを判定でき
るようにする(ステップ81)。ステップ81で肯定的
な判定が下された場合、変換プログラム26は、ホスト
・マイクロプロセッサ11が、未処理浮動小数点例外条
件が存在するかどうかを判定し、そうである場合、未処
理条件を処理することができるようにする1つまたは複
数の命令を、ホスト・マイクロプロセッサ11自体が与
えることができるようにする。ステップ82またはステ
ップ81の後、ホスト・マイクロプロセッサ11が、変
換プログラム26の制御下で、最初のプログラムの検索
された命令が浮動小数点命令ではないと判定した場合、
変換プログラムは、最初のプログラムの検索された命令
に必要な動作を実行できるようにする命令をホスト・マ
イクロプロセッサ11が生成できるようにする1つまた
は複数の命令を与える(ステップ83)。また、変換プ
ログラム26は、ホスト・マイクロプロセッサ11が、
変換済みプログラム25を処理する際、ステップ83で
生成された命令の処理時に例外条件指示が生成された場
合、厳密例外処理モデルに従ってその例外条件を処理す
る例外ハンドラを呼び出す(ステップ84)。なお、ス
テップ80で検索された最初のプログラム27の命令が
浮動小数点命令であった場合、ホスト・マイクロプロセ
ッサ11は、例外ハンドラを呼び出す際、例外条件指示
を記録し、それによって未処理浮動小数点例外条件が存
在することを示し、また、未処理浮動小数点例外条件を
処理するのに必要な例外情報(前述の例外ポインタ情報
など)を記憶することもできる。
【0050】前述のように、一実施形態形態のマイクプ
ロセッサ11は、SPARCアーキテクチャ・マニュア
ル、バージョン9に記載されたSPARCバージョン9
に従って構築され、浮動小数点例外フラグ34は、機能
装置21内の浮動小数点機能装置をイネーブルしディス
エーブルするように条件付けることができる「浮動小数
点イネーブル」フラグを含む。変換プログラム26がス
テップ83で、第1の変換済みプログラム浮動小数点命
令が実行される際に、最初のプログラム内の各浮動小数
点命令ごとに変換済みプログラム25内の少なくとも1
つの浮動小数点命令を与えることができるようにした場
合、ホスト・マイクロプロセッサ11が浮動小数点イネ
ーブル・フラグの条件を有効に試験し、それによって、
未処理浮動小数点例外条件が存在するかどうかを自動的
に判定することが理解されよう。この場合、変換プログ
ラム26は、浮動小数点イネーブル・フラグを試験する
ために追加命令を与えることができるようにする必要は
なく(基準ステップ82)、検索された命令が浮動小数
点命令であるかどうかを判定するためにこの命令を試験
できるようにする必要はない(基準ステップ81)。
ロセッサ11は、SPARCアーキテクチャ・マニュア
ル、バージョン9に記載されたSPARCバージョン9
に従って構築され、浮動小数点例外フラグ34は、機能
装置21内の浮動小数点機能装置をイネーブルしディス
エーブルするように条件付けることができる「浮動小数
点イネーブル」フラグを含む。変換プログラム26がス
テップ83で、第1の変換済みプログラム浮動小数点命
令が実行される際に、最初のプログラム内の各浮動小数
点命令ごとに変換済みプログラム25内の少なくとも1
つの浮動小数点命令を与えることができるようにした場
合、ホスト・マイクロプロセッサ11が浮動小数点イネ
ーブル・フラグの条件を有効に試験し、それによって、
未処理浮動小数点例外条件が存在するかどうかを自動的
に判定することが理解されよう。この場合、変換プログ
ラム26は、浮動小数点イネーブル・フラグを試験する
ために追加命令を与えることができるようにする必要は
なく(基準ステップ82)、検索された命令が浮動小数
点命令であるかどうかを判定するためにこの命令を試験
できるようにする必要はない(基準ステップ81)。
【0051】また、この場合、ステップ82に関連して
説明した、未処理浮動小数点例外条件を処理する動作
を、変換済みプログラムを処理するためにホスト・プロ
セッサに与えられる例外ハンドラによってイネーブルす
ることができることが理解されよう。さらに、ステップ
84に関連して説明した、生成された例外条件指示およ
び例外情報を記録する動作は、変換済みプログラムを処
理するためにホスト・プロセッサに与えられる例外ハン
ドラによってイネーブルすることができる。
説明した、未処理浮動小数点例外条件を処理する動作
を、変換済みプログラムを処理するためにホスト・プロ
セッサに与えられる例外ハンドラによってイネーブルす
ることができることが理解されよう。さらに、ステップ
84に関連して説明した、生成された例外条件指示およ
び例外情報を記録する動作は、変換済みプログラムを処
理するためにホスト・プロセッサに与えられる例外ハン
ドラによってイネーブルすることができる。
【0052】図3は全体的に、第1の実施形態、すなわ
ち、浮動小数点例外フラグ34を使用して未処理浮動小
数点例外条件が存在することを指示する実施形態に関連
して生成される命令の制御下で実行される動作を示す。
図3を参照すると分かるように、ホスト・マイクロプロ
セッサ11は最初に、変換済みプログラムの命令を処理
し、最初のプログラム27の前の浮動小数点命令の実行
時に未処理の浮動小数点例外が指示されたかどうかを指
示する浮動小数点例外フラグ34がセットされているか
どうかを判定する(ステップ101)。ホスト・マイク
ロプロセッサ11は、ステップ101で肯定的な判定を
下した場合、浮動小数点例外ハンドラを呼び出し、未処
理の浮動小数点例外を処理する(ステップ102)。
ち、浮動小数点例外フラグ34を使用して未処理浮動小
数点例外条件が存在することを指示する実施形態に関連
して生成される命令の制御下で実行される動作を示す。
図3を参照すると分かるように、ホスト・マイクロプロ
セッサ11は最初に、変換済みプログラムの命令を処理
し、最初のプログラム27の前の浮動小数点命令の実行
時に未処理の浮動小数点例外が指示されたかどうかを指
示する浮動小数点例外フラグ34がセットされているか
どうかを判定する(ステップ101)。ホスト・マイク
ロプロセッサ11は、ステップ101で肯定的な判定を
下した場合、浮動小数点例外ハンドラを呼び出し、未処
理の浮動小数点例外を処理する(ステップ102)。
【0053】未処理の浮動小数点例外が処理された(ス
テップ102)後、あるいはステップ101の後、ホス
ト・マイクロプロセッサ11は、浮動小数点例外フラグ
34がそのステップで、セットされていないと判定した
場合、処理中の最初のプログラムの浮動小数点命令に必
要な動作を実行するのに必要な1つまたは複数の命令を
処理する(ステップ103)。ステップ103に関連し
て実行される動作中のある点で、実際にその動作を実行
できるようにされた機能装置21がEXC COND例
外条件指示を生成することがある。ホスト・マイクロプ
ロセッサ11はステップ104でこの指示を知る。マイ
クロプロセッサ11は、ステップ104で、EXC C
OND例外条件指示が生成されていると判定した場合、
ステップ105に進み、浮動小数点例外フラグ34をセ
ットし、それによって未処理浮動小数点例外条件を指示
する。ステップ105または104の後、ホスト・マイ
クロプロセッサ11は、そのステップで否定的な判定を
下した場合、最初のプログラム27の次の命令に与えら
れた変換済みプログラム25の命令の処理に進む。
テップ102)後、あるいはステップ101の後、ホス
ト・マイクロプロセッサ11は、浮動小数点例外フラグ
34がそのステップで、セットされていないと判定した
場合、処理中の最初のプログラムの浮動小数点命令に必
要な動作を実行するのに必要な1つまたは複数の命令を
処理する(ステップ103)。ステップ103に関連し
て実行される動作中のある点で、実際にその動作を実行
できるようにされた機能装置21がEXC COND例
外条件指示を生成することがある。ホスト・マイクロプ
ロセッサ11はステップ104でこの指示を知る。マイ
クロプロセッサ11は、ステップ104で、EXC C
OND例外条件指示が生成されていると判定した場合、
ステップ105に進み、浮動小数点例外フラグ34をセ
ットし、それによって未処理浮動小数点例外条件を指示
する。ステップ105または104の後、ホスト・マイ
クロプロセッサ11は、そのステップで否定的な判定を
下した場合、最初のプログラム27の次の命令に与えら
れた変換済みプログラム25の命令の処理に進む。
【0054】図4は全体的に、第2の実施形態、すなわ
ち仮想アドレス空間の選択されたページに対するアクセ
ス許可を使用して、未処理浮動小数点例外条件が存在す
ることを指示する実施形態に関連して生成される命令の
制御下で実行される動作を示す。図4を参照すると分か
るように、ホスト・マイクロプロセッサ11は最初に、
仮想アドレス空間の選択されたページにデータを記憶し
ようとする変換済みプログラム25の記憶命令を処理
し、最初のプログラム27の前の浮動小数点命令の実行
時に未処理浮動小数点例外が指示されたことを示すアク
セス障害指示をメモリ管理装置14が生成するかどうか
を判定する(ステップ121)。ホスト・マイクロプロ
セッサ11は、ステップ121で肯定的な判定を下した
場合、アクセス障害例外ハンドラを呼び出し、未処理浮
動小数点例外を処理する(ステップ122)。
ち仮想アドレス空間の選択されたページに対するアクセ
ス許可を使用して、未処理浮動小数点例外条件が存在す
ることを指示する実施形態に関連して生成される命令の
制御下で実行される動作を示す。図4を参照すると分か
るように、ホスト・マイクロプロセッサ11は最初に、
仮想アドレス空間の選択されたページにデータを記憶し
ようとする変換済みプログラム25の記憶命令を処理
し、最初のプログラム27の前の浮動小数点命令の実行
時に未処理浮動小数点例外が指示されたことを示すアク
セス障害指示をメモリ管理装置14が生成するかどうか
を判定する(ステップ121)。ホスト・マイクロプロ
セッサ11は、ステップ121で肯定的な判定を下した
場合、アクセス障害例外ハンドラを呼び出し、未処理浮
動小数点例外を処理する(ステップ122)。
【0055】未処理の浮動小数点例外が処理された(ス
テップ122)後、あるいはステップ121の後、ホス
ト・マイクロプロセッサ11はそのステップで、メモリ
管理装置14が記憶動作時にアクセス障害指示を生成し
ない(未処理の浮動小数点例外がないことを示す)と判
定した場合、処理中の最初のプログラムの浮動小数点命
令に必要な動作を実行するのに必要な1つまたは複数の
命令を処理する(ステップ123)。ステップ123に
関連して実行される動作中のある点で、実際にその動作
を実行できるようにされた機能装置21がEXC CO
ND例外条件指示を生成することがある。ホスト・マイ
クロプロセッサ11はステップ124でこの指示を知
る。マイクロプロセッサ11は、ステップ124で、E
XC COND例外条件指示が生成されていると判定し
た場合、ステップ125に進み、選択されたページに対
する記憶動作のためのアクセスを不能にし、それによっ
て未処理浮動小数点例外条件を示す。ステップ125ま
たは124の後、ホスト・マイクロプロセッサ11は、
そのステップで否定的な判定を下した場合、最初のプロ
グラム27の次の命令に与えられた変換済みプログラム
25の命令の処理に進む。
テップ122)後、あるいはステップ121の後、ホス
ト・マイクロプロセッサ11はそのステップで、メモリ
管理装置14が記憶動作時にアクセス障害指示を生成し
ない(未処理の浮動小数点例外がないことを示す)と判
定した場合、処理中の最初のプログラムの浮動小数点命
令に必要な動作を実行するのに必要な1つまたは複数の
命令を処理する(ステップ123)。ステップ123に
関連して実行される動作中のある点で、実際にその動作
を実行できるようにされた機能装置21がEXC CO
ND例外条件指示を生成することがある。ホスト・マイ
クロプロセッサ11はステップ124でこの指示を知
る。マイクロプロセッサ11は、ステップ124で、E
XC COND例外条件指示が生成されていると判定し
た場合、ステップ125に進み、選択されたページに対
する記憶動作のためのアクセスを不能にし、それによっ
て未処理浮動小数点例外条件を示す。ステップ125ま
たは124の後、ホスト・マイクロプロセッサ11は、
そのステップで否定的な判定を下した場合、最初のプロ
グラム27の次の命令に与えられた変換済みプログラム
25の命令の処理に進む。
【0056】本発明がいくつかの利点を有することが理
解されよう。特に、本発明は、「厳密」例外処理モデル
を備えるマイクロプロセッサが、浮動小数点命令に関連
する例外を処理する際に「遅延」例外処理モデルを使用
できるようにこのモデルを備えるマイクロプロセッサを
正しくエミュレートするための構成を提供する。
解されよう。特に、本発明は、「厳密」例外処理モデル
を備えるマイクロプロセッサが、浮動小数点命令に関連
する例外を処理する際に「遅延」例外処理モデルを使用
できるようにこのモデルを備えるマイクロプロセッサを
正しくエミュレートするための構成を提供する。
【0057】浮動小数点命令の処理時に生成される例外
の処理に関連して本発明を説明したが、本発明がさら
に、たとえば整数命令、論理命令、プログラム・フロー
制御命令を含む、他の多数のタイプの命令時に生成され
る例外の処理に関連して使用できることが理解されよ
う。また、特定のタイプの命令(浮動小数点命令など)
の処理時に生成される未処理障害条件が同じタイプの後
続の命令の処理時に処理されるシステムに関連して本発
明を説明したが、特定のタイプの命令の処理時に生成さ
れる未処理障害条件を任意のタイプの後続の命令の処理
時に処理できることが理解されよう。
の処理に関連して本発明を説明したが、本発明がさら
に、たとえば整数命令、論理命令、プログラム・フロー
制御命令を含む、他の多数のタイプの命令時に生成され
る例外の処理に関連して使用できることが理解されよ
う。また、特定のタイプの命令(浮動小数点命令など)
の処理時に生成される未処理障害条件が同じタイプの後
続の命令の処理時に処理されるシステムに関連して本発
明を説明したが、特定のタイプの命令の処理時に生成さ
れる未処理障害条件を任意のタイプの後続の命令の処理
時に処理できることが理解されよう。
【0058】さらに、未処理浮動小数点例外条件の存在
を明示的に指示する浮動小数点例外フラグ34と、未処
理浮動小数点例外条件の存在を暗黙的に指示するアクセ
ス障害指示を使用するホスト・マイクロプロセッサ11
に関して本発明を説明したが、変換済みプログラム25
の命令の処理時にアクセスし制御することができる他の
多数の機構を使用して、未処理浮動小数点例外条件の存
在を指示させることが理解されよう。
を明示的に指示する浮動小数点例外フラグ34と、未処
理浮動小数点例外条件の存在を暗黙的に指示するアクセ
ス障害指示を使用するホスト・マイクロプロセッサ11
に関して本発明を説明したが、変換済みプログラム25
の命令の処理時にアクセスし制御することができる他の
多数の機構を使用して、未処理浮動小数点例外条件の存
在を指示させることが理解されよう。
【0059】上記で図1ないし図3に関連して説明した
実施形態にいくつかの変形および修正を加えられること
が理解されよう。たとえば、図1では、ホスト・マイク
ロプロセッサ11とメモリ管理装置14が別々の要素で
構成され、メモリ管理装置14がバス・インタフェース
22を通じてマイクロプロセッサと通信するように示さ
れているが、ホスト・マイクロプロセッサ11とメモリ
管理装置14を、1つまたは複数の集積回路チップ上で
一体化された単一の要素で構成することができることが
理解されよう。ホスト・マイクロプロセッサ11とメモ
リ管理装置14を一体化する場合、バス・インタフェー
ス22とメモリ管理装置14をたとえば単一の要素とし
て統合することができる。
実施形態にいくつかの変形および修正を加えられること
が理解されよう。たとえば、図1では、ホスト・マイク
ロプロセッサ11とメモリ管理装置14が別々の要素で
構成され、メモリ管理装置14がバス・インタフェース
22を通じてマイクロプロセッサと通信するように示さ
れているが、ホスト・マイクロプロセッサ11とメモリ
管理装置14を、1つまたは複数の集積回路チップ上で
一体化された単一の要素で構成することができることが
理解されよう。ホスト・マイクロプロセッサ11とメモ
リ管理装置14を一体化する場合、バス・インタフェー
ス22とメモリ管理装置14をたとえば単一の要素とし
て統合することができる。
【0060】さらに、さらに本発明による遅延例外エミ
ュレーション機能を含む選択されたアーキテクチャ(前
述のSPARCアーキテクチャ・マニュアル、バージョ
ン9に記載された前述のSPARCバージョン9アーキ
テクチャなど)に従って構築されたホスト・マイクロプ
ロセッサ11全体を、たとえば適当なエミュレーション
・プログラムまたはマイクロコードを備える他のアーキ
テクチャのマイクロプロセッサを使用してエミュレート
することができることが理解されよう。
ュレーション機能を含む選択されたアーキテクチャ(前
述のSPARCアーキテクチャ・マニュアル、バージョ
ン9に記載された前述のSPARCバージョン9アーキ
テクチャなど)に従って構築されたホスト・マイクロプ
ロセッサ11全体を、たとえば適当なエミュレーション
・プログラムまたはマイクロコードを備える他のアーキ
テクチャのマイクロプロセッサを使用してエミュレート
することができることが理解されよう。
【0061】さらに、本発明による遅延例外エミュレー
ション機能を含むマイクロプロセッサ11の全体または
一部を、特殊目的ハードウェア、あるいは一部が適当な
プログラムによって制御できるプログラム制御可能な装
置で構成することができることが理解されよう。
ション機能を含むマイクロプロセッサ11の全体または
一部を、特殊目的ハードウェア、あるいは一部が適当な
プログラムによって制御できるプログラム制御可能な装
置で構成することができることが理解されよう。
【0062】前述の説明は本発明の特定の実施形態に限
られている。しかし、本発明には様々な変形および修正
を加え、本発明のいくつかまたはすべての利点を達成す
ることができることは明らかである。添付の特許請求の
範囲の目的は、本発明の真の趣旨および範囲内の、これ
らおよびそのような他の変形および修正をカバーするこ
とである。
られている。しかし、本発明には様々な変形および修正
を加え、本発明のいくつかまたはすべての利点を達成す
ることができることは明らかである。添付の特許請求の
範囲の目的は、本発明の真の趣旨および範囲内の、これ
らおよびそのような他の変形および修正をカバーするこ
とである。
【図1】 本発明によって構築されたディジタル・コン
ピュータ・システムを示す機能ブロック図である。
ピュータ・システムを示す機能ブロック図である。
【図2】 本発明によって最初のプログラムの命令を変
換済みプログラムに変換することに関連してディジタル
・コンピュータ・システムによって実行される動作を示
すフローチャートである。
換済みプログラムに変換することに関連してディジタル
・コンピュータ・システムによって実行される動作を示
すフローチャートである。
【図3】 本発明の第1の実施形態に関連してディジタ
ル・コンピュータ・システムによって実行される動作を
示すフローチャートである。
ル・コンピュータ・システムによって実行される動作を
示すフローチャートである。
【図4】 本発明の第2の実施形態に関連してディジタ
ル・コンピュータ・システムによって実行される動作を
示すフローチャートである。
ル・コンピュータ・システムによって実行される動作を
示すフローチャートである。
11 マイクロプロセッサ 12 メモリ・サブシステム 13 入出力サブシステム 14 メモリ管理装置 20 レジスタ・セット 21 機能装置 22 バス・インタフェース 23 制御回路 25 変換済みプログラム 26 変換プログラム 27 最初のプログラム 30 被エミュレート・マイクロプロセッサ・レジスタ
・セット 31 汎用レジスタ・セット 32 例外ポインタ・ストア 33 制御/状況レジスタ 34 浮動小数点例外フラグ
・セット 31 汎用レジスタ・セット 32 例外ポインタ・ストア 33 制御/状況レジスタ 34 浮動小数点例外フラグ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デイヴィッド ダイス アメリカ合衆国・02035・マサチューセッ ツ州・フォックスボロー・ウィルケソン ウェイ・15
Claims (7)
- 【請求項1】 A.ある命令に関連して例外条件が検出
された場合にその命令に関連してその例外条件が処理さ
れる厳密例外処理モデルに従って構築されており、未処
理例外指示条件と非未処理例外指示状態とを有する未処
理例外指示器を含む、命令の制御下で処理動作を実行す
る厳密処理プロセッサと、 B.ある命令の処理時に例外が検出された場合に、その
例外条件が後続の命令に関連して処理される遅延例外処
理モデルに従って構築された遅延例外処理プロセッサに
よって処理されるように構築された被エミュレート・プ
ログラム命令のエミュレーションを容易にするために、
前記厳密例外処理プロセッサに少なくとも1つの命令を
与える制御サブシステムとを備え、前記厳密例外処理プ
ロセッサを制御する制御サブシステムによって与えるら
れる前記命令が、 i.未処理例外指示器が未処理例外指示状態であるかど
うかを判定し、そうである場合、未処理例外処理ルーチ
ンを呼び出して未処理の例外を処理し、 ii.被エミュレート処理命令に従って処理動作を実行
し、 iii.処理動作時に例外条件が検出された場合、プロ
セッサの厳密例外処理モデルに従って例外ハンドラを呼
び出し、前記未処理例外指示器を前記未処理例外指示状
態に条件付け、それによって、この例外条件が後続の被
エミュレート・プログラム命令の処理動作時に処理され
るようにするように前記厳密処理プロセッサを制御する
ことを特徴とするディジタル・コンピュータ・システ
ム。 - 【請求項2】 さらに、選択されたタイプの少なくとも
1つの命令によって制御される厳密例外処理プロセッサ
によるアクセスが可能な情報を記憶し、アクセスが、ア
クセス許可状態と非アクセス許可状態とを有し、アクセ
ス許可状態が非未処理状態に対応し非アクセス許可状態
が未処理例外状態に対応するように未処理例外指示器に
対応する、アクセス指示器に応答して制御することがで
きるメモリ自体の少なくとも一部へのアクセスであるメ
モリを備え、制御サブシステムが、厳密例外処理プロセ
ッサがアクセス指示器を試験し、アクセス指示器が非ア
クセス許可状態である場合、前記未処理例外処理ルーチ
ンを呼び出すことができるようにする前記選択されたタ
イプの少なくとも1つの命令を与えることを特徴とする
請求項1に記載のディジタル・コンピュータ・システ
ム。 - 【請求項3】 ある命令に関連して例外条件が検出され
た場合にその例外条件がその命令に関連して処理される
厳密例外処理モデルに従って構築され、未処理例外指示
条件と非未処理例外指示状態とを有する未処理例外指示
器を含む、命令の制御下で処理動作を実行する厳密処理
プロセッサを制御し、ある命令の処理時に例外が検出さ
れた場合にその例外条件が後続の命令に関連して処理さ
れる遅延例外処理モデルに従って構築された遅延例外処
理プロセッサによって処理されるように構築された少な
くとも1つの被エミュレート命令を前記厳密例外処理プ
ロセッサがエミュレートすることができるように少なく
とも1つの命令によってイネーブルされる一連のステッ
プを含み、前記厳密例外処理プロセッサを制御する命令
が、 A.未処理例外指示器が未処理例外指示状態であるかど
うかを判定し、そうである場合、未処理の例外を処理す
るルーチンを呼び出し、未処理例外指示器を非未処理指
示状態に条件付け、 B.被エミュレート処理命令に従って処理動作を実行
し、 C.前記処理動作時に例外条件が検出された場合、プロ
セッサの厳密例外処理モデルに従って例外ハンドラを呼
び出し、前記未処理例外指示器を前記未処理例外指示状
態に条件付け、それによって、この例外条件が後続の被
エミュレート・プログラム命令の処理動作時に処理され
るようにするように前記厳密処理プロセッサを制御する
ことを特徴とする方法。 - 【請求項4】 前記厳密例外処理プロセッサが、未処理
例外指示器が未処理例外指示状態である場合に、未処理
例外指示器を非未処理例外指示状態に条件付けることが
できるようにするステップを含むことを特徴とする請求
項3に記載の方法。 - 【請求項5】 アクセスが、アクセス許可状態と非アク
セス許可状態とを有するアクセス指示器に応答して制御
することができるメモリ自体の少なくとも一部へのアク
セスであり、前記アクセス指示器は、アクセス許可状態
が非未処理状態に対応し非アクセス許可状態が未処理例
外状態に対応するように未処理例外指示器に対応すると
きに、選択されたタイプの少なくとも1つの命令によっ
て制御される厳密例外処理プロセッサによるアクセスが
可能な情報を記憶するメモリをさらに備え、厳密例外処
理プロセッサがアクセス指示器を試験し、アクセス指示
器が非アクセス許可状態である場合、前記未処理例外処
理ルーチンを呼び出すことができるようにする前記選択
されたタイプの少なくとも1つの命令を与えるステップ
を含むことを特徴とする請求項3に記載の方法。 - 【請求項6】 ある命令の処理時に例外が検出された場
合にその例外条件が後続の命令に関連して処理される遅
延例外処理モデルに従って構築された遅延例外処理プロ
セッサによって処理されるように構築された少なくとも
1つの被エミュレート・プログラム命令に応答して、あ
る命令に関連して例外条件が検出された場合にその例外
条件がその命令に関連して処理される厳密例外処理モデ
ルに従って構築され、未処理例外指示条件と非未処理例
外指示状態とを有する未処理例外指示器を含む厳密処理
プロセッサによって処理される少なくとも1つの命令を
生成し、前記少なくとも1つの被エミュレート命令に応
答して、少なくとも1つの命令を生成し、前記少なくと
も1つの命令が、 A.未処理例外指示器が未処理例外指示状態であるかど
うかを判定し、そうである場合、未処理例外処理ルーチ
ンを呼び出して未処理の例外を処理し、 B.被エミュレート処理命令に従って処理動作を実行
し、 C.前記処理動作時に例外条件が検出された場合、プロ
セッサの厳密例外処理モデルに従って例外ハンドラを呼
び出し、前記未処理例外指示器を前記未処理例外指示状
態に条件付け、それによって、この例外条件が後続の被
エミュレート・プログラム命令の処理動作時に処理され
るようにするように前記厳密処理プロセッサを制御する
ことを特徴とする変換システム。 - 【請求項7】 ある命令の処理時に例外が検出された場
合にその例外条件が後続の命令に関連して処理される遅
延例外処理モデルに従って構築された遅延例外処理プロ
セッサによって処理されるように構築された少なくとも
1つの被エミュレート・プログラム命令に応答して、あ
る命令に関連して例外条件が検出された場合にその例外
条件がその命令に関連して処理される厳密例外処理モデ
ルに従って構築され、未処理例外指示条件と非未処理例
外指示状態とを有する未処理例外指示器を含む厳密処理
プロセッサによって処理される少なくとも1つの命令を
生成し、前記変換プロセッサが、前記少なくとも1つの
被エミュレート命令に応答して、前記1つの命令が、 A.前記少なくとも1つの被エミュレート・プログラム
命令を受け取るステップと、 B. i.未処理例外指示器が未処理例外指示状態であるかど
うかを判定し、そうである場合、未処理例外処理ルーチ
ンを呼び出して未処理の例外を処理し、 ii.被エミュレート処理命令に従って処理動作を実行
し、 iii.前記処理動作時に例外条件が検出された場合、
プロセッサの厳密例外処理モデルに従って例外ハンドラ
を呼び出し、前記未処理例外指示器を前記未処理例外指
示状態に条件付け、それによって、この例外条件が後続
の被エミュレート・プログラム命令の処理動作時に処理
されるようにするように前記厳密処理プロセッサを制御
する前記命令を生成するステップとを実行するよう前記
厳密処理プロセッサを制御することを特徴とする変換方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/602158 | 1996-02-15 | ||
US08/602,158 US5778211A (en) | 1996-02-15 | 1996-02-15 | Emulating a delayed exception on a digital computer having a corresponding precise exception mechanism |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1021089A true JPH1021089A (ja) | 1998-01-23 |
Family
ID=24410216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9048418A Pending JPH1021089A (ja) | 1996-02-15 | 1997-02-17 | 対応する厳密例外機構を有するディジタル・コンピュータ上での遅延例外のエミュレート |
Country Status (6)
Country | Link |
---|---|
US (1) | US5778211A (ja) |
EP (1) | EP0790556A3 (ja) |
JP (1) | JPH1021089A (ja) |
KR (1) | KR970062898A (ja) |
CN (1) | CN1164704A (ja) |
TW (1) | TW494312B (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049868A (en) * | 1997-06-25 | 2000-04-11 | Sun Microsystems, Inc. | Apparatus for delivering precise traps and interrupts in an out-of-order processor |
US6052777A (en) * | 1997-06-25 | 2000-04-18 | Sun Microsystems, Inc. | Method for delivering precise traps and interrupts in an out-of-order processor |
JPH1153223A (ja) * | 1997-08-01 | 1999-02-26 | Sony Corp | データ処理方法、記録媒体及び電子機器 |
US6173248B1 (en) * | 1998-02-09 | 2001-01-09 | Hewlett-Packard Company | Method and apparatus for handling masked exceptions in an instruction interpreter |
US6397242B1 (en) | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US8631066B2 (en) * | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
US7516453B1 (en) * | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
US6728865B1 (en) | 1999-10-20 | 2004-04-27 | Transmeta Corporation | Pipeline replay support for unaligned memory operations |
US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
US6826682B1 (en) | 2000-06-26 | 2004-11-30 | Transmeta Corporation | Floating point exception handling in pipelined processor using special instruction to detect generated exception and execute instructions singly from known correct state |
US6928582B2 (en) * | 2002-01-04 | 2005-08-09 | Intel Corporation | Method for fast exception handling |
GB0315844D0 (en) | 2003-07-04 | 2003-08-13 | Transitive Ltd | Method and apparatus for performing adjustable precision exception handling |
US7684973B2 (en) * | 2005-12-29 | 2010-03-23 | Bull Hn Information Systems Inc. | Performance improvement for software emulation of central processor unit utilizing signal handler |
US7930707B2 (en) * | 2006-05-10 | 2011-04-19 | Oracle International Corp. | Optimizing code motion with delayed exception handling |
MX2009007876A (es) * | 2007-01-24 | 2009-07-31 | Ibm | Metodo para emular eficientemente configuraciones de codigos de condiciones de arquitectura de computadora. |
US8473930B2 (en) * | 2008-11-05 | 2013-06-25 | Oracle America, Inc. | Handling signals and exceptions in a dynamic translation environment |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9053025B2 (en) * | 2012-12-28 | 2015-06-09 | Intel Corporation | Apparatus and method for fast failure handling of instructions |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
CN114297647B (zh) * | 2021-12-24 | 2022-10-04 | 海光信息技术股份有限公司 | 一种程序安全性检测方法及相关装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2203572B (en) * | 1987-03-24 | 1991-11-27 | Insignia Solutions Limited | Improvements in data processing means |
US5113521A (en) * | 1988-03-18 | 1992-05-12 | Digital Equipment Corporation | Method and apparatus for handling faults of vector instructions causing memory management exceptions |
US5197138A (en) * | 1989-12-26 | 1993-03-23 | Digital Equipment Corporation | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5307504A (en) * | 1991-03-07 | 1994-04-26 | Digital Equipment Corporation | System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events |
TW197505B (ja) * | 1991-03-07 | 1993-01-01 | Digital Equipment Corp |
-
1996
- 1996-02-15 US US08/602,158 patent/US5778211A/en not_active Expired - Fee Related
-
1997
- 1997-02-14 EP EP97300949A patent/EP0790556A3/en not_active Withdrawn
- 1997-02-15 KR KR1019970004632A patent/KR970062898A/ko not_active Application Discontinuation
- 1997-02-15 CN CN97104805A patent/CN1164704A/zh active Pending
- 1997-02-17 JP JP9048418A patent/JPH1021089A/ja active Pending
- 1997-03-18 TW TW086103387A patent/TW494312B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN1164704A (zh) | 1997-11-12 |
US5778211A (en) | 1998-07-07 |
KR970062898A (ko) | 1997-09-12 |
EP0790556A2 (en) | 1997-08-20 |
EP0790556A3 (en) | 2000-07-19 |
TW494312B (en) | 2002-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1021089A (ja) | 対応する厳密例外機構を有するディジタル・コンピュータ上での遅延例外のエミュレート | |
US7574709B2 (en) | VEX-virtual extension framework | |
US9189263B1 (en) | Object synchronization in shared object space | |
US8505006B1 (en) | Resource management in virtual machines using dynamic table for performing resource queries | |
US6064815A (en) | System and method for generating fix-up code facilitating avoidance of an exception of a predetermined type in a digital computer system | |
US5655146A (en) | Coexecution processor isolation using an isolation process or having authority controls for accessing system main storage | |
US20050246453A1 (en) | Providing direct access to hardware from a virtual environment | |
US20070118725A1 (en) | CPU life-extension apparatus and method | |
JPH0242569A (ja) | ベクター処理システムに用いる文脈スイッチング方法及び装置 | |
JPH1055281A (ja) | 非セグメント化仮想アドレス空間を備えるマイクロプロセッサによってセグメント化仮想アドレス空間をエミュレートするシステムおよび方法 | |
US5761491A (en) | Data processing system and method for storing and restoring a stack pointer | |
US5276884A (en) | Controlling the initiation of logical systems in a data processing system with logical processor facility | |
JP2004258840A (ja) | 仮想化されたi/oデバイスをもつ計算機システム | |
US4991083A (en) | Method and system for extending address space for vector processing | |
US5003468A (en) | Guest machine execution control system for virutal machine system | |
US20120179901A1 (en) | Computer apparatus | |
JP3169624B2 (ja) | プロセッサ間通信方法およびそのための並列プロセッサ | |
US5903739A (en) | System and method for processing load instruction in accordance with "no-fault" processing facility including arrangement for preserving access fault indicia | |
JPH0192856A (ja) | アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法 | |
US5797039A (en) | Method of efficiently sending packets onto a network by eliminating an interrupt | |
JP3252464B2 (ja) | 仮想計算機システム | |
JP3125790B2 (ja) | アドレス変換装置 | |
CN117762572A (zh) | 宿主机与虚拟机共享目录文件系统的卸载方法及设备 | |
JP2001273155A (ja) | オペレーティングシステム | |
JPS6119048B2 (ja) |