(57)【要約】【課題】ターゲット・プロセッサを模擬するホスト・プロセッサのシステムにおいて、模擬規模を小さくし、処理時間を短縮する。【解決手段】コード変換後の処理にハードウェア・リソース更新を意味するチェックポイント実行があると、このチェックポイント実行を検出するチェックポイント検出部を備えて、上記変換後のコードによる処理をチェックポイントの実行も含めて行ない（Ｓ６）、かつホスト・プロセッサが予期しない例外処理を検出すると、この検出点から直前のチェックポイントを復元する処理（Ｓ８）を行なうようにした。【選択図】        図２
2004157642.tif 000002
【特許請求の範囲】
【請求項１】
対象となるターゲット・プロセッサのコードをホスト・プロセッサのコードに変換して動作を模擬する構成において、
上記コード変換後の処理にハードウェア・リソース更新を意味するチェックポイント実行があると、該チェックポイント実行を検出するチェックポイント検出部を備えて、
上記変換後のコードによる処理を上記チェックポイントの実行も含めて行ない、かつ上記ホスト・プロセッサが予期しない例外処理を検出すると、該検出点から直前の上記チェックポイントを復元する処理を行なうようにしたことを特徴とするプロセッサ・シミュレータ。
【請求項２】
チェックポイント更新情報を保持するチェックポイント更新情報保持部を備えて、チェックポイント復元処理時には、上記チェックポイント更新情報保持部の情報に基づいて復元処理を行うようにしたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項３】
ターゲット・プロセッサのコードをホスト・プロセッサのコードに変換する際に、チェックポイント実行命令に相当するパターンを埋め込み、
チェックポイント検出部は、上記埋め込まれたパターンを検出するパターン判断部を備えたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項４】
ターゲット・プロセッサのコードを変換して所定模擬動作を開始する時にセットされ、該所定模擬動作が終わるとリセットされるチェックポイント実行情報保持部を備えて、
チェックポイント検出部は、上記チェックポイント実行情報保持部の状態でチェックポイント検出としたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項５】
ホスト・プロセッサ側のメモリ更新を検出するメモリ更新検出部を備えて、チェックポイント検出部は、上記メモリ更新をチェックポイントの検出と判断するようにしたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項６】
所定模擬動作の対象となるターゲット・プロセッサ側のコードがあるメモリ範囲か、または所定模擬動作を変換後の割付メモリ範囲、を記憶するメモリ範囲保持部を備えて、該範囲内のコード実行であることをメモリ更新検出に付加するようにしたことを特徴とする請求項５記載のプロセッサ・シミュレータ。
【請求項７】
メモリ更新回数記憶部を備えて、メモリ更新検出は、上記メモリ更新回数記憶部が規定以上の回数ある場合にメモリ更新検出としたことを特徴とする請求項５記載のプロセッサ・シミュレータ。
【請求項８】
ターゲット・プロセッサのコードを変換して所定模擬動作を開始する時にセットされ、該所定模擬動作が終わるとリセットされるチェックポイント実行情報保持部を備えて、
ホスト・プロセッサが予期しない例外処理を検出すると、上記チェックポイント実行情報保持部がセットされている場合に例外処理があったと判断するようにしたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項９】
ターゲット・プロセッサの所定模擬動作を変換して割付たメモリ範囲を記憶する変換メモリ範囲保持部を備えて、
ホスト・プロセッサが予期しない例外処理を検出すると、上記メモリ範囲保持部が記憶するメモリ範囲内である場合に例外処理があったと判断するようにしたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項１０】
チェックポイント更新情報保持部は、ターゲット・プロセッサのレジスタ情報を記憶するレジスタ・バックアップ部を備えて、
チェックポイント復元時には、上記レジスタ・バックアップ部が記憶する値を書き戻すようにしたことを特徴とする請求項１記載のプロセッサ・シミュレータ。
【請求項１１】
チェックポイント更新情報保持部は、ターゲットプロセッサのコード実行によりメモリされると、これをメモリ更新アドレスと、更新データを対にして記憶するようにしたことを特徴とする請求項１０記載のプロセッサ・シミュレータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、シミュレーション対象となるターゲットＣＰＵの動作をホストＣＰＵ上でシミュレーションするＣＰＵシミュレータであって、ホストＣＰＵ上でターゲットＣＰＵの動作を逐次処理しながら動作履歴を収集し、実行頻度の高い部分を抽出し、ターゲットＣＰＵの機械語レベルの命令コードをまとめてホストＣＰＵの命令列に変換し、実行するようにしたＣＰＵシミュレータに関するものである。
【０００２】
【従来の技術】
従来、ターゲットＣＰＵ命令をホストＣＰＵで直接実行できるように命令コードの変換を行う際は、ターゲットＣＰＵ命令を１つずつ単純にホストＣＰＵ命令に変換していては性能向上を実現できないため、複数のターゲットＣＰＵ命令列をホストＣＰＵ命令に変換した後、ホストＣＰＵ命令の並び替えなどの最適化を実施している（特許文献１参照）。
図１６は従来の構成を示す図であり、図１７は従来のＣＰＵシミュレータの動作を示すフローチャートである。
【０００３】
次に動作について説明する。
ターゲットＣＰＵ命令列をまとめて、ホストＣＰＵの命令列に変換しているが、その際、実行するターゲットＣＰＵ命令が変換済コードとして変換バッファ２０３に存在していれば（図１７のＳ１でＹの場合）、変換済コードの実行（図１７のＳ６Ｐ）を行い、変換済コードが変換バッファ２０３に存在していなければ（図１７のＳ１でＮの場合）、これまでの実行回数が規定回数に達しているかの判断を行う（図１７のＳ２）。規定回数に達していなければ（図１７のＳ２でＮの場合）、インタプリタ２０１によるターゲットＣＰＵ命令の逐次処理を行う（図１７のＳ３）。インタプリタ２０１実行中に例外発生を検出した場合（図１７のＳ４でＹの場合）、ターゲットＣＰＵの例外ハンドラ（図１７のＳ１１）を実行する。インタプリタ２０１実行中に例外が発生しなければ（図１７のＳ４でＮの場合）、次に実行するターゲットＣＰＵ命令が変換済コードとして変換バッファ２０３に存在しているかの確認を行う（図１７のＳ１）。
【０００４】
次に実行するターゲットＣＰＵ命令が変換済コードとして存在せず、次に実行するターゲットＣＰＵ命令の実行が規定回数に達していた場合（図１７のＳ２でＹの場合）には、ターゲットＣＰＵの命令列をホストＣＰＵの命令列に変換した（図１７のＳ５）後、変換済コードを実行（図１７のＳ６）する。変換済コードの実行が完了する（例外が発生しなかった）と（図１７のＳ７でＮの場合）、チェックポイントの実行（図１７のＳ１３）を行う。つまり、Ｇａｔｅｄストアバッファ１５６内のコミット済と未コミットの境界を示すＧＡＴＥポインタ１５２をＴＡＩＬポインタ１５１にあわせこみを行う。変換済コードの実行中に例外はないと考えているホストＣＰＵ命令の命令シーケンスが変更されるような事象が発生すると（図１７のＳ７でＹの場合）、例外が発生した命令がターゲットＣＰＵ命令を実行したためか、ホストＣＰＵ命令を実行したかを特定するために、変換済コードの実行前まで、ホストＣＰＵの状態を復元する（図１７のＳ１２）。つまり、Ｇａｔｅｄストアバッファ１５６内の最後の未コミットを示すＴＡＩＬポインタ１５１をコミットが済んだことを示すＧＡＴＥポインタ１５２にまで戻すことで、ターゲットＣＰＵ命令列の動作を変換済コード実行前の状態に戻す。その後、インタプリタによる逐次処理実行（図１７のＳ９およびＳ１０）を行い、例外を引き起こしたターゲットＣＰＵ命令を特定し、ターゲットＣＰＵ命令実行による例外発生と判断した場合に、ターゲットＣＰＵの例外ハンドラ（図１７のＳ１１）を実行する。
【０００５】
【特許文献１】
ＵＳＰ  ６，０１１，９０８
【０００６】
【発明が解決しようとする課題】
従来のＣＰＵシミュレータは、変換済コード実行中すべての動作履歴を保持するため大規模なハードウェアを必要とし、例外が発生したターゲットＣＰＵを特定するための処理時間が長くなるという課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、ハードウェアの小型化、および処理性能の向上を目的とする。
【０００８】
【課題を解決するための手段】
この発明に係るプロセッサ・シミュレータは、対象となるターゲット・プロセッサのコードをホスト・プロセッサのコードに変換して動作を模擬する構成において、
コード変換後の処理にハードウェア・リソース更新を意味するチェックポイント実行があると、このチェックポイント実行を検出するチェックポイント検出部を備えて、
上記変換後のコードによる処理をチェックポイントの実行も含めて行ない、かつホスト・プロセッサが予期しない例外処理を検出すると、この検出点から直前のチェックポイントを復元する処理を行なうようにした。
【０００９】
【発明の実施の形態】
実施の形態１．
図１はこの発明の一実施の形態に係るＣＰＵシミュレータの構成を示すブロック図である。
図１において本装置は、ターゲットＣＰＵの命令を実行するホスト・プロセッサ（ＣＰＵ）１００、ホストＣＰＵ１００上に実装され、命令の取り出し、ディスパッチ、演算ユニットなどから構成されるプログラム実行部１０１、プログラム実行部１０１に実装され、演算実行時等に使用するホストＣＰＵレジスタ１０２、ホストＣＰＵ１００のハードウェアリソース更新のチェックポイント実行の事象を検出するＣＰ（チェックポイント）検出部１０３、例外などの事象を検出する例外検出部１０４、ホストＣＰＵレジスタ１０２上でターゲットＣＰＵのレジスタとして割り当てられたターゲットＣＰＵレジスタ１０５、プログラム実行部１０１で実行されるメモリ更新の情報をバッファリングしておくホストＣＰＵストアバッファ１０６、ＣＰ検出部１０３からの通知によりチェックポイントの実行を行い、例外検出部１０４からの通知により最後に実行したチェックポイントにホストＣＰＵのハードウェアリソースを復元するチェックポイント（ＣＰ）実行復元部１０７、プログラム実行部１０１で使用する命令、データを保持するキャッシュメモリ１０８、ホストＣＰＵ１００に接続されたホストメモリサブシステム２００、ターゲットＣＰＵ命令を逐次処理実行するインタプリタプログラム２０１、ターゲットＣＰＵ命令をホストＣＰＵ命令に変換するトランスレータプログラム２０２、トランスレータプログラム２０２が変換した変換済コードを保存する変換バッファ２０３、ホストメモリサブシステム２００内に割り付けられたターゲットシステムのハードウェアリソース２０４の各構成要素からなる。
【００１０】
図２は、ホストＣＰＵ１００上で動作するＣＰＵシミュレータのフローチャートを示している。
次に図１と図２を用いて動作を説明する。
実行するターゲットＣＰＵ命令が変換済コードとして変換バッファ２０３に存在していれば（図２のＳ１でＹの場合）、変換済コードの実行（図２のＳ６）を行う。その際、変換済コードの実行中であっても、チェックポイントの実行を行う。チェックポイントの実行は、ＣＰ検出部１０３により検出され、ＣＰ実行復元部１０７においてチェックポイントが実行される。変換済コードが変換バッファ２０３に存在していなければ（図２のＳ１でＮの場合）、これまでの実行回数が規定回数に達しているかの判断を行う（図２のＳ２）。規定回数に達していなければ（図２のＳ２でＮの場合）、インタプリタ２０１によるターゲットＣＰＵ命令の逐次処理を行う（図２のＳ３）。インタプリタ２０１実行中に例外発生を検出した場合（図２のＳ４でＹの場合）、ターゲットＣＰＵの例外ハンドラ（図２のＳ１１）を実行する。インタプリタ２０１実行中に例外が発生しなければ（図２のＳ４でＮの場合）、次に実行するターゲットＣＰＵ命令が変換済コードとして変換バッファ２０３に存在しているかの確認を行う（図２のＳ１）。
【００１１】
次に実行するターゲットＣＰＵ命令が変換済コードとして存在せず、次に実行するターゲットＣＰＵ命令の実行が規定回数に達していた場合（図２のＳ２でＹの場合）には、ターゲットＣＰＵの命令列をホストＣＰＵの命令列に変換した（図２のＳ５）後、変換済コードを実行（図２のＳ６）する。変換済コードの実行が完了する（例外が発生しなかった）と（図２のＳ７でＮの場合）、次に実行するターゲットＣＰＵ命令が変換済コードとして変換バッファ２０３に存在しているかの確認を行う（図２のＳ１）。変換済コードの実行中に例外検出部１０４が例外を検出する（図２のＳ７でＹの場合）と、ＣＰ実行復元部１０７によって最後に実行したチェックポイントの状態にホストＣＰＵの状態を復元する（図２のＳ８）。その後、インタプリタによる逐次処理実行（図２のＳ９およびＳ１０）を行い、例外を引き起こしたターゲットＣＰＵ命令を特定し、ターゲットＣＰＵ命令実行による例外発生と判断した場合に、ターゲットＣＰＵの例外ハンドラ（図２のＳ１１）を実行する。
以上のように、変換済コード実行中においても、任意のポイントでチェックポイントを実行することで、ＣＰ実行復元のハードウェアを小型化し、例外発生時の処理時間を短縮できる。
【００１２】
プログラム実行部の具体例について説明する。
図３はＣＰＵシミュレータのプログラム実行部１００ｂの詳細を示すブロック図である。図１に示す構成要素に追加された構成要素として、ターゲットＣＰＵ命令実行に伴なうチェックポイントを検出するＴＣＣＰ（ターゲットＣＰＵチェックポイント）検出部１１０、ＴＣＣＰ検出部１１０において検出したチェックポイント実行をＣＰ実行復元部１０７に通知するＴＣＣＰ通知部１１１、ターゲットＣＰＵ命令の実行に起因する例外事象を検出するＴＣ（ターゲットＣＰＵ）例外検出部１１２、ＴＣ例外検出部１１２において検出した例外事象をＣＰ実行復元部１０７に通知するＴＣ例外通知部１１３、ＴＣＣＰ通知部１１１からターゲットＣＰＵ命令実行に伴なうチェックポイントが検出されたことを受信するＴＣＣＰ受信部１１４、ＴＣＣＰ受信部１１４へのチェックポイント実行通知によりチェックポイントを実行するＣＰ実行部１１５、ＴＣ例外通知部１１３からターゲットＣＰＵ命令実行に伴なう例外が検出されたことを受信するＴＣ例外受信部１１６、ターゲットシステムのハードウェアリソースの更新情報を採取し、保持するＴＣ更新情報保持部１１８、ＴＣ例外受信部１１６への通知により、最後に実行したチェックポイント状態にＴＣ更新情報保持部１１８を復元するＣＰ復元部１１７がある。その他の番号の構成要素は図１のそれと同ものである。
【００１３】
次に動作について図３を例に説明する。即ちチェックポイント検出部１０３ｂとして、ＴＣＣＰ検出部１１０及びＴＣＣＰ通知部１１１を設けることで、ターゲットＣＰＵの命令実行に伴なうチェックポイントのみを抽出検出し、ＣＰ実行復元部１０７ｂに通知し、チェックポイントを実行する。また、例外検出部１０４ｂとして、ＴＣ例外検出部１１２及びＴＣ例外通知部１１３を設けることで、ターゲットＣＰＵの命令実行に伴なう例外のみを抽出検出し、ＣＰ実行復元部１０７に通知し、チェックポイントを復元する。また、ＣＰ実行復元部１０７ｂとして、ＴＣＣＰ受信部１１４、ＣＰ実行部１１５、ＴＣ例外受信部１１６、ＣＰ復元部１１７及びＴＣ更新情報保持部１１８を設けることで、ターゲットＣＰＵの命令実行に伴なうターゲットシステムの更新情報のみの履歴を保持し、チェックポイントの実行及び復元を行う。
【００１４】
以上のように、ターゲットＣＰＵの命令実行に伴なうターゲットシステムの更新情報のみの履歴を保持し、ターゲットＣＰＵ命令実行に伴なうチェックポイントを実行し、ターゲットＣＰＵ命令実行に伴なう例外のみを検出するようにしたことで、ＣＰ実行復元部１０７を小型化し、例外発生時の処理時間が短縮できる。
【００１５】
実施の形態２．
図４は、ターゲットＣＰＵ命令列をホストＣＰＵ命令列に変換する変換部での変換例を示す図であり、図５は、チェックポイント検出部の具体的な１０３の構成を示す図である。
図５において、ハードウェアリソース更新のチェックポイント実行の事象を検出するＣＰ検出部１０３は、内部にターゲットＣＰＵ命令実行に伴なうチェックポイントを検出するＴＣＣＰ検出部１１０ｃと、ＴＣＣＰ通知部１１１を持つ。またホストＣＰＵの命令デコーダ１２０を持つ。更にＴＣＣＰ検出部１１０ｃは、ターゲットＣＰＵ命令実行によるチェックポイント検出を判断するＴＣＣＰ判断部１２１ａを内部に持つ。
【００１６】
次に動作について説明する。
まず、ターゲットＣＰＵ命令列をホストＣＰＵ命令に変換する変換部であるトランスレータ２０２ｃについて、図４を例に説明する。
ターゲットＣＰＵの命令ａは、ホストＣＰＵの命令ａ１と命令ａ２で実現される。ターゲットＣＰＵの命令ｂは、ホストＣＰＵの命令ｂ１と命令ｂ２で実現される。ターゲットＣＰＵの命令ｃは、ホストＣＰＵの命令ｃ１で実現される。通常、ターゲットＣＰＵの命令が命令ａ、命令ｂ、命令ｃの順に出現するなら、ホストＣＰＵの命令を使ってターゲットＣＰＵの動作を行うには、命令ａ１、命令ａ２、命令ｂ１、命令ｂ２、命令ｃ１と変換すればよい。しかし、命令ａ１、命令ａ２、命令ｂ１、命令ｂ２、命令ｃ１の順序を実行すると、ホストＣＰＵのパイプラインにストールが発生してしまう。高速化を実現するためには、命令ａ１、命令ｂ１、命令ｃ１、命令ａ２、命令ｂ１と並び替えてパイプラインのストールをなくすようにトランスレータ２０２ｃは最適化を行う。トランスレータ２０２ｃは、ターゲットＣＰＵの命令列をいくつかの命令列に分割して、最適化を行う。その際、分割した隙間にターゲットＣＰＵの命令の切れ目を示すチェックポイント実行命令αを埋め込んだ変換済コードを生成し、ホストメモリサブシステム２００上に割り当てた変換バッファ２０３に格納する。命令αを埋め込む場所は、分割した隙間に限らず、ターゲットＣＰＵの命令位置が特定可能な場所であれば、どこでもかまわない。
【００１７】
次に、トランスレータ２０２ｃで変換した変換済コードの実行中でのチェックポイント検出について図５を例に説明する。
ターゲットＣＰＵ命令をホストＣＰＵ命令に変換した変換済コード実行（図２のＳ６）で、ホストＣＰＵ命令デコーダ１２０に実行すべきホストＣＰＵ命令として、上記のトランスレータ２０２ｃが生成した命令αを含む入力があると、ホストＣＰＵ命令デコーダ１２０は、入力された命令コードのビットパターンに従い、命令デコードを行う。その際、命令αのビットパターンをデコードすると、ＴＣＣＰ判断部１２１ａに命令αをデコードしたことを通知する。ＴＣＣＰ判断部１２１ａはホストＣＰＵ命令デコーダ１２０からの命令αをデコードしたことを示す通知と命令実行信号に従い、命令αを実行したと判断し、チェックポイントの実行を検出する。
【００１８】
以上のように、変換部とＴＣＣＰ判断部を備えることで、ターゲットＣＰＵの命令実行中であっても、ターゲットＣＰＵ命令実行に伴なうチェックポイントを認識できるので、ＣＰ実行復元部１０７のハードウェアの小型化と、例外発生時の処理時間の短縮ができる。
【００１９】
図６は、チェックポイント検出部の他の具体的な構成を示す図である。
図６において、ＣＰ検出部１０３ｄは、内部にターゲットＣＰＵ命令実行に伴なうチェックポイントを検出するＴＣＣＰ検出部１１０ｄと、ＴＣＣＰ通知部１１１を持つ。またＴＣＣＰ検出部１１０ｄは、内部にターゲットＣＰＵ命令の実行を示すＴＣ実行フラグ保持部１２３、変換済命令コードの実行開始時にＴＣ実行フラグ保持部１２３をセットし、終了時にＴＣ実行フラグ保持部１２３をリセットするＴＣ実行フラグ設定部１２３、ターゲットＣＰＵ命令の変換済命令コード実行終了によってチェックポイント検出を判断するＴＣＣＰ判断部１２１ｂを持つ。
【００２０】
ターゲットＣＰＵ命令の実行に伴なうチェックポイントの検出動作を図６に基いて説明する。
ターゲットＣＰＵ命令を変換した変換済コードを開始するときに、ＴＣ実行フラグ設定部１２２を用いてＴＣ（チェックポイント）実行フラグ保持部１２３にセット信号を送信する。また、変換済コード実行が終了するときに、ＴＣ実行フラグ設定部１２２を用いてＴＣ実行フラグ保持部１２３にリセット信号を送信する。ＴＣ実行フラグ保持部１２３は、ＴＣ実行フラグ設定部１２２からのセット／リセット信号に従い、ターゲットＣＰＵ命令の実行を示すターゲットＣＰＵ実行フラグを保持する。ＴＣＣＰ判断部１２１ｂは、ＴＣ実行フラグ保持部１２３で保持しているターゲットＣＰＵ実行フラグがセット状態からリセット状態に変化したことを観測し、ターゲットＣＰＵ命令実行に伴なうチェックポイントの実行と判断し、ＴＣＣＰ通知部１１１に通知する。
【００２１】
以上のように、ＴＣ実行フラグ設定部とＴＣ実行フラグ保持部とＴＣＣＰ判断部を備えることにより、ターゲットＣＰＵの命令実行で命令αのような明示的なチェックポイント実行の命令がなくても、ターゲットＣＰＵ命令の実行に伴なうチェックポイントを認識できるので、ＣＰ実行復元部１０７のハードウェアの小型化と例外発生時の処理時間の短縮ができる。
【００２２】
図７はチェックポイント検出部の他の具体的な構成を示す図である。
図７において、ＣＰ検出部１０３ｅは、内部にターゲットＣＰＵ命令実行に伴なうチェックポイントを検出するＴＣＣＰ検出部１１０ｅと、ＴＣＣＰ通知部を持つ。また、ＣＰ検出部１１０ｅはターゲットＣＰＵ命令の変換済命令コード実行終了によってチェックポイント検出を判断するＴＣＣＰ判断部１２１ｅとＣＰＵ１００のメモリ更新を検出するメモリ更新検出部１２４を持つ。その他の各要素は、図６に記載の同番号の要素と同様のものである。
【００２３】
ターゲットＣＰＵ命令の実行に伴なうチェックポイントの検出動作を図７に基いて説明する。
ターゲットＣＰＵ命令を変換した変換済コードを開始するときに、ＴＣ実行フラグ設定部１２２は、ＴＣ実行フラグ保持部１２３にセット信号を送信する。また、変換済コード実行が終了するときには、ＴＣ実行フラグ保持部１２３にリセット信号を送信する。ＴＣ実行フラグ保持部１２３は、こうしてターゲットＣＰＵ実行フラグのセット／リセットを保持する。メモリ更新検出部１２４はメモリアクセス情報からメモリ更新事象を検出し、メモリ更新が発生したことをＴＣＣＰ判断部１２１ｃに通知する。ＴＣＣＰ判断部１２１ｃは、ＴＣ実行フラグ保持部１２３で保持しているターゲットＣＰＵ実行フラグがセット状態であり、メモリ更新検出部１２４からメモリ更新が発生したことの通知を受けて、ターゲットＣＰＵ命令実行によるチェックポイントの実行と判断し、ＴＣＣＰ通知部１１１に通知する。
【００２４】
以上のように、ＴＣ実行フラグ設定部とＴＣ実行フラグ保持部とメモリ更新検出部とＴＣＣＰ判断部を備えることにより、ターゲットＣＰＵの命令実行であっても、ターゲットＣＰＵ命令のメモリ更新動作をターゲットＣＰＵ命令の実行に伴なうチェックポイントを認識できるので、ＣＰ実行復元部１０７のハードウェアの小型化ができ、例外発生時の処理時間が短縮できる。
【００２５】
図８はチェックポイント検出部の他の具体的な構成を示す図である。
図８において、ＣＰ検出部１０３ｆは、内部にチェックポイントを検出するＴＣＣＰ検出部１１０ｆと、ＴＣＣＰ通知部を持つ。またＴＣＣＰ検出部１１０ｆは、内部にホストメモリサブシステム２００上に割り付けたターゲットシステム２０４の先頭番地及び終了番地をＴエリア保持部に設定するＴエリア設定部１２５と、ホストメモリサブシステム２００上に割り付けたターゲットシステム２０４の先頭番地及び終了番地を保持するＴ（ターゲットシステム）エリア保持部１２６ｃ、ホストＣＰＵ１００のメモリ更新を検出するメモリ更新検出部１２４と、メモリアクセスがＴエリア保持部１２６で保持しているＴシステム先頭番地とＴシステム終了番地で示されるターゲットシステム２０４へのアクセスであるかどうかを検出するメモリエリア検出部１２７と、ターゲットシステム２０４のメモリ更新によってチェックポイント検出を判断するＴＣＣＰ判断部１２１ｄを持つ。
【００２６】
ターゲットＣＰＵ命令の実行に伴なうチェックポイントの検出動作を図８に基いて説明する。
ＣＰＵシミュレータ起動時にホストメモリサブシステム２００に割り付けるターゲットシステム２０４のエリアを決定し、Ｔエリア設定部１２５を用いてＴエリア保持部１２６にターゲットシステム２０４の先頭番地と終了番地を設定する。メモリエリア検出部１２７は、メモリアクセス情報のうちアドレス情報を監視し、保持しているＴシステム先頭番地とＴエリア終了番地で示されるターゲットシステム２０４へのメモリアクセスかどうかを検出する。メモリアクセスがターゲットシステム２０４へのメモリアクセスであることを検出すると、ＴＣＣＰ判断部１２１ｄに通報を行う。メモリ更新検出部１２４はメモリアクセス情報からメモリ更新事象を検出し、メモリ更新が発生したことをＴＣＣＰ判断部１２１ｄに通知する。ＴＣＣＰ判断部１２１ｄは、メモリエリア検出部１２７からの通報でメモリアクセスがターゲットシステム２０４の範囲であり、メモリ更新検出部１２４からメモリ更新が発生したことの通知を受けて、ターゲットＣＰＵ命令実行によるチェックポイントの実行と判断し、ＴＣＣＰ通知部１１１に通知する。
【００２７】
以上のように、Ｔエリア設定部とＴエリア保持部とメモリエリア検出部とメモリ更新検出部とＴＣＣＰ判断部を備えることにより、ターゲットＣＰＵの命令実行であっても、ターゲットＣＰＵ命令のメモリ更新動作をターゲットＣＰＵ命令の実行に伴なうチェックポイントを認識できる。
【００２８】
図９はチェックポイント検出部の他の具体的な構成を示す図である。
図９において、ＣＰ検出部１０３ｇは、内部にチェックポイントを検出するＴＣＣＰ検出部１１０ｇと、ＴＣＣＰ通知部を持つ。またＴＣＣＰ検出部１１０ｇは、内部にホストメモリサブシステム２００上に割り付けた変換バッファ２０３の先頭番地及び終了番地を変換バッファエリア保持部に設定する変換バッファエリア設定部１２８と、ホストメモリサブシステム２００に割り付けた変換バッファ２０３の先頭番地及び終了番地を保持する変換バッファエリア保持部１２９と、メモリ更新検出部１２４と、ターゲットＣＰＵ命令の変換済コード実行のメモリ更新によってチェックポイント検出を判断するＴＣＣＰ判断部１２１ｅを持つ。
【００２９】
ターゲットＣＰＵ命令の実行に伴なうチェックポイントの検出動作を図９に基いて説明する。
ＣＰＵシミュレータ起動時にホストメモリサブシステム２００に割り付ける変換バッファ２０３のエリアを決定し、変換バッファエリア設定部１２８を用いて変換バッファエリア保持部１２９に変換バッファ２０３の先頭番地と終了番地を設定する。メモリ更新検出部１２４はメモリアクセス情報からメモリ更新事象を検出し、メモリ更新が発生したことをＴＣＣＰ判断部１２１ｅに通知する。ＴＣＣＰ判断部１２１ｅは、ホストＣＰＵのプログラムカウンタを監視し、変換バッファエリア保持部１２９が保持する変換バッファ先頭番地と変換バッファ終了番地で示される変換バッファ２０３での命令実行であり、メモリ更新検出部１２４からメモリ更新が発生したことの通知を受けて、ターゲットＣＰＵ命令実行によるチェックポイントの実行と判断し、ＴＣＣＰ通知部１１１に通知する。
【００３０】
以上のように、変換バッファエリア設定部と変換バッファエリア保持部とメモリ更新検出部とＴＣＣＰ判断部を備えることにより、ターゲットＣＰＵの命令実行であっても、ターゲットＣＰＵ命令のメモリ更新動作をターゲットＣＰＵ命令の実行に伴なうチェックポイントを認識できる。
【００３１】
図１０は、チェックポイントの判断を行うＴＣＣＰ判断部の他の具体構成を示す図である。
図１０において、ＴＣＣＰ通知部１１１と、ホストＣＰＵ１００のメモリ更新を検出するメモリ更新検出部１２４と共に示されているＴＣＣＰ判断部１２１ｈは、ターゲットＣＰＵ命令の変換済コード実行のメモリ更新によってチェックポイント検出を判断する。そして内部に、メモリ更新規定回数保持部にメモリ更新規定回数を設定するメモリ更新規定回数設定部１３０と、メモリ更新の規定回数を保持するメモリ更新規定回数保持部１３１と、メモリ更新検出部１２４において検出したメモリ更新の回数をカウントするメモリ更新回数カウント部１３２と、メモリ更新規定回数保持部１３１が保持する規定回数と、メモリ更新回数カウント部１３２がカウントするメモリ更新回数が一致した場合に、メモリ更新回数カウント部１３２にリセット要求を発行し、ターゲットＣＰＵチェックポイント検出したとしてＴＣＣＰ通知部に通知するメモリ更新回数比較部１３３と持つ。
【００３２】
ターゲットＣＰＵ命令の実行に伴なうチェックポイントの判断動作を図１０に基いて説明する。
ＣＰＵシミュレータ起動時（あるいは起動中）にターゲットＣＰＵ命令によるメモリ更新が何回実行されるとチェックポイント実行とみなすかをメモリ更新規定回数設定部１３０を用いて、メモリ更新規定回数保持部１３１に設定する。先に説明したように、ＴＣＣＰ判断部１２１ｃ〜１２１ｅでターゲットＣＰＵ命令実行によるメモリ更新をターゲットＣＰＵ命令実行のチェックポイントの実行と判断するだけでなく、メモリ更新回数カウント部１３２でメモリ更新の回数をカウントした値と、あらかじめ設定されている規定回数を保持しているメモリ更新規定回数保持部１３１の値をメモリ更新回数比較部１３３で比較し、カウントした値が規定値と一致あるいは超えた場合に、ターゲットＣＰＵ命令実行によるチェックポイントの実行と判断し、ＴＣＣＰ通知部１１１に通知する。同時に、メモリ更新の回数をカウントしているメモリ更新回数カウント部１３２に対して、リセット要求を通知する。メモリ更新回数カウント部１３２は、メモリ更新回数比較部１３３からのリセット要求に従い、メモリ更新の回数をクリアする。その後、再び、メモリ更新の回数をカウントしはじめる。
【００３３】
以上のように、ＴＣＣＰ判断部にメモリ更新規定回数設定部とメモリ更新規定回数保持部とメモリ更新回数カウント部とメモリ更新回数比較部を備えたので、ターゲットＣＰＵ命令の実行であっても、任意にターゲットＣＰＵ命令のメモリ更新動作をターゲットＣＰＵ命令の実行に伴なうチェックポイントを認識できる。
【００３４】
実施の形態３．
本実施の形態では、例外検出部の具体的な構成と動作を説明する。
図１１は本実施の形態におけるターゲットＣＰＵ命令の実行に伴なう例外検出を行うＴＣ例外検出部の構成を示すブロック図である。
図１１において、例外などの事象を検出する例外検出部１０４ｃは、内部にターゲットＣＰＵ命令の実行に起因する例外事象を検出するＴＣ例外検出部１１２ｃと、ＴＣ例外検出部１１２ｃにおいて検出した例外事象をＣＰ実行復元部１０７に通知するＴＣ例外通知部１１３を持つ。更にＴＣ例外検出部１１２ｃは、内部に変換済命令コードの実行開始時にＴＣ実行フラグ保持部をセットし、終了時にリセットするＴＣ実行フラグ設定部１２２と、ターゲットＣＰＵ命令の実行を示すＴＣ実行フラグ保持部１２３と、ホストＣＰＵでの例外事象が発生した時にターゲットＣＰＵ実行フラグ保持部１２３がセットされていることで、ターゲットＣＰＵ例外検出とするＴＣ例外判断部１４０ａを持つ。
【００３５】
ターゲットＣＰＵ命令の実行に伴なう例外の検出動作を図１１に基いて説明する。
ターゲットＣＰＵ命令を変換した変換済コードを開始するときに、ＴＣ実行フラグ設定部１２２によりＴＣ実行フラグ保持部１２３にセット信号を送信する。変換済コード実行が終了すると、ＴＣ実行フラグ設定部１２２は、ＴＣ実行フラグ保持部１２３にリセット信号を送信する。ＴＣ実行フラグ保持部１２３は、ＴＣ実行フラグ設定部１２２からのセット／リセット信号に従い、ターゲットＣＰＵ命令の実行を示すターゲットＣＰＵ実行フラグを保持する。ＴＣ例外判断部１４０ａは、ホストＣＰＵでの例外事象が発生した時にターゲットＣＰＵ実行フラグ保持部１２３がセットされていれば、ターゲットＣＰＵ命令実行に伴なう例外と判断し、ＴＣ例外通知部１１３にターゲットＣＰＵ命令実行に伴なう例外発生を通知する。
【００３６】
以上のように、ＴＣ例外検出部にＴＣ実行フラグ設定部とＴＣ実行フラグ保持部とＴＣ例外判断部を備えることにより、ホストＣＰＵでの例外発生であっても、ターゲットＣＰＵ命令の実行に伴なう例外発生を認識できる。
【００３７】
図１２は、ＴＣ例外検出部の他の具体的な構成を示す図である。
図１２において、例外検出部１０４ｄは、内部にＴＣ例外検出部１１２ｄと、ＴＣ例外通知部１１３を持つ。また例外検出手段１１２ｄは、内部にホストメモリサブシステム２００上に割り付けた変換バッファ２０３の先頭番地及び終了番地を変換バッファエリア保持部に設定する変換バッファエリア設定部１２８と、ホストメモリサブシステム２００に割り付けた変換バッファ２０３の先頭番地及び終了番地を保持する変換バッファエリア保持部１２９と、ホストＣＰＵでの例外事象が発生した時のホストＣＰＵのプログラムカウンタが変換バッファエリア保持部１２９で保持する変換バッファ２０３の先頭番地及び終了番地で指定されたエリアに含まれるかどうかを判断し、含まれている場合にターゲットＣＰＵ例外検出とするＴＣ例外判断部１４０ｂを持つ。
【００３８】
ターゲットＣＰＵ命令の実行に伴なう例外の検出動作を図１２に基いて説明する。
ＣＰＵシミュレータ起動時にホストメモリサブシステム２００に割り付ける変換バッファ２０３のエリアを決定し、変換バッファエリア設定部１２８を用いて変換バッファエリア保持部１２９に変換バッファ２０３の先頭番地と終了番地を設定する。ＴＣ例外判断部はホストＣＰＵのプログラムカウンタの値を監視し、ホストＣＰＵでの例外事象が発生した時に、ホストＣＰＵのプログラムカウンタが変換バッファエリア保持部１２９で保持する変換バッファ先頭番地と変換バッファ終了番地で示される変換バッファ２０３での命令実行であることで、ターゲットＣＰＵ命令実行に伴なう例外と判断し、ＴＣ例外通知部１１３にターゲットＣＰＵ命令実行に伴なう例外発生を通知する。
【００３９】
以上のように、ＴＣ例外検出部に変換バッファエリア設定部と変換バッファエリア保持部とＴＣ例外判断部を備えることにより、ホストＣＰＵでの例外発生であっても、ターゲットＣＰＵ命令の実行に伴なう例外発生を認識できる。
【００４０】
実施の形態４．
本実施の形態では、プログラム実行部におけるＴＣ更新情報に基づくターゲットＣＰＵのチェックポイントの動作について説明する。
図１３はターゲットＣＰＵ命令実行に伴なうレジスタ更新情報を保持するレジスタバックアップ部を含むプログラム実行部の構成を示す図であり、図１４は、ターゲットＣＰＵ命令実行に伴なうメモリ更新の履歴情報を保持するＴＣメモリ更新履歴部の構成を示す図である。
図１３において、ホストＣＰＵ１００上に実装され、命令の取り出し、ディスパッチ、演算ユニットなどから構成されるプログラム実行部は内部に、演算実行時等に使用するホストＣＰＵレジスタ１０２と、ホストＣＰＵレジスタ１０２上でターゲットＣＰＵのレジスタとして割り当てられたターゲットＣＰＵレジスタ１０５と、ターゲットシステムのハードウェアリソースの更新情報を採取し、保持するＴＣ更新情報保持部１１８を持つ。また、ＴＣＣＰ受信部１１４へのチェックポイント実行通知によりチェックポイントを実行するＣＰ実行部１１５と、ＴＣ例外受信部１１６への通知により、最後に実行したチェックポイント状態にＴＣ更新情報保持部１１８を復元するＣＰ復元部１１７と、ホストＣＰＵレジスタ１０２に割り付けたターゲットＣＰＵのレジスタをチェックポイント実行でバックアップするレジスタ・バックアップ部１５０とを使用する。
【００４１】
図１４において、ＴＣ更新情報保持部１１８は、内部にターゲットＣＰＵ命令実行に伴なうメモリ更新の更新アドレス、更新データを対にして保持するＴＣメモリ更新履歴保持部１５４と、ＴＣ（ターゲットＣＰＵ）メモリ更新履歴保持部１５４の最後の未コミットを示すＴＡＩＬポインタ１５１と、ＴＣメモリ更新履歴保持部１５４のコミット済と未コミットの境界を示すＧＡＴＥポインタ１５２と、ＴＣメモリ更新履歴保持部１５４でコミット済のメモリ更新情報をキャッシュメモリ１０８に反映したことを示すＨＥＡＤポインタ１５３を持つ。その他の要素は、図１、図１３に示す同番号の要素と同等のものである。
【００４２】
ターゲットＣＰＵのレジスタ情報のチェックポイント実行と復元動作を、図１３に基いて説明する。
ターゲットＣＰＵ命令の変換済コードは、高速化のためホストＣＰＵレジスタ上にターゲットＣＰＵのレジスタを割り付けて実行する。チェックポイント実行事象の検出によりチェックポイント実行を要求されたＣＰ実行部１１５は、ホストＣＰＵレジスタ１０２に割り当てられたターゲットＣＰＵレジスタ１０５をレジスタバックアップ部１５０にコピーを行うことで、チェックポイントを実行する。例外事象の検出によりチェックポイント復元を要求されたＣＰ復元部１１７は、レジスタバックアップ部１５０に保存されている、最後のチェックポイント実行時のターゲットＣＰＵレジスタ情報をホストＣＰＵレジスタ１０２上に割り当てられたターゲットＣＰＵレジスタ１０５に書き戻すことで、チェックポイントを復元する。チェックポイントの復元がされる前に、チェックポイントの実行がされた場合には、チェックポイントを復元することなく、現在のターゲットＣＰＵレジスタ１０５のレジスタ情報をレジスタバックアップ部１５０に上書きする。
ホストＣＰＵレジスタ１０２でのターゲットＣＰＵレジスタ１０５の割付は、固定であっても構わないし、ＣＰＵシミュレータ起動時に設定しても構わない。
【００４３】
ターゲットＣＰＵのメモリ更新情報のチェックポイント実行とチェックポイント復元動作を、図１４に基いて説明する。
まず、ターゲットＣＰＵのメモリ更新情報の履歴保持について説明する。
メモリの更新情報のうち、ホストＣＰＵ命令実行によるメモリ更新情報はホストＣＰＵストアバッファ１０６に保存し、ターゲットＣＰＵ命令実行によるメモリ更新情報はＴＣメモリ更新履歴保持部１５４に保存する。メモリの更新がターゲットＣＰＵ命令実行によるか、ホストＣＰＵ命令実行によるかの判断は、先に述べたＴＣ実行フラグ設定部１２２とＴＣ実行フラグ保持部１２３とメモリ更新検出部１２４とＴＣＣＰ判断部１２１ｃを備えることや、Ｔエリア設定部１２５とＴエリア保持部１２６とメモリ更新検出部１２４とメモリエリア検出部１２７とＴＣＣＰ判断部１２１ｄを備えることや、または、変換バッファエリア設定部１２８と変換バッファエリア保持部１２９とメモリエリア検出部１２７とＴＣＣＰ判断部１２１ｅを備えることで可能である。
ＴＣメモリ更新履歴保持部１５４は、ターゲットＣＰＵ命令実行によるメモリ更新アドレスと更新データの情報を対で保持する。
【００４４】
次いで、ターゲットＣＰＵのメモリ更新のチェックポイント実行及びチェックポイント復元動作を説明する。
ＴＣメモリ更新履歴保持部１５４の書き込み及び読み出しポインタとして、ＴＣメモリ更新履歴保持部１５４の最後の未コミットを示すＴＡＩＬポインタ１５１、コミット済と未コミットの境界を示すＧＡＴＥポインタ１５２、コミット済のメモリ更新情報をキャッシュメモリ１０８に反映したことを示すＨＥＡＤポインタ１５３の３つのポインタがある。３つのポインタの初期状態は、ＴＣメモリ更新履歴保持部１５４の同じ場所を示している。この場合、指し示す場所はＴＣメモリ更新履歴保持部１５４の先頭であっても、最後であっても、中間であってもよい。ターゲットＣＰＵ命令の実行によるメモリ更新が検出されると、ＴＡＩＬポインタ１５１が示すＴＣメモリ更新履歴保持部１５４の位置にメモリ更新アドレスと更新データの情報を対で保持し、ＴＡＩＬポインタ１５１を１つ移動する。その後も、ターゲットＣＰＵ命令の実行によるメモリ更新が検出されると、同様の処理が行われる。一方、ターゲットＣＰＵ命令実行によるチェックポイント実行が検出されると、ＣＰ実行部１１５からの指示でＧＡＴＥポインタ１５２にＴＡＩＬポインタ１５１の内容がコピーされる。次のターゲットＣＰＵ命令実行によるチェックポイント検出まで、ＴＣメモリ更新履歴保持部１５４にメモリ更新アドレスと更新データの情報を対で保持しながら、ＴＡＩＬポインタ１５１を更新していく。
【００４５】
ターゲットＣＰＵ命令実行による例外が検出されると、ＣＰ復元部１１７からの指示でＴＡＩＬポインタ１５１にＧＡＴＥポインタ１５２の内容がコピーされ、最後のチェックポイント実行時の状態にＴＣメモリ更新履歴保持部１５４が復元される。チェックポイント実行でコミットしたメモリ更新情報は、ＨＥＡＤポインタ１５３が指し示すＴＣメモリ更新履歴保持部１５４が保持しているメモリ更新アドレスと更新データの対をキャッシュメモリ１０８に通知し、キャッシュメモリを更新すると同時に、ＨＥＡＤポインタ１５３を更新する。ＨＥＡＤポインタ１５３はＴＡＩＬポインタ１５１やＧＡＴＥポインタ１５２と独立に制御されるが、未コミットのメモリ更新情報をキャッシュメモリ１０８に格納することになるため、ＨＥＡＤポインタ１５３はＧＡＴＥポインタ１５２を追い越すことはできない。
【００４６】
以上のように、ＴＣ情報保持部にレジスタバックアップ部とＴＣ枝盛更新履歴保持部を備えることにより、ターゲットＣＰＵ命令実行によるチェックポイントのみを実行、及び復元することが可能となる。
【００４７】
図１５はＴＣ履歴情報保持部の他の具体的な構成を示す図である。
図１５において、ＴＣ更新情報保持部１１８ｃは、ターゲットＣＰＵ命令実行に伴なうメモリ更新の更新アドレス、更新データ、更新前データを対にして保持するＴＣメモリ更新履歴保持部１５５を持っている。即ち図１４の構成に比べて、更新前データも対にして保持する。
【００４８】
次に図１４の構成とは異なる図１５構成に固有の新しい動作について説明する。
まず、ターゲットＣＰＵのメモリ更新情報の履歴保持について説明する。
メモリの更新情報のうち、ホストＣＰＵ命令実行によるメモリ更新情報はホストＣＰＵストアバッファ１０６に保存し、ターゲットＣＰＵ命令実行によるメモリ更新情報はＴＣメモリ更新履歴保持部１５４に保存する。メモリの更新がターゲットＣＰＵ命令実行によるか、ホストＣＰＵ命令実行によるかの判断は、先に述べたＴＣ実行フラグ設定部１２２とＴＣ実行フラグ保持部１２３とメモリ更新検出部１２４とＴＣＣＰ判断部１２１ｃを備えることや、Ｔエリア設定部１２５とＴエリア保持部１２６とメモリ更新検出部１２４とメモリエリア検出部１２７とＴＣＣＰ判断部１２１ｄを備えることや、または変換バッファエリア設定部１２８と変換バッファエリア保持部１２９とメモリエリア検出部１２７とＴＣＣＰ判断部１２１ｅを備えることで可能である。ＴＣメモリ更新履歴保持部１５５は、ターゲットＣＰＵ命令実行によるメモリ更新アドレスと更新データと更新前データの情報を対で保持する。
【００４９】
次いで、ターゲットＣＰＵのメモリ更新のチェックポイント実行及びチェックポイント復元について説明する。
ＴＣメモリ更新履歴保持部１５５の書き込み及び読み出しポインタとして、最後の未コミットを示すＴＡＩＬポインタ１５１、コミット済と未コミットの境界を示すＧＡＴＥポインタ１５２、ＴＣメモリ更新履歴保持部１５５でコミット済のメモリ更新情報をキャッシュメモリ１０８に反映したことを示すＨＥＡＤポインタ１５３の３つのポインタがあり、３つのポインタの初期状態は、同じ場所を示している。ターゲットＣＰＵ命令の実行によるメモリ更新が検出されると、メモリ更新アドレスでキャッシュメモリ１０８を参照し、更新前データを取得し、ＴＡＩＬポインタ１５１が示すＴＣメモリ更新履歴保持部１５５に、メモリ更新アドレスと更新データと更新前データの情報を対で保持し、ＴＡＩＬポインタ１５１を１移動する。
その後も、ターゲットＣＰＵ命令の実行によるメモリ更新が検出されると、同様の処理が行われる。
【００５０】
ターゲットＣＰＵ命令実行によるチェックポイント実行が検出されると、ＧＡＴＥポインタ１５２にＴＡＩＬポインタ１５１の内容がコピーされる。次のターゲットＣＰＵ命令実行によるチェックポイント検出まで、ＴＣメモリ更新履歴保持部１５５にメモリ更新アドレスと更新データと更新前データの情報を対で保持しながら、ＴＡＩＬポインタ１５１を更新していく。
ターゲットＣＰＵ命令実行による例外が検出されると、ＴＡＩＬポインタ１５１にＧＡＴＥポインタ１５２の内容がコピーされ、最後のチェックポイント実行時の状態にＴＣメモリ更新履歴保持部１５５が復元される。チェックポイント実行でコミットしたメモリ更新情報は、ＨＥＡＤポインタ１５３が指し示すＴＣメモリ更新履歴保持部１５５が保持している位置の、メモリ更新アドレスと更新データの対をキャッシュメモリ１０８に通知し、キャッシュメモリを更新すると同時に、ＨＥＡＤポインタ１５３を更新する。ＨＥＡＤポインタ１５３はＴＡＩＬポインタ１５１やＧＡＴＥポインタ１５２と独立に制御される。
ＨＥＡＤポインタ１５３がＧＡＴＥポインタ１５２を追い越して、キャッシュメモリ１０８を更新した状態で、例外検出によるチェックポイントの復元が発生した場合には、ＨＥＡＤポインタ１５３とＧＡＴＥポインタ１５２が示す間のＴＣメモリ更新履歴保持部１５５が保持している更新前データの内容をメモリ更新アドレスに従い、キャッシュメモリ１０８に格納することで、キャッシュメモリ１０８の復元を行う。また、ＨＥＡＤポインタ１５３にＧＡＴＥポインタ１５２の内容がコピーされる。
【００５１】
以上のように、ＴＣ情報保持部にレジスタバックアップ部とＴＣメモリ更新履歴保持部を備えることにより、ターゲットＣＰＵ命令実行によるチェックポイントのみを実行、及び復元することが可能となる。
【００５２】
【発明の効果】
以上のようにこの発明によれば、チェックポイントを含めて変換後の命令を実行し、例外処理時にはチェックポイントの復元処理に戻るようにしたので、シミュレーション規模を抑えて、処理時間を短縮できる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１におけるプロセッサ・シミュレータの構成図である。
【図２】実施の形態１におけるプロセッサ・シミュレータの動作フロー図である。
【図３】実施の形態１におけるプログラム実行部の構成図である。
【図４】この発明の実施の形態２におけるインタプリタタの動作を説明する変換例の図である。
【図５】実施の形態２におけるチェックポイント検出部の構成を示す図である。
【図６】実施の形態２における他のチェックポイント検出部の構成図である。
【図７】実施の形態２における他のチェックポイント検出部の構成図である。
【図８】実施の形態２における他のチェックポイント検出部の構成図である。
【図９】実施の形態２における他のチェックポイント検出部の構成図である。
【図１０】実施の形態２における他のチェックポイント検出部の細部構成図である。
【図１１】この発明の実施の形態３における例外検出部の構成を示す図である。
【図１２】実施の形態３における他の例外検出部の構成図である。
【図１３】この発明の実施の形態４におけるプログラム実行部の構成を示す図である。
【図１４】実施の形態４におけるチェックポイント更新情報保持部の構成を示す図である。
【図１５】実施の形態４における他のチェックポイント更新情報保持部の構成を示す図である。
【図１６】従来のプロセッサ・シミュレータの構成を示す図である。
【図１７】従来のプロセッサ・シミュレータの動作を示すフロー図である。
【符号の説明】
１００，１０１ｂ  ホスト・プロセッサ、１０１，１０１ｂ，１０１ｃ  プログラム実行部、１０３，１０３ｃ，１０３ｄ，１０３ｅ，１０３ｆ，１０３ｇ  チェックポイント検出部、１０４，１０４ｃ，１０４ｄ  例外検出部、１０７  チェックポイント実行復元部、１１０，１１０ｃ，１１０ｄ，１１０ｅ，１１０ｆ，１１０ｇ  ターゲットＣＰＵチェックポイント検出部、１１１  ターゲットＣＰＵチェックポイント通知部、１１２，１１２ｃ，１１２ｄ  ターゲットＣＰＵ例外検出部、１１３  ターゲットＣＰＵ例外通知部、１１４  ターゲットＣＰＵチェックポイント受信部、１１５  チェックポイント実行部、１１６  チェックポイント例外受信部、１１７  チェックポイント復元部、１１８，１１８ｃ  チェックポイント更新情報保持部、１１９  ホスト・プロセッサ命令デコーダ、１２１ａ，１２１ｂ，１２１ｃ，１２１ｄ，１２１ｅ，１２１ｈ  ターゲットＣＰＵ判断部、１２３  チェックポイント（ＴＣ）実行フラグ保持部、１２４  メモリ更新検出部、１２６  ターゲット・エリア保持部、１２７  メモリエリア検出部、１２９  変換バッファエリア保持部、１３２  メモリ更新回数カウント部、１３３メモリ更新回数比較部、１４０ａ，１４０ｂ  チェックポイント例外判断部、１５０  レジスタ・バックアップ部、１５４，１５５  ターゲットＣＰＵメモリ更新履歴保持部、２００  ホストメモリサブシステム、２０１  インタプリタ、Ｓ６  変換後コードの実行ステップ、Ｓ７  チェックポイント復元ステップ。
【図１】
2004157642.tif 000003
【図２】
2004157642.tif 000004
【図３】
2004157642.tif 000005
【図４】
2004157642.tif 000006
【図５】
2004157642.tif 000007
【図６】
2004157642.tif 000008
【図７】
2004157642.tif 000009
【図８】
2004157642.tif 000010
【図９】
2004157642.tif 000011
【図１０】
2004157642.tif 000012
【図１１】
2004157642.tif 000013
【図１２】
2004157642.tif 000014
【図１３】
2004157642.tif 000015
【図１４】
2004157642.tif 000016
【図１５】
2004157642.tif 000017
【図１６】
2004157642.tif 000018
【図１７】
2004157642.tif 000019