JP4155052B2 - エミュレータ、エミュレーション方法およびプログラム - Google Patents
エミュレータ、エミュレーション方法およびプログラム Download PDFInfo
- Publication number
- JP4155052B2 JP4155052B2 JP2003039176A JP2003039176A JP4155052B2 JP 4155052 B2 JP4155052 B2 JP 4155052B2 JP 2003039176 A JP2003039176 A JP 2003039176A JP 2003039176 A JP2003039176 A JP 2003039176A JP 4155052 B2 JP4155052 B2 JP 4155052B2
- Authority
- JP
- Japan
- Prior art keywords
- main memory
- target machine
- machine
- failure
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明はエミュレータに関し、特にターゲットマシンと異なるアーキテクチャのプラットフォームマシン上で動作し、ターゲットマシンのプログラムをエミュレートするエミュレータに関する。
【0002】
【従来の技術】
ターゲットマシンのプログラムをエミュレートするエミュレータには、特許文献1に記載されるようにハードウェアで実現するものと、ソフトウェアで実現するものとが存在するが、本発明は後者のソフトウェアで実現されるエミュレータに関する。この種のエミュレータの実装環境を図4に示す。エミュレータ14は、プラットフォームマシンのプロセッサで実行されるソフトウェアであり、このエミュレータ14によりターゲットマシンのオペレーティングシステム(ターゲットOS)13が実行され、このターゲットOS13上でさらにターゲットマシンのミドルウェア12やアプリケーションプログラム11が稼働する。ここで、ターゲットOS13、ミドルウェア12およびアプリケーションプログラム11は、プラットフォームマシンの主記憶上の一部に確保したターゲットマシンの主記憶領域に置かれる。
【0003】
プラットフォームマシンのプロセッサは、プラットフォーム(ハードウェア)18およびプロセッサ(ハードウェア)17から構成されるハードウェアと、プロセッサファームウェア16およびプラットフォームファームウェア15から構成されるファームウェアとを含む。プラットフォーム(ハードウェア)18は、メモリ、メモリコントローラ等のチップセット、PCIバスなどを含んで構成され、プロセッサ(ハードウェア)17は、プラットフォーム(ハードウェア)18に接続されるプロセッサLSIに相当する。プロセッサファームウェア16は、プロセッサLSIに内蔵されるプロセッサ(ハードウェア)17固有のファームウェア、プラットフォームファームウェア15は、メモリの初期化などプラットフォーム(ハードウェア)18全体の制御を行うファームウェアである。なお、プロセッサ(ハードウェア)17としては任意のプロセッサLSIを使用することができるが、例えば一例を挙げれば、インテル社のIPF(Itanium(登録商標)Processor Family)を使用することができる。
【0004】
図5は、エミュレータ14がターゲットマシンの命令語をエミュレートする際の動作説明図である。図の上部から下に向かって順に参照して、まずターゲットマシンの命令語の取り出しを、命令カウンタ21に格納されたアドレスから開始する。命令カウンタ21は、プラットフォームのプロセッサのレジスタにマッピングされる。
【0005】
ターゲットマシンのメモリ空間(論理アドレス)は、プラットフォームマシン上で独立したアドレス空間にマッピングされており、メモリ空間(絶対アドレス)は、プラットフォームマシンのメモリ空間(絶対アドレス)の一部分にマッピングされている。命令カウンタ21で示されるターゲットマシンの命令語アドレス(論理アドレス)は、TLB22でプラットフォーム上の絶対アドレスへ変換された後、オペランドキャッシュ(O−Cache)23から命令語の取り出しに使われるが、ターゲットマシンの絶対アドレスは、プラットフォーム上にマッピングされたメモリ空間の先頭アドレスからのオフセットとなる。
【0006】
このようにして取り出された命令語24は、一例としてストア命令を挙げると図示したように先頭から命令コード(OP)、汎用レジスタ番号(GR)、ベースレジスタ番号(BR)、インデックスレジスタ番号(XR)、オフセットアドレス(D)が格納されている。取り出されたベースレジスタ番号(BR)とインデックスレジスタ番号(XR)から、レジスタの値を格納したテーブル25、26をそれぞれ参照し、演算器27においてテーブル25、26から取り出された値とオフセットアドレス(D)との加算を行って、実効論理アドレスを得る。
【0007】
続いて、得られた実効論理アドレスからTLB22を参照してプラットフォーム上にマッピングされた絶対アドレスを求め、汎用レジスタ番号(GR)からレジスタの値を格納したテーブル28を参照して得られたストアデータを、オペランドキャッシュ23へ書き込む。
【0008】
なお、ここで説明したTLB22とオペランドキャッシュ23は、命令実行中に命令取り出し時とストア時の2回使用されるため、図中には処理の流れに従って各々2個記載している。
【0009】
図6は上記で一例として説明したストア命令のエミュレート時の処理フローの例である。ここでは、エミュレータのコードをターゲットマシンの命令語毎のモジュールに分割して実装する場合を想定している。つまり、ターゲットマシンの例えばストア命令に対応して、ストア命令をエミュレートするために必要なエミュレータの一連のコードが一つのモジュールとして予め用意されており、図6はそのモジュールによる処理例を示している。また、命令語の取り出しは前半の命令コード(つまりOPコード)の取り出し(ステップ39)と後半の残り部分の取り出し(ステップ31)に分けて実行するが、処理速度を上げるために、モジュールの最後で次の命令の前半の命令コードを取り出すようにしている。従って、図6の処理フローでは、命令語の後半部分の取り出しから処理が始まっている。
【0010】
図6を参照すると、まず、命令語の後半を取り出し(ステップ31)、その命令語からベースレジスタ番号(BR)、インデックスレジスタ番号(XR)を取り出し、それぞれBR・XRの値が格納されたテーブル25、26を参照して値を取り出し(ステップ32)、オフセット値(D)を加算して論理アドレスを求める(ステップ33)。
【0011】
この後、論理アドレス生成時の例外チェックを行う(ステップ34)。ここで検出される例外は、ターゲットマシンのアーキテクチャによって相違するが、例えばアドレス加算時の回り込みなどである。例外が検出された場合は、例外処理を行う例外ハンドラへ移入して例外動作に入る(ステップ40)。
【0012】
一方で例外が検出されなければ、続いて論理アドレスから絶対アドレスへの変換を行う(ステップ35)。プロセッサハードウェアでは、この処理はTLBを用いて行われる部分だが、エミュレーションでは通常この変換もソフトウェアで行うことになる。
【0013】
続くステップでは、アドレス変換時の例外チェックを行う(ステップ36)。ハードウェアのTLBではアドレス変換と同時にリングによるメモリ保護のチェックや、ページの読み出し、書き込み保護のチェックを行うが、これに相当するチェックである。例外が検出された場合は、例外ハンドラへ処理が移り(ステップ40)、例外が検出されなければ続くステップ37へ進む。
【0014】
次のステップ37では、汎用レジスタ番号(GR)によるテーブル28の参照によりGRの値を取得し、この値をストアデータとして先に変換した絶対アドレスの番地へストアする。
【0015】
ストアが終わると、次の命令の実行に移るため、命令カウンタを更新し(ステップ38)、次命令の命令コード部分の取り出しを行う(ステップ39)。次命令を実行するためのエミュレーションコード(モジュール)への分岐は、ここで取り出した命令コードの値によって分岐先が決定される。
【0016】
【特許文献1】
特開2001−34498号公報
【0017】
【発明が解決しようとする課題】
次にプラットフォームのハードウェアに障害が発生した際の従来における動作を図4を参照して説明する。
【0018】
プラットフォームハードウェア18で例えば、主記憶上や主記憶とプロセッサとをつなぐバス上でECC等のハードウェアによる自動訂正が不可能な障害を検出した場合、プラットフォームハードウェア18は、プロセッサハードウェア17に割り込み等の手段を用いて障害の通知を行う。通知を受けたプロセッサは、実行中のプログラムを一時中断し、プロセッサファームウェア16の実行を開始する。また、プロセッサハードウェア17の内部で障害を検出した場合でも同様に当該プロセッサはプロセッサファームウェア16に割り込む。
【0019】
プロセッサファームウェア16は、検出された障害がプロセッサ内で訂正可能であれば訂正を試みる。訂正が可能なケースとしては、例えばプロセッサに内蔵されたストアスルーキャッシュの障害などが該当し、このケースでは障害を検出したデータブロックをキャッシュ上から破棄し、主記憶からデータを再取得する。訂正が成功すればプロセッサファームウェア16の処理は終了し、中断していたプログラムの実行が再開される。
【0020】
プロセッサファームウェア16で訂正ができなかった場合または障害がプロセッサの外のプラットフォームハードウェア18で検出されたものであれば、さらにプラットフォームファームウェア15へ処理が渡される。プラットフォームファームウェア15では、検出された障害が訂正可能であれば訂正を試みる。ファームウェアによる訂正が成功すればプラットフォームファームウェア15の処理は終了し、一旦プロセッサファームウェア16へ制御を経由した後、中断していたプログラムの実行が再開される。
【0021】
ここで、プラットフォームファームウェア15で訂正が出来ない障害の場合はさらにプラットフォームファームウェア15からエミュレータ14(一般にはオペレーティングシステム)へ制御を移し、障害からの復旧を試みる。しかしながら、このようなケースは例えば主記憶の読み出し時に主記憶上でECC(エラー訂正コード)での自動訂正が不可能な障害が発生してデータが破壊された場合や、バスを通じてプロセッサから主記憶へデータを書き込んだり、読み出したりした際にバス上でECCでの自動訂正が不可能な障害が発生してデータが破壊された場合などが該当するため、このようなケースを救済するには当該のメモリ領域を使用しているプロセスを特定した上で破壊されたデータ領域を破棄できるかどうかを判断する、あるいはプロセスの再実行によりデータが復旧できるかを判断する等の複雑な処理が必要となる。このようなリカバリを行うことは、エミュレータには一般に非常に困難であり、特にエミュレータの場合はその上で稼働するオペレーティングシステムのプロセスの状態を把握することが出来ないため、バスやメモリの訂正不能障害が発生した場合は復旧が不可能である。このため、必ずシステムダウンに至ってしまい、可用性の点で問題があった。
【0023】
本発明の目的は、ターゲットマシンと異なるアーキテクチャのプラットフォームマシン上でターゲットマシンのプログラムをエミュレートするエミュレータにおいて、エミュレーション実行中にプラットフォームマシン上で復旧不能なデータ破壊を伴う障害が発生した場合に、エミュレート側でデータの復旧を行い、システムダウンやリブートに至らずにエミュレーション処理の実行を継続することができるようにすることにある。
【0025】
【課題を解決するための手段】
本発明のエミュレータは、ターゲットマシンと異なるアーキテクチャのプラットフォームマシン上で動作し、前記プラットフォームマシンの主記憶の一部に確保された前記ターゲットマシンの主記憶に記憶された前記ターゲットマシンのプログラムをエミュレートするエミュレータにおいて、前記プラットフォームマシンの主記憶の他の部分に前記ターゲットマシンの主記憶のコピーである主記憶コピー領域を備え、前記ターゲットマシンのストア命令をエミュレートする際に前記ターゲットマシンの主記憶と前記主記憶コピー領域の両方に対して同じデータをストアし、前記ターゲットマシンのロード命令をエミュレートする際には前記ターゲットマシンの主記憶と前記主記憶コピー領域のうち前記ターゲットマシンの主記憶からのみデータをロードし、且つ、前記ターゲットマシンのプログラムをエミュレートしている際、前記ターゲットマシンの主記憶のリード及びライト時に前記プラットフォームマシンでデータの訂正不能障害が検出された場合、前記主記憶コピー領域の対応するデータを、前記ターゲットマシンの主記憶における前記訂正不能障害が検出されたデータにかかるメモリアドレスに書き戻した後、前記訂正不能障害が検出された時点の命令から実行を再開し、前記訂正不能障害が間欠障害であればエミュレート処理を継続することを特徴とする。
【0028】
【作用】
プラットフォームマシンの主記憶にターゲットマシンの主記憶とそのコピーである主記憶コピー領域を設け、ターゲットマシンのストア命令をエミュレートする際にターゲットマシンの主記憶と主記憶コピー領域の両方に対して同じデータをストアすることにより、訂正不能障害が発生した際にコピー領域からデータを書き戻すことができる。このため、エミュレート側でデータの復旧を行い、エミュレーション処理の実行を継続することができる。
【0030】
【発明の第1の実施の形態】
次に本発明の第1の実施の形態にかかるエミュレータについて図面を参照して詳細に説明する。
【0031】
本実施の形態にかかるエミュレータは、図4に示したエミュレータ14と同じく、プラットフォームマシンのプロセッサで実行されるソフトウェアであり、プラットフォームマシンの主記憶上の一部に確保したターゲットマシンの主記憶領域に記憶されたターゲットマシンのオペレーティングシステムおよびミドルウェアやアプリケーションプログラムをエミュレートする。但し、従来のエミュレータと異なり、プラットフォームマシンの主記憶上にターゲットマシンの主記憶領域とは別にそのターゲットマシンの主記憶のコピーを記録する記憶領域を置き、ターゲットマシンのストア命令をエミュレートする際に主記憶領域と主記憶のコピー領域の両方に対し同じデータをストアし、ロード命令をエミュレートする際には主記憶領域のみからデータをロードする。
【0032】
図1にプラットフォームマシンの主記憶上にターゲットマシン用の2つの領域を設定する例と本実施の形態にかかるエミュレータのストア命令のエミュレート時の処理フローを示す。
【0033】
ターゲットマシンの絶対アドレス空間は、プラットフォームマシンの主記憶50上の一部分にターゲットアドレス空間62としてマッピングされ、この領域62にターゲットマシンのオペレーティングシステムやアプリケーションプログラムを構成する命令コードやデータが格納される。また、この領域62とは別に、この領域62のコピーを格納する領域がターゲットアドレス空間(コピー)63としてマッピングされている。ここで、ターゲットアドレス空間(コピー)63の先頭アドレスは、ターゲットアドレス空間62の先頭アドレス+オフセットdの位置に設定されている。
【0034】
続いて本実施の形態の動作について説明する。以下では、基本的な命令としてストア命令とロード命令のみ説明するが、他の複雑な命令、例えばメモリアクセスを伴う演算命令やメモリ間のコピー命令なども同様に実現可能である。
【0035】
まず図1を参照して、ターゲットマシンのストア命令をエミュレートする際の動作を説明する。
【0036】
ストア命令の実行が開始されると、先に図6で説明した従来の技術と同様に、命令語の取り出しからオペランド書き込みまでが実行される(ステップ51〜57)。この間で例外が検出された場合に例外ハンドラへ移入して例外処理が行われる点も同様である(ステップ61)。
【0037】
ここで続くステップ58において、ステップ57でストアを実行したアドレスに対してオフセット値dを加算し、ターゲットアドレス空間(コピー)63内のストアアドレスを求め、ステップ57でストアしたものと同じデータをターゲットアドレス空間(コピー)に対してストアすることにより、ターゲットアドレス空間62と同じ状態をターゲットアドレス空間(コピー)63側にも生成する。
【0038】
この後、続く命令カウンタの更新、次命令語の取り出し(ステップ59〜60)に関しては従来技術と同様である。
【0039】
ここで、プラットフォームマシンのプロセッサとして、例えば前述したインテル社のIPFのように複数の命令を同時に実行可能なプロセッサを使用する場合、図1におけるターゲットアドレス空間62へのデータの書き込み(ステップ57)と、ターゲットアドレス空間63へのデータの書き込み(ステップ58)とを同時に実行することにより、2度の書き込みよる処理速度の低下を防止することができる。
【0040】
次に図2を参照して、ターゲットマシンのロード命令をエミュレートする際の動作について説明する。本実施の形態においては、ロード命令のエミュレート動作は従来技術によるロード命令のエミュレートと変わりがなく、以下のように進められる。
【0041】
ロード命令の実行が開始されると、やはりストア命令の場合と同様に命令語の取り出しからメモリアクセス時の例外チェックまでのステップが実行される(ステップ71〜76)。この間で例外が検出された場合に例外ハンドラへ移入して例外処理が行われる点も同様である(ステップ61)。
【0042】
ここで続くステップ77では、ステップ75で得たターゲットアドレス空間62中の絶対アドレスからデータをロードし、汎用レジスタGRへ格納する。
【0043】
続く命令カウンタの更新、次命令の取り出し操作(ステップ78、79)はストア命令の場合と同様である。
【0044】
続いて、エミュレーション実行中にプラットフォームハードウェアで障害が発生した場合の動作について、図3を参照しながら説明する。
【0045】
まず、プラットフォームのハードウェアで障害が検出された場合(ステップ81)を考えると、障害はECCなどのハードウェアによる自動訂正が可能な場合と、訂正不可能な場合に分類される(ステップ82)。ハードウェアによる訂正が可能な障害であれば、障害が発生したデータは自動訂正されてソフトウェアの処理はそのまま継続される(ステップ83)。
【0046】
一方で自動訂正が不可能な障害であった場合、ハードウェアは割り込み等の手段を用いてプロセッサへ障害を通知し、プロセッサは実行中のソフトウェアからプロセッサファームウェアを起動する。プロセッサファームウェアはプロセッサ内に閉じた操作で障害が復旧可能であるかどうかを判定し、復旧可能であれば復旧処理を行い(ステップ86)、その後ハードウェアに対してソフトウェア処理への復帰指示を与えて(ステップ89)、障害が発生した命令からの実行を再開する(ステップ85)。
【0047】
ステップ86にてプロセッサ内に閉じた復旧ができない障害だった場合は、障害処理はプラットフォームファームウェアに渡され、プラットフォームによる障害復旧が可能か否かを判断した後、復旧が可能であれば復旧処理を行い(ステップ87)、その後同様にハードウェアに対してソフトウェア処理への復帰指示を与えて(ステップ89)、障害が発生した命令からの実行を再開する(ステップ85)。
【0048】
ステップ87にてプラットフォームでの障害の復旧ができない障害だった場合は、ファームウェアからエミュレータへ制御が移り、障害処理がエミュレータに委ねられる。このような障害のケースとしては、例えばメモリ読み出し時の多ビットエラーによる訂正不能障害や、バスエラーによる訂正不能障害などが挙げられる。
【0049】
ステップ90にて、障害からの復旧を委ねられたエミュレータは、まず障害が復旧可能な種類の障害かどうかを判定する。もしエミュレータでも復旧ができない種類の致命的な障害だった場合は、エミュレータはファームウェアに制御を戻し、ファームウェア制御によりシステムリブートに移行する(ステップ88、84)。
【0050】
エミュレータで復旧可能な障害だった場合は、続くステップ91へ進み、エミュレータは、ターゲットアドレス空間(コピー)63から障害アドレスのデータのコピーを取り出して、ターゲットアドレス空間62における障害アドレスへデータを書き戻す。そして、ファームウェアへ障害処理からの復旧指示を出してエミュレータは障害処理を終了する(ステップ92)。続くステップは上記のファームウェアによる訂正が成功した場合と同様に、ハードウェアに対してソフトウェア処理への復帰指示を与えて障害が発生した命令からの実行を再開する(ステップ89、85)。
【0051】
発生した訂正不能障害が、ターゲットアドレス空間62のリード時に主記憶50上で検出されたものである場合、障害の原因が間欠故障によるものであれば、ターゲットアドレス空間(コピー)63の正常なデータをターゲットアドレス空間62における障害発生メモリアドレス部分に書き戻すことで復旧でき、障害が発生した命令からソフトウェア処理を再開することで、エミュレート処理を正常に継続することができる。また、発生した訂正不能障害が、ターゲットアドレス空間62のリード時に主記憶50とプロセッサとをつなぐバス上で検出されたものである場合、ターゲットアドレス空間62上のデータは正常である可能性はあるが、リードした誤ったデータがプロセッサのキャッシュに蓄積されてしまっている可能性があるため、ターゲットアドレス空間(コピー)63の正常なデータをターゲットアドレス空間62における障害発生メモリアドレス部分に書き戻し、障害が発生した命令からソフトウェア処理を再開することで、再度リード動作を行わせることができ、間欠障害であれば、エミュレート処理を正常に継続することができる。さらに、発生した訂正不能障害が、ターゲットアドレス空間62のライト時に主記憶50とプロセッサとをつなぐバス上で検出されたものである場合、ターゲットアドレス空間62のデータが破壊されている可能性があるため、ターゲットアドレス空間(コピー)63の正常なデータをターゲットアドレス空間62における障害発生メモリアドレス部分に書き戻すことで復旧でき、障害が発生した命令からソフトウェア処理を再開することで、間欠障害であればエミュレート処理を正常に継続することができる。
【0052】
以上説明したように、本実施の形態によれば、メモリ読み出し時の多ビットエラーによる訂正不能障害や、バスエラーによる訂正不能障害のような復旧不能なデータ破壊を伴う障害が発生した場合に、データの復旧を行い、システムダウンやリブートに至らずソフトウェアの実行、つまりターゲットマシンのプログラムのエミュレーションを継続することができる。
【0065】
【発明の効果】
以上説明したように、本発明によれば、以下のような効果が得られる。
【0066】
メモリ読み出し時の多ビットエラーによる訂正不能障害や、バスエラーによる訂正不能障害のような復旧不能なデータ破壊を伴う障害がプラットフォームハードウェアで発生した場合に、エミュレータ側でデータの復旧を行い、システムダウンやリブートに至らずにターゲットマシンのエミュレーションの実行を継続することができる。その理由は、エミュレータによりターゲットマシンのメモリ空間のコピーを生成することにより、訂正不能障害が発生した際にコピー領域からデータを書き戻すことができるからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるプラットフォームマシンの主記憶上にターゲットマシン用の2つの領域を設定する例とエミュレータのストア命令のエミュレート時の処理フローを示す図である。
【図2】本発明の第1の実施の形態におけるエミュレータのロード命令のエミュレート時の処理フローを示す図である。
【図3】本発明の第1の実施の形態におけるエミュレーション実行中にプラットフォームハードウェアで障害が発生した場合の動作説明図である。
【図4】エミュレータの実装環境を示すブロック図である。
【図5】エミュレータがターゲットマシンの命令語をエミュレートする際の動作説明図である。
【図6】従来のエミュレータにおけるストア命令のエミュレート時の処理フローを示す図である。
【符号の説明】
11…アプリケーションプログラム
12…ミドルウェア
13…ターゲットOS
14…エミュレータ
15…プラットフォームファームウェア
16…プロセッサファームウェア
17…プロセッサ(ハードウェア)
18…プラットフォーム(ハードウェア)
50…プラットフォームマシンの主記憶
62…ターゲットマシンの主記憶としての割り当てられたターゲットアドレス空間
63…ターゲットアドレス空間62のコピー領域となるターゲットアドレス空間(コピー)
Claims (3)
- ターゲットマシンと異なるアーキテクチャのプラットフォームマシン上で動作し、前記プラットフォームマシンの主記憶の一部に確保された前記ターゲットマシンの主記憶に記憶された前記ターゲットマシンのプログラムをエミュレートするエミュレータにおいて、前記プラットフォームマシンの主記憶の他の部分に前記ターゲットマシンの主記憶のコピーである主記憶コピー領域を備え、前記ターゲットマシンのストア命令をエミュレートする際に前記ターゲットマシンの主記憶と前記主記憶コピー領域の両方に対して同じデータをストアし、前記ターゲットマシンのロード命令をエミュレートする際には前記ターゲットマシンの主記憶と前記主記憶コピー領域のうち前記ターゲットマシンの主記憶からのみデータをロードし、且つ、前記ターゲットマシンのプログラムをエミュレートしている際、前記ターゲットマシンの主記憶のリード及びライト時に前記プラットフォームマシンでデータの訂正不能障害が検出された場合、前記主記憶コピー領域の対応するデータを、前記ターゲットマシンの主記憶における前記訂正不能障害が検出されたデータにかかるメモリアドレスに書き戻した後、前記訂正不能障害が検出された時点の命令から実行を再開し、前記訂正不能障害が間欠障害であればエミュレート処理を継続することを特徴とするエミュレータ。
- ターゲットマシンと異なるアーキテクチャのプラットフォームマシンを構成するコンピュータを、前記プラットフォームマシンの主記憶の一部に確保された前記ターゲットマシンの主記憶に記憶された前記ターゲットマシンのプログラムをエミュレートするエミュレータとして機能させるプログラムであって、前記コンピュータを、前記ターゲットマシンのストア命令をエミュレートする際に、前記ターゲットマシンの主記憶と、前記プラットフォームマシンの主記憶の他の部分に設けられた前記ターゲットマシンの主記憶のコピー領域である主記憶コピー領域の両方に対して同じデータをストアする手段、前記ターゲットマシンのロード命令をエミュレートする際に、前記ターゲットマシンの主記憶と前記主記憶コピー領域のうち前記ターゲットマシンの主記憶からのみデータをロードする手段、前記ターゲットマシンのプログラムをエミュレートしている際、前記ターゲットマシンの主記憶のリード及びライト時に前記プラットフォームマシンでデータの訂正不能障害が検出された場合、前記主記憶コピー領域の対応するデータを、前記ターゲットマシンの主記憶における前記訂正不能障害が検出されたデータにかかるメモリアドレスに書き戻した後、前記訂正不能障害が検出された時点の命令から実行を再開させ、前記訂正不能障害が間欠障害であればエミュレート処理を継続させる手段、として機能させるプログラム。
- ターゲットマシンと異なるアーキテクチャのプラットフォームマシン上で動作し、前記プラットフォームマシンの主記憶の一部に確保された前記ターゲットマシンの主記憶に記憶された前記ターゲットマシンのプログラムをエミュレートするエミュレーション方法において、前記プラットフォームマシンの主記憶の他の部分に前記ターゲットマシンの主記憶のコピーである主記憶コピー領域を設け、前記ターゲットマシンのストア命令をエミュレートする際に前記ターゲットマシンの主記憶と前記主記憶コピー領域の両方に対して同じデータをストアし、前記ターゲットマシンのロード命令をエミュレートする際には前記ターゲットマシンの主記憶と前記主記憶コピー領域のうち前記ターゲットマシンの主記憶からのみデータをロードし、且つ、前記ターゲットマシンのプログラムをエミュレートしている際、前記ターゲットマシンの主記憶のリード及びライト時に前記プラットフォームマシンでデータの訂正不能障害が検出された場合、前記主記憶コピー領域の対応するデータを、前記ターゲットマシンの主記憶における前記訂正不能障害が検出されたデータにかかるメモリアドレスに書き戻した後、前記訂正不能障害が検出された時点の命令から実行を再開し、前記訂正不能障害が間欠障害であればエミュレート処理を継続することを特徴とするエミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003039176A JP4155052B2 (ja) | 2003-02-18 | 2003-02-18 | エミュレータ、エミュレーション方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003039176A JP4155052B2 (ja) | 2003-02-18 | 2003-02-18 | エミュレータ、エミュレーション方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004252525A JP2004252525A (ja) | 2004-09-09 |
JP4155052B2 true JP4155052B2 (ja) | 2008-09-24 |
Family
ID=33023418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003039176A Expired - Fee Related JP4155052B2 (ja) | 2003-02-18 | 2003-02-18 | エミュレータ、エミュレーション方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4155052B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042725B2 (en) | 2013-09-06 | 2018-08-07 | Kabushiki Kaisha Toshiba | Memory control circuit, cache memory and memory control method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5217128B2 (ja) * | 2006-08-01 | 2013-06-19 | 日本電気株式会社 | エミュレーション装置及びエミュレーション方法 |
US7882336B2 (en) * | 2007-02-01 | 2011-02-01 | International Business Machines Corporation | Employing a buffer to facilitate instruction execution |
JP5115332B2 (ja) * | 2008-05-22 | 2013-01-09 | 富士通株式会社 | エミュレーションプログラム、エミュレーション装置およびエミュレーション方法 |
JP5305839B2 (ja) * | 2008-10-31 | 2013-10-02 | キヤノン株式会社 | 画像処理装置、情報処理装置、画像処理装置の制御方法、情報処理装置の制御方法、記憶媒体、プログラム |
DE102010011583B4 (de) * | 2010-03-16 | 2011-12-22 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum Umsetzen von Befehlen mit Basisregister-relativer Adressierung bei einer Emulation |
DE102017220708A1 (de) * | 2017-04-06 | 2018-10-11 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Betreiben einer Speichereinrichtung |
-
2003
- 2003-02-18 JP JP2003039176A patent/JP4155052B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042725B2 (en) | 2013-09-06 | 2018-08-07 | Kabushiki Kaisha Toshiba | Memory control circuit, cache memory and memory control method |
Also Published As
Publication number | Publication date |
---|---|
JP2004252525A (ja) | 2004-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7831857B2 (en) | Method and system for recovering from operating system crash or failure | |
CN100489801C (zh) | 纠正软错误的固件机制 | |
US9081734B2 (en) | Restoring from a legacy OS environment to a UEFI pre-boot environment | |
US7774636B2 (en) | Method and system for kernel panic recovery | |
CN109891393B (zh) | 使用检查器处理器的主处理器错误检测 | |
US7853825B2 (en) | Methods and apparatus for recovering from fatal errors in a system | |
KR101249693B1 (ko) | 서브루틴 복귀 메카니즘 선택 | |
TWI441081B (zh) | 更新韌體方法與開機方法及使用其之電子裝置 | |
US20050015672A1 (en) | Identifying affected program threads and enabling error containment and recovery | |
CN112131032B (zh) | 一种基于混合内存系统的故障快速恢复方法 | |
TW201915761A (zh) | 在例外遮罩更新指令之後允許未中止的交易處理 | |
US20100205477A1 (en) | Memory Handling Techniques To Facilitate Debugging | |
JP4155052B2 (ja) | エミュレータ、エミュレーション方法およびプログラム | |
JPS58121457A (ja) | 情報処理装置 | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 | |
US20220229781A1 (en) | Saving page retire information persistently across operating system reboots | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
US5673391A (en) | Hardware retry trap for millicoded processor | |
JP2009230479A (ja) | マイクロプロセッサ | |
WO2010109631A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP3988740B2 (ja) | 並列処理装置、命令再試行方法、およびプログラム | |
JPH08137748A (ja) | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 | |
EP0655686B1 (en) | Retry control method and device for control processor | |
JP2009169515A (ja) | コンピュータシステム及びシステム回復装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070703 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080422 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080509 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080617 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080630 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |