JP2000322269A - エミュレーションシステム - Google Patents
エミュレーションシステムInfo
- Publication number
- JP2000322269A JP2000322269A JP11129294A JP12929499A JP2000322269A JP 2000322269 A JP2000322269 A JP 2000322269A JP 11129294 A JP11129294 A JP 11129294A JP 12929499 A JP12929499 A JP 12929499A JP 2000322269 A JP2000322269 A JP 2000322269A
- Authority
- JP
- Japan
- Prior art keywords
- exception
- instruction
- unit
- program
- target
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 ホストプロセッサで直接実行可能な機械語命
令の実行ステップ数やコードサイズを削減可能にする。 【解決手段】 例外発生状態検出手段104によってホ
ストプロセッサで実行可能な機械語命令形式に変換され
た一連の命令列を一括実行しているときに発生したと判
断された場合に、ターゲットプロセッサ用プログラムの
アドレスとホストプロセッサで直接実行可能な機械語命
令形式に変換された一連の命令列のアドレスとを関連付
け、ホストプロセッサで直接実行可能な機械語命令形式
に最適に変換されたときの最適化処理によって更新が省
略されたターゲットプロセッサのコンテキストを管理さ
せ、最適化処理によって更新が省略されたターゲットプ
ロセッサのコンテキストを復元させる。
令の実行ステップ数やコードサイズを削減可能にする。 【解決手段】 例外発生状態検出手段104によってホ
ストプロセッサで実行可能な機械語命令形式に変換され
た一連の命令列を一括実行しているときに発生したと判
断された場合に、ターゲットプロセッサ用プログラムの
アドレスとホストプロセッサで直接実行可能な機械語命
令形式に変換された一連の命令列のアドレスとを関連付
け、ホストプロセッサで直接実行可能な機械語命令形式
に最適に変換されたときの最適化処理によって更新が省
略されたターゲットプロセッサのコンテキストを管理さ
せ、最適化処理によって更新が省略されたターゲットプ
ロセッサのコンテキストを復元させる。
Description
【0001】
【発明の属する技術分野】この発明は、あるアーキテク
チャのターゲットプロセッサ用に記述されたプログラム
を、別のアーキテクチャのホストプロセッサ上で実行さ
せるエミュレーションシステムに関する。
チャのターゲットプロセッサ用に記述されたプログラム
を、別のアーキテクチャのホストプロセッサ上で実行さ
せるエミュレーションシステムに関する。
【0002】
【従来の技術】一般に、一つのアーキテクチャのターゲ
ットプロセッサ用に記述されたプログラムを別々のアー
キテクチャのホストプロセッサ上でエミュレートするエ
ミュレーションシステムでは、そのエミュレーションの
実行上は省略しても動作に矛盾を起さないコンテキスト
の更新処理が、命令実行中に発生しうる例外に備えて、
記述されている。
ットプロセッサ用に記述されたプログラムを別々のアー
キテクチャのホストプロセッサ上でエミュレートするエ
ミュレーションシステムでは、そのエミュレーションの
実行上は省略しても動作に矛盾を起さないコンテキスト
の更新処理が、命令実行中に発生しうる例外に備えて、
記述されている。
【0003】
【発明が解決しようとする課題】しかしながら、かかる
従来のエミュレーションシステムにあっては、ホストプ
ロセッサで直接実行可能な機械語命令形式に最適に変換
した命令列であっても、ターゲットプロセッサ用に記述
されたプログラムの機械語1命令毎にコンテキストの変
更を正しく反映させることによって、実行ステップ数を
増大させてしまうという課題があり、また、このような
実行ステップ数の増大が、結果としてホストプロセッサ
で直接実行可能な機械語命令の実行時間を増加させてし
まうという課題があった。
従来のエミュレーションシステムにあっては、ホストプ
ロセッサで直接実行可能な機械語命令形式に最適に変換
した命令列であっても、ターゲットプロセッサ用に記述
されたプログラムの機械語1命令毎にコンテキストの変
更を正しく反映させることによって、実行ステップ数を
増大させてしまうという課題があり、また、このような
実行ステップ数の増大が、結果としてホストプロセッサ
で直接実行可能な機械語命令の実行時間を増加させてし
まうという課題があった。
【0004】この発明は前記課題を解決するものであ
り、ホストプロセッサで直接実行可能な機械語命令の実
行ステップ数やコードサイズを削減できるようにし、か
つホストプロセッサで直接実行可能な機械語命令の実行
時間を削減できるエミュレーションシステムを提供する
ことを目的とする。
り、ホストプロセッサで直接実行可能な機械語命令の実
行ステップ数やコードサイズを削減できるようにし、か
つホストプロセッサで直接実行可能な機械語命令の実行
時間を削減できるエミュレーションシステムを提供する
ことを目的とする。
【0005】
【課題を解決するための手段】前記目的を達成するため
に、請求項1の発明にかかるエミュレーションシステム
は、ターゲットプロセッサ用に記述されたターゲットプ
ログラムの機械語命令を1命令ずつ翻訳・実行したり、
ホストプロセッサで直接実行可能な機械語命令形式に最
適に変換された一連の命令列を一括実行する命令翻訳・
実行手段と、該命令翻訳・実行手段によってエミュレー
トしているとき発生する例外を捕らえる例外捕捉手段
と、該例外捕捉手段によって捕捉された例外が、ターゲ
ットプロセッサ用に記述されたプログラムの機械語命令
を1命令ずつ翻訳・実行しているときに発生したもの
か、ホストプロセッサで直接実行可能な機械語命令形式
に最適に変換された一連の命令列を一括実行していると
きに発生したものかを判断する例外発生状態検出手段
と、該例外発生状態検出手段によってホストプロセッサ
で直接実行可能な機械語命令形式に最適に変換された一
連の命令列を一括実行しているときに例外が発生したと
判断された場合に、ターゲットプロセッサ用プログラム
のアドレスとホストプロセッサで直接実行可能な機械語
命令形式に変換された一連の命令列のアドレスとを関連
付けるアドレス変換手段とを有し、最適化処理管理手段
に、前記ホストプロセッサで直接実行可能な機械語命令
形式に最適に変換されたときの最適化処理によって更新
が省略されたターゲットプロセッサのコンテキストを管
理させ、最適化処理復元手段に、前記最適化処理によっ
て更新が省略されたターゲットプロセッサのコンテキス
トを復元させ、例外通知手段に、前記ターゲットプロセ
ッサの例外ハンドラをエミュレートしている例外ハンド
ル部に例外を通知させるようにしたものである。
に、請求項1の発明にかかるエミュレーションシステム
は、ターゲットプロセッサ用に記述されたターゲットプ
ログラムの機械語命令を1命令ずつ翻訳・実行したり、
ホストプロセッサで直接実行可能な機械語命令形式に最
適に変換された一連の命令列を一括実行する命令翻訳・
実行手段と、該命令翻訳・実行手段によってエミュレー
トしているとき発生する例外を捕らえる例外捕捉手段
と、該例外捕捉手段によって捕捉された例外が、ターゲ
ットプロセッサ用に記述されたプログラムの機械語命令
を1命令ずつ翻訳・実行しているときに発生したもの
か、ホストプロセッサで直接実行可能な機械語命令形式
に最適に変換された一連の命令列を一括実行していると
きに発生したものかを判断する例外発生状態検出手段
と、該例外発生状態検出手段によってホストプロセッサ
で直接実行可能な機械語命令形式に最適に変換された一
連の命令列を一括実行しているときに例外が発生したと
判断された場合に、ターゲットプロセッサ用プログラム
のアドレスとホストプロセッサで直接実行可能な機械語
命令形式に変換された一連の命令列のアドレスとを関連
付けるアドレス変換手段とを有し、最適化処理管理手段
に、前記ホストプロセッサで直接実行可能な機械語命令
形式に最適に変換されたときの最適化処理によって更新
が省略されたターゲットプロセッサのコンテキストを管
理させ、最適化処理復元手段に、前記最適化処理によっ
て更新が省略されたターゲットプロセッサのコンテキス
トを復元させ、例外通知手段に、前記ターゲットプロセ
ッサの例外ハンドラをエミュレートしている例外ハンド
ル部に例外を通知させるようにしたものである。
【0006】また、請求項2の発明にかかるエミュレー
ションシステムは、前記ターゲットプロセッサ用に記述
されたターゲットプログラムを、ターゲットプログラム
部に記憶させるようにしたものである。
ションシステムは、前記ターゲットプロセッサ用に記述
されたターゲットプログラムを、ターゲットプログラム
部に記憶させるようにしたものである。
【0007】また、請求項3の発明にかかるエミュレー
ションシステムは、前記ターゲットプログラムの一部ま
たは全部をホストプロセッサで直接実行可能な機械語形
式に変換した命令列を、ホストプログラム部に記憶させ
るようにしたものである。
ションシステムは、前記ターゲットプログラムの一部ま
たは全部をホストプロセッサで直接実行可能な機械語形
式に変換した命令列を、ホストプログラム部に記憶させ
るようにしたものである。
【0008】また、請求項4の発明にかかるエミュレー
ションシステムは、前記命令翻訳・実行手段が発生した
例外を、前記例外ハンドル部に制御を渡す前に、前記捕
捉手段によって捕捉させるようにしたものである。
ションシステムは、前記命令翻訳・実行手段が発生した
例外を、前記例外ハンドル部に制御を渡す前に、前記捕
捉手段によって捕捉させるようにしたものである。
【0009】また、請求項5の発明にかかるエミュレー
ションシステムは、前記例外発生状態検出手段に、例外
が発生したアドレスの最上位ビットにもとづいて、その
例外がホストプログラム部の命令を実行中に発生したと
判定させるようにしたものである。
ションシステムは、前記例外発生状態検出手段に、例外
が発生したアドレスの最上位ビットにもとづいて、その
例外がホストプログラム部の命令を実行中に発生したと
判定させるようにしたものである。
【0010】また、請求項6の発明にかかるエミュレー
ションシステムは、前記命令列をホストプログラムへ記
憶させるとともに、前記ターゲットプログラムとホスト
プログラムとのアドレスの関連付けを行う情報をアドレ
ス変換部に記憶させ、さらに最適化処理に関する情報を
最適化管理部に記憶させる命令変換手段を設けたもので
ある。
ションシステムは、前記命令列をホストプログラムへ記
憶させるとともに、前記ターゲットプログラムとホスト
プログラムとのアドレスの関連付けを行う情報をアドレ
ス変換部に記憶させ、さらに最適化処理に関する情報を
最適化管理部に記憶させる命令変換手段を設けたもので
ある。
【0011】
【発明の実施の形態】以下に、この発明の実施の一形態
を図について詳細に説明する。図1において、1はホス
トプロセッサによって動作するデータ処理装置、2は情
報を記憶する記憶装置で、これらのうちデータ処理装置
1はプログラム変換部11,エミュレート部12および
例外ハンドル部13を備えている。一方、記憶装置2
は、ターゲットプロセッサ用に記述されたプログラムを
記憶するターゲットプログラム部21と、プログラム変
換部11によってターゲットプログラム部21の一部ま
たは全部をホストプロセッサで直接実行可能な機械語形
式に変換した命令列を記憶するホストプログラム部22
と、アドレス変換部23と、最適化管理部24とを備え
ている。
を図について詳細に説明する。図1において、1はホス
トプロセッサによって動作するデータ処理装置、2は情
報を記憶する記憶装置で、これらのうちデータ処理装置
1はプログラム変換部11,エミュレート部12および
例外ハンドル部13を備えている。一方、記憶装置2
は、ターゲットプロセッサ用に記述されたプログラムを
記憶するターゲットプログラム部21と、プログラム変
換部11によってターゲットプログラム部21の一部ま
たは全部をホストプロセッサで直接実行可能な機械語形
式に変換した命令列を記憶するホストプログラム部22
と、アドレス変換部23と、最適化管理部24とを備え
ている。
【0012】また、前記プログラム変換部11は命令変
換手段101を備え、前記エミュレート部12は、命令
翻訳・実行手段102,例外捕捉手段103,例外発生
状態検出手段104,アドレス変換手段105,最適化
処理管理手段106,最適化処理復元手段107および
例外通知手段108を備えている。そして、これらのう
ち、命令変換手段101は、ターゲットプログラム部2
1の機械語命令の一部または全部をホストプロセッサで
直接実行可能な機械語命令形式に最適に変換を行い、ホ
ストプログラム部22に記憶させる。また、この命令変
換手段101はターゲットプログラム部21とホストプ
ログラム部22のアドレスの関連付けを行う情報をアド
レス変換部23に記憶させ、最適化処理に関する情報を
最適化管理部24に記憶させるように機能する。
換手段101を備え、前記エミュレート部12は、命令
翻訳・実行手段102,例外捕捉手段103,例外発生
状態検出手段104,アドレス変換手段105,最適化
処理管理手段106,最適化処理復元手段107および
例外通知手段108を備えている。そして、これらのう
ち、命令変換手段101は、ターゲットプログラム部2
1の機械語命令の一部または全部をホストプロセッサで
直接実行可能な機械語命令形式に最適に変換を行い、ホ
ストプログラム部22に記憶させる。また、この命令変
換手段101はターゲットプログラム部21とホストプ
ログラム部22のアドレスの関連付けを行う情報をアド
レス変換部23に記憶させ、最適化処理に関する情報を
最適化管理部24に記憶させるように機能する。
【0013】さらに、前記命令翻訳・実行手段102
は、ターゲットプログラム部21から読み込んだターゲ
ットプログラムの機械語命令を1命令ずつ翻訳しながら
実行したり、ターゲットプログラムが変換されてホスト
プログラム部22に記憶されている場合はホストプログ
ラム部22の命令を直接実行するように機能する。例外
捕捉手段103は、命令翻訳・実行手段102によって
エミュレーションが行われているときに発生する例外を
捕捉するものである。また、前記例外発生状態検出手段
104は、例外捕捉手段103によって捕捉された例外
がターゲットプログラム部21の命令を翻訳・実行して
いるときに発生したものかホストプログラム部22の命
令を実行しているときに発生したものかを判別するよう
に機能する。
は、ターゲットプログラム部21から読み込んだターゲ
ットプログラムの機械語命令を1命令ずつ翻訳しながら
実行したり、ターゲットプログラムが変換されてホスト
プログラム部22に記憶されている場合はホストプログ
ラム部22の命令を直接実行するように機能する。例外
捕捉手段103は、命令翻訳・実行手段102によって
エミュレーションが行われているときに発生する例外を
捕捉するものである。また、前記例外発生状態検出手段
104は、例外捕捉手段103によって捕捉された例外
がターゲットプログラム部21の命令を翻訳・実行して
いるときに発生したものかホストプログラム部22の命
令を実行しているときに発生したものかを判別するよう
に機能する。
【0014】前記アドレス変換手段105は、例外発生
状態検出手段104によってホストプログラム部22の
命令を実行しているときに例外が発生したと判断された
ときに、アドレス変換部23を参照して、例外の発生し
たホストプログラム部22のアドレスをターゲットプロ
グラム部21のアドレスに変換するように機能する。ま
た、最適化処理管理手段106は、アドレス変換手段1
05によって得られたアドレスから最適化管理部24を
参照して、ホストプログラム部22の例外が発生した時
点で更新が省略されているコンテキストを特定するもの
である。さらに、前記最適化処理復元手段107は、最
適化処理管理手段106によって特定されたコンテキス
トを最適化管理部24の情報を元に復元し、例外通知手
段108は、例外ハンドル部13に例外を通知するよう
に機能する。
状態検出手段104によってホストプログラム部22の
命令を実行しているときに例外が発生したと判断された
ときに、アドレス変換部23を参照して、例外の発生し
たホストプログラム部22のアドレスをターゲットプロ
グラム部21のアドレスに変換するように機能する。ま
た、最適化処理管理手段106は、アドレス変換手段1
05によって得られたアドレスから最適化管理部24を
参照して、ホストプログラム部22の例外が発生した時
点で更新が省略されているコンテキストを特定するもの
である。さらに、前記最適化処理復元手段107は、最
適化処理管理手段106によって特定されたコンテキス
トを最適化管理部24の情報を元に復元し、例外通知手
段108は、例外ハンドル部13に例外を通知するよう
に機能する。
【0015】次に、図2および図3のフローチャートを
参照しながら全体の動作を説明する。まず、命令変換手
段101はターゲットプロセッサ用に記述されたターゲ
ットプログラムを、あらかじめまたはエミュレーション
実行中に、以下のようにホストプロセッサで直接実行可
能な機械語命令形式に変換する。すなわち、ターゲット
プログラム部21からプログラムを読み込み、ホストプ
ロセッサで直接実行可能な機械語命令形式に最適に変換
し(ステップA1)、変換したコードをホストプログラ
ム部22に記憶させる(ステップA2)。さらに、これ
に並行してターゲットプログラム部21とホストプログ
ラム部22とのアドレスを関連付けるための情報をアド
レス変換部23に記憶させ(ステップA3)、続いて最
適化処理によって更新を省略したコンテキストに関する
情報を最適化管理部24に記憶させる(ステップA
4)。
参照しながら全体の動作を説明する。まず、命令変換手
段101はターゲットプロセッサ用に記述されたターゲ
ットプログラムを、あらかじめまたはエミュレーション
実行中に、以下のようにホストプロセッサで直接実行可
能な機械語命令形式に変換する。すなわち、ターゲット
プログラム部21からプログラムを読み込み、ホストプ
ロセッサで直接実行可能な機械語命令形式に最適に変換
し(ステップA1)、変換したコードをホストプログラ
ム部22に記憶させる(ステップA2)。さらに、これ
に並行してターゲットプログラム部21とホストプログ
ラム部22とのアドレスを関連付けるための情報をアド
レス変換部23に記憶させ(ステップA3)、続いて最
適化処理によって更新を省略したコンテキストに関する
情報を最適化管理部24に記憶させる(ステップA
4)。
【0016】一方、命令翻訳・実行手段102はターゲ
ットプログラム部21から読み込んだターゲットプログ
ラムの機械語命令を1命令ずつ翻訳しながら実行し、ま
たはターゲットプログラムが変換されてホストプログラ
ム部22に記憶されている場合は、ホストプログラム部
22の命令を直接実行する(ステップB1)。このとき
(エミュレーションが行われているとき)、何らかの例
外が発生すると(ステップB2)、例外ハンドル部に制
御を渡す前に、例外捕捉手段103によってその例外を
捕捉する(ステップB3)。次に、例外発生状態検出手
段104によって、こうして捕捉された例外がターゲッ
トプログラム部21の命令を翻訳・実行しているときに
発生したものか、ホストプログラム部22の命令を実行
しているときに発生したものかを判別する(ステップB
4)。ここで、ホストプログラム部22の命令を実行し
ているときに例外が発生したと判断されたときに、アド
レス変換手段105がアドレス変換部23を参照して、
例外の発生したホストプログラム部22のアドレスを、
ターゲットプログラム部21のアドレスに変換する(ス
テップB5)。
ットプログラム部21から読み込んだターゲットプログ
ラムの機械語命令を1命令ずつ翻訳しながら実行し、ま
たはターゲットプログラムが変換されてホストプログラ
ム部22に記憶されている場合は、ホストプログラム部
22の命令を直接実行する(ステップB1)。このとき
(エミュレーションが行われているとき)、何らかの例
外が発生すると(ステップB2)、例外ハンドル部に制
御を渡す前に、例外捕捉手段103によってその例外を
捕捉する(ステップB3)。次に、例外発生状態検出手
段104によって、こうして捕捉された例外がターゲッ
トプログラム部21の命令を翻訳・実行しているときに
発生したものか、ホストプログラム部22の命令を実行
しているときに発生したものかを判別する(ステップB
4)。ここで、ホストプログラム部22の命令を実行し
ているときに例外が発生したと判断されたときに、アド
レス変換手段105がアドレス変換部23を参照して、
例外の発生したホストプログラム部22のアドレスを、
ターゲットプログラム部21のアドレスに変換する(ス
テップB5)。
【0017】さらに、こうして得られたアドレスから、
最適化管理手段106が最適化管理部24を参照して、
ホストプログラム部22の例外が発生した時点で更新が
省略されているコンテキストを特定する(ステップB
6)。また、最適化復元手段107が最適化管理部24
の情報を元に最適化管理手段106によって特定された
コンテキストを復元する(ステップB7)。そして最後
に、例外通知手段108によって例外ハンドル部13に
その例外を通知する(ステップB8)。このように、エ
ミュレーション実行中に発生した例外を例外ハンドル部
に直接通知させず、例外を発生させた状態によって処理
を切り分けるように構成されているため、ホストプロセ
ッサで直接実行できるように変換した命令列ではターゲ
ットプロセッサ用に記述されたプログラムの機械語1命
令毎にコンテキストの変更を正しく反映させる必要がな
く、実行ステップ数を削減できる。
最適化管理手段106が最適化管理部24を参照して、
ホストプログラム部22の例外が発生した時点で更新が
省略されているコンテキストを特定する(ステップB
6)。また、最適化復元手段107が最適化管理部24
の情報を元に最適化管理手段106によって特定された
コンテキストを復元する(ステップB7)。そして最後
に、例外通知手段108によって例外ハンドル部13に
その例外を通知する(ステップB8)。このように、エ
ミュレーション実行中に発生した例外を例外ハンドル部
に直接通知させず、例外を発生させた状態によって処理
を切り分けるように構成されているため、ホストプロセ
ッサで直接実行できるように変換した命令列ではターゲ
ットプロセッサ用に記述されたプログラムの機械語1命
令毎にコンテキストの変更を正しく反映させる必要がな
く、実行ステップ数を削減できる。
【0018】次に、具体例について図4を参照しながら
説明する。命令翻訳・実行手段102がホストプログラ
ム部22のコードを実行中にホストプログラムのアドレ
スD002h番地で例外が発生したとする(ステップC
1)。例外捕捉手段103がこの例外を捕捉し、例外発
生状態検出手段104にアドレスD002hで例外が発
生したことを通知する(ステップC2)。命令翻訳・実
行手段102がターゲットプログラム部21のコードを
翻訳・実行する命令が0000h番地から7FFFh番
地に格納されており、ホストプログラム部のコードが8
000h番地からFFFFh番地に格納されているとす
ると、例外発生状態検出手段104では、例外が発生し
たアドレスの最上位ビットが1であることを調べ、例外
がホストプログラム部の命令を実行中に発生したと判定
する(ステップC3)。
説明する。命令翻訳・実行手段102がホストプログラ
ム部22のコードを実行中にホストプログラムのアドレ
スD002h番地で例外が発生したとする(ステップC
1)。例外捕捉手段103がこの例外を捕捉し、例外発
生状態検出手段104にアドレスD002hで例外が発
生したことを通知する(ステップC2)。命令翻訳・実
行手段102がターゲットプログラム部21のコードを
翻訳・実行する命令が0000h番地から7FFFh番
地に格納されており、ホストプログラム部のコードが8
000h番地からFFFFh番地に格納されているとす
ると、例外発生状態検出手段104では、例外が発生し
たアドレスの最上位ビットが1であることを調べ、例外
がホストプログラム部の命令を実行中に発生したと判定
する(ステップC3)。
【0019】アドレス変換手段105では、例外が発生
したアドレスを使用してアドレス変換部23の変換テー
ブルを参照し、D000h番地より大きく、D008h
番地より小さいので、ターゲットプログラム部21の6
000h番地に対応する命令を実行しているときに、例
外が発生したと判定する(ステップC4)。ここで例外
発生時点のターゲットプロセッサのプログラムカウンタ
値をエミュレート部21のプログラムカウンタに反映さ
せる。最適化処理管理手段106では、最適化管理部2
4を参照し、命令変換手段101によって変換されたホ
ストプログラム部22の命令が、ターゲットプログラム
部21の6000h番地ではターゲットプロセッサのレ
ジスタ1がホストプロセッサのレジスタAに保持された
ままで更新されていないことを判定する(ステップC
4)。
したアドレスを使用してアドレス変換部23の変換テー
ブルを参照し、D000h番地より大きく、D008h
番地より小さいので、ターゲットプログラム部21の6
000h番地に対応する命令を実行しているときに、例
外が発生したと判定する(ステップC4)。ここで例外
発生時点のターゲットプロセッサのプログラムカウンタ
値をエミュレート部21のプログラムカウンタに反映さ
せる。最適化処理管理手段106では、最適化管理部2
4を参照し、命令変換手段101によって変換されたホ
ストプログラム部22の命令が、ターゲットプログラム
部21の6000h番地ではターゲットプロセッサのレ
ジスタ1がホストプロセッサのレジスタAに保持された
ままで更新されていないことを判定する(ステップC
4)。
【0020】最適化処理復元手段107では、ホストプ
ロセッサのレジスタAの値をターゲットプロセッサのレ
ジスタ1の値を保持するメモリエリアに記憶させ、レジ
スタ値の更新を反映させる(ステップC5)。最後に、
例外通知手段108で例外ハンドル部13に例外を通知
する(ステップA6)。
ロセッサのレジスタAの値をターゲットプロセッサのレ
ジスタ1の値を保持するメモリエリアに記憶させ、レジ
スタ値の更新を反映させる(ステップC5)。最後に、
例外通知手段108で例外ハンドル部13に例外を通知
する(ステップA6)。
【0021】
【発明の効果】以上のように、この発明によればホスト
プロセッサで直接実行できるプログラム中に、実行にタ
ーゲットプロセッサのコンテキストを更新する処理を含
まなくても、例外発生時にコンテキストの更新を復元さ
せることができ、この結果ホストプロセッサで直接実行
できるように変換されたプログラムを無駄な処理を含ま
ずに、高速に短時間で実行できるという効果が得られ
る。
プロセッサで直接実行できるプログラム中に、実行にタ
ーゲットプロセッサのコンテキストを更新する処理を含
まなくても、例外発生時にコンテキストの更新を復元さ
せることができ、この結果ホストプロセッサで直接実行
できるように変換されたプログラムを無駄な処理を含ま
ずに、高速に短時間で実行できるという効果が得られ
る。
【図1】 この発明の実施の一形態によるエミュレーシ
ョンシステムを示すブロック図である。
ョンシステムを示すブロック図である。
【図2】 図1におけるプログラム変換部の動作を示す
フローチャートである。
フローチャートである。
【図3】 図1におけるエミュレート部の動作を示すフ
ローチャートである。
ローチャートである。
【図4】 この発明の動作の具体例を示す説明図であ
る。
る。
11 プログラム変換部 13 例外ハンドル部 21 ターゲットプログラム部 22 ホストプログラム部 23 アドレス変換部 24 最適化管理部 101 命令変換手段 102 命令翻訳・実行手段 103 例外捕捉手段 104 例外発生状態検出手段 105 アドレス変換手段 106 最適化処理管理手段 107 最適化処理復元手段 108 例外通知手段
Claims (6)
- 【請求項1】 あるアーキテクチャのターゲットプロセ
ッサ用に記述されたターゲットプログラムを、別のアー
キテクチャのホストプロセッサ上でエミュレートするエ
ミュレーションシステムにおいて、 ターゲットプロセッサ用に記述されたターゲットプログ
ラムの機械語命令を1命令ずつ翻訳・実行したり、ホス
トプロセッサで直接実行可能な機械語命令形式に最適に
変換された一連の命令列を一括実行する命令翻訳・実行
手段と、 該命令翻訳・実行手段によってエミュレートしていると
き発生する例外を捕らえる例外捕捉手段と、 該例外捕捉手段によって捕捉された例外が、ターゲット
プロセッサ用に記述されたプログラムの機械語命令を1
命令ずつ翻訳・実行しているときに発生したものか、ホ
ストプロセッサで直接実行可能な機械語命令形式に最適
に変換された一連の命令列を一括実行しているときに発
生したものかを判断する例外発生状態検出手段と、 該例外発生状態検出手段によってホストプロセッサで直
接実行可能な機械語命令形式に最適に変換された一連の
命令列を一括実行しているときに例外が発生したと判断
された場合に、ターゲットプロセッサ用プログラムのア
ドレスとホストプロセッサで直接実行可能な機械語命令
形式に変換された一連の命令列のアドレスとを関連付け
るアドレス変換手段と、 前記ホストプロセッサで直接実行可能な機械語命令形式
に最適に変換されたときの最適化処理によって更新が省
略されたターゲットプロセッサのコンテキストについて
管理する最適化処理管理手段と、 前記最適化処理によって更新が省略されたターゲットプ
ロセッサのコンテキストを復元する最適化処理復元手段
と、 前記ターゲットプロセッサの例外ハンドラをエミュレー
トしている例外ハンドル部に例外を通知する例外通知手
段とを備えたことを特徴とするエミュレーションシステ
ム。 - 【請求項2】 前記ターゲットプロセッサ用に記述され
たターゲットプログラムが、ターゲットプログラム部に
記憶されていることを特徴とする請求項1に記載のエミ
ュレーションシステム。 - 【請求項3】 前記ターゲットプログラムの一部または
全部をホストプロセッサで直接実行可能な機械語形式に
変換した命令列が、ホストプログラム部に記憶されてい
ることを特徴とする請求項1に記載のエミュレーション
システム。 - 【請求項4】 前記命令翻訳・実行手段が発生した例外
を、前記例外ハンドル部に制御を渡す前に、前記捕捉手
段によって捕捉させることを特徴とする請求項1に記載
のエミュレーションシステム。 - 【請求項5】 前記例外発生状態検出手段が、例外が発
生したアドレスの最上位ビットにもとづいて、その例外
がホストプログラム部の命令を実行中に発生したと判定
することを特徴とする請求項1に記載のエミュレーショ
ンシステム。 - 【請求項6】 前記命令列をホストプログラムへ記憶さ
せるとともに、前記ターゲットプログラムとホストプロ
グラムとのアドレスの関連付けを行う情報をアドレス変
換部に記憶させ、さらに最適化処理に関する情報を最適
化管理部に記憶させる命令変換手段を設けたことを特徴
とする請求項3に記載のエミュレーションシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11129294A JP2000322269A (ja) | 1999-05-10 | 1999-05-10 | エミュレーションシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11129294A JP2000322269A (ja) | 1999-05-10 | 1999-05-10 | エミュレーションシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000322269A true JP2000322269A (ja) | 2000-11-24 |
Family
ID=15006024
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11129294A Pending JP2000322269A (ja) | 1999-05-10 | 1999-05-10 | エミュレーションシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000322269A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008537245A (ja) * | 2005-04-20 | 2008-09-11 | トランジティブ リミテッド | プログラム・コード変換中の例外を正確に処理するための方法及び装置 |
| JP2009541834A (ja) * | 2006-06-20 | 2009-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネイティブコードに結合中に例外処理するための例外処理システム、例外処理方法、変換装置、および記憶媒体 |
| JP2014194770A (ja) * | 2013-03-16 | 2014-10-09 | Intel Corp | 命令エミュレーションプロセッサ、方法、およびシステム |
-
1999
- 1999-05-10 JP JP11129294A patent/JP2000322269A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008537245A (ja) * | 2005-04-20 | 2008-09-11 | トランジティブ リミテッド | プログラム・コード変換中の例外を正確に処理するための方法及び装置 |
| JP2009541834A (ja) * | 2006-06-20 | 2009-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネイティブコードに結合中に例外処理するための例外処理システム、例外処理方法、変換装置、および記憶媒体 |
| US8458674B2 (en) | 2006-06-20 | 2013-06-04 | International Business Machines Corporation | Method and apparatus for handling exceptions during binding to native code |
| JP2014194770A (ja) * | 2013-03-16 | 2014-10-09 | Intel Corp | 命令エミュレーションプロセッサ、方法、およびシステム |
| US9703562B2 (en) | 2013-03-16 | 2017-07-11 | Intel Corporation | Instruction emulation processors, methods, and systems |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6895460B2 (en) | Synchronization of asynchronous emulated interrupts | |
| US7783867B2 (en) | Controlling instruction execution in a processing environment | |
| CN101730881B (zh) | 包括多个处理器的系统以及操作该系统的方法及设备 | |
| JPH0731624B2 (ja) | 非同期コプロセッサによるデータ移動方法および装置 | |
| JP5318197B2 (ja) | ホストデータ処理装置内におけるデバイスエミュレーションのサポート | |
| US6052530A (en) | Dynamic translation system and method for optimally translating computer code | |
| CA2811306A1 (en) | Single step processing of memory mapped accesses in a hypervisor | |
| CN119105846A (zh) | 基于用户态命令的cpu的内核调用栈获取方法及装置 | |
| US20020073359A1 (en) | System and method for high priority machine check analysis | |
| JP2009134565A (ja) | 仮想計算機システム及び仮想計算機システムの制御方法 | |
| JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
| JP2000322269A (ja) | エミュレーションシステム | |
| JPH07141176A (ja) | コマンドリトライ制御方式 | |
| CN101583926B (zh) | 利用缓冲器便于指令执行的方法和系统 | |
| TWI660307B (zh) | 二元碼轉譯裝置及方法 | |
| US7694301B1 (en) | Method and system for supporting input/output for a virtual machine | |
| US12008372B2 (en) | Techniques for reducing CPU privilege boundary crossings | |
| JP4192519B2 (ja) | 情報処理方法および装置 | |
| JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
| JP2793386B2 (ja) | 電子計算機の演算エラー情報保持装置 | |
| JP3130421B2 (ja) | プログラム解析方法および装置 | |
| JPH0219937A (ja) | 電子計算機システム | |
| JP2600861B2 (ja) | 入出力システムエリアエラー処理方式 | |
| JPS58215779A (ja) | デ−タ処理装置 | |
| JP2001318802A (ja) | インサーキットエミュレータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031209 |