JP2004185527A - シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2004185527A
JP2004185527A JP2002354619A JP2002354619A JP2004185527A JP 2004185527 A JP2004185527 A JP 2004185527A JP 2002354619 A JP2002354619 A JP 2002354619A JP 2002354619 A JP2002354619 A JP 2002354619A JP 2004185527 A JP2004185527 A JP 2004185527A
Authority
JP
Japan
Prior art keywords
conversion
instruction
address
code
target cpu
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
Application number
JP2002354619A
Other languages
English (en)
Inventor
Koji Nishikawa
浩司 西川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2002354619A priority Critical patent/JP2004185527A/ja
Publication of JP2004185527A publication Critical patent/JP2004185527A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ターゲットCPUの動作をホストCPU上で支障なく、シミュレーションできるようにすることを目的とする。
【解決手段】ターゲットCPUの命令コードを有するバイナリデータを読み込む読込手段200と、読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換手段300と、変換コードを保持する変換コード保持手段500と、ターゲットCPUの命令コードと変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行手段600とを備えたことを特徴とする。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、シミュレーション対象となるターゲットCPU(Central Processing Unit)の動作をホストCPU上でシミュレーションするCPUシミュレーン方式であって、ターゲットCPUプログラムをホストCPUの命令列に変換し、実行するようにしたCPUシミュレーン方式に関するものである。
【0002】
【従来の技術】
ターゲットCPUが命令コードとして参照するアドレス領域中に命令コードとして使わないデータが混在していても、それに影響されずに命令コードをシミュレーションの為のホストCPUの命令列に正しく変換し、ターゲットCPUの動作をホストCPU上で支障なくシミュレートできるようにすることを目的として、以下の手段が記載されている。ホストCPU上でターゲットCPUの動作をシミュレーションする前段階で、変換手段は、ターゲットCPUが命令コードとして参照するアドレス領域のバイナリデータを命令コードの配置が可能な全ての番地0,1,2,…を基点として命令コードに解釈し、解釈した命令コードを、それをシミュレーションするホストCPUの命令列と、解釈された命令コードの次にターゲットCPUが実行する命令コードのシミュレーションを行うホストCPUの命令列に制御を移す命令列とから構成されたシミュレーション命令列3−1,3−2,3−3,…に変換する。(特許文献1参照)
【0003】
【特許文献1】
特開平6−324883号公報
【特許文献2】
特開平11−249905号公報
【特許文献3】
特開2001−56765号公報
【0004】
【発明が解決しようとする課題】
従来のCPUシミュレーション方式では、ターゲットCPU命令をホストCPUで命令の取り出し、命令の解釈、命令の実行という逐次処理していては、性能向上できないため、ターゲットCPU命令を実行する前にホストCPU命令列に変換し、命令の実行処理のみにすることで高速化を実施している。
また、従来のCPUシミュレーション方式では、オペレーティングシステムのように、ターゲットCPUのプログラムが周辺機器からプログラムをロードして実行するような場合(IPL)や、ターゲットCPUプログラム自身がプログラムを生成、または更新するような場合には、更新されたメモリに対応するポインタ参照テーブルがなく、ターゲットCPU命令のシミュレーションができないという問題点があった。
【0005】
この発明は、ターゲットCPUのプログラムがプログラムをロード、生成、または更新するような場合でも、ターゲットCPUの動作をホストCPU上で支障なく、シミュレーションできるようにし、且つ、シミュレーションシステムを小型化、高速化できるようにすることを目的とする。
【0006】
また、この発明は、ターゲットCPUプログラムを変換した際に設定するポインタ参照テーブル保持手段に巨大なテーブルが必要となりがちであるが、ターゲットCPUプログラムが複数の領域に分割されている場合でも、テーブルの大型化あるいはテーブル検索の速度低下が生じないようにすることを目的とする。
【0007】
【課題を解決するための手段】
この発明に係るシミュレーション装置は、ターゲットCPU(CentralProcessing Unit)の命令コードを有するバイナリデータを読み込む読込手段と、
上記読込手段により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換手段と、
上記命令変換手段により生成された変換コードを保持する変換コード保持手段と、
上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持手段により保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行手段と
を備えたことを特徴とする。
【0008】
【発明の実施の形態】
実施の形態1.
図1は、実施の形態1にかかるCPUシミュレーション装置の構成を示す構成図である。
図2はホストCPU上で動作するCPUシミュレーン方式のフローチャートを示す図である。
【0009】
図1において、CPUシミュレーション装置(シミュレーション装置の一例である)は、読み込み手段200、命令変換手段300、ポインタ参照テーブル保持手段400、変換コード保持手段500、実行手段600を備えている。
ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。
読み込み手段200はホストCPU上でターゲットCPUバイナリデータ100をCPUシミュレータにロードする。言いかえると、読込手段200は、ターゲットCPUの命令コードを有するバイナリデータを読み込む。
命令変換手段300は読込手段200によって読み込まれたターゲットCPUバイナリデータをホストCPUの命令列に変換する。言いかえると、命令変換手段300は、上記読込手段200により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する。
変換コード保持手段500は命令変換手段300によってターゲットCPU命令をホストCPU命令列に変換された変換コードを格納する。言いかえると、変換コード保持手段500は、上記命令変換手段300により生成された変換コードを保持する。
ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。言いかえると、テーブル保持手段の一例として、ポインタ参照テーブル保持手段400は上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段500により保持された変換コードのアドレスとを対応させた対応テーブルを保持する。
変換コード実行手段700は変換された変換コードを実行する。言いかえると、ターゲットCPU命令コード実行手段の一例である変換コード実行手段700は、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを入力し、入力された命令コードを解釈し、解釈された命令コードを実行する。
逐次実行手段800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。言いかえると、変換コード実行手段の一例として、逐次実行手段800は、上記変換コード保持手段500により保持された変換コードを実行する。
判定手段900はターゲットCPUのプログラムカウンタでポインタ参照テーブル保持手段400を検索し、有効なポインタが格納されているかを判断し、有効なポインタが格納されている場合に変換コード実行手段700を起動し、無効なポインタが格納されている、または、ターゲットCPUのプログラムカウンタが格納されていない場合に逐次実行手段800を起動する。言いかえると、判定手段900は、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されているかどうかを判定する。
実行手段600は判定手段900、変換コード実行手段700、逐次実行手段800を具備する。言いかえると、実行手段600は、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持手段500により保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする。実行手段600は、上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに基づいて、シミュレーション対象となるターゲットCPUの命令コードに対応する変換コードを入力し、入力された変換コードを実行する。実行手段600は、上記判定手段900により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段900により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段500により保持された変換コードを所定の基準により実行する。
【0010】
次に動作について図1と図2を例に説明する。
ターゲットCPUの命令コードを含むバイナリデータ100をホストCPU上でシミュレーションする前に、変換コード保持手段500に格納するターゲットCPU命令に対応するホストCPUの命令列を参照するため、ターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対をポインタ参照テーブル保持手段400に設定する(図2のS1)。命令変換手段300を用いて、ターゲットCPU命令をホストCPU命令列に変換する(図2のS2)。変換された命令列は変換コード保持手段500に保持される(図2のS3)。読み込まれたバイナリデータの変換が完了していない場合(図2のS4でNの場合)には、完了するまでポインタ参照テーブルの設定(図2のS1)、変換コードの生成(図2のS2)、変換コードの格納(図2のS3)を繰り返し行う。その際、ターゲットCPUシステムで定義された命令長の最小単位で変換を行う。たとえば、ターゲットCPUシステムで定義されている命令長が4バイトのみであれば、4バイト単位で変換を行い、ターゲットCPUシステムで定義されている命令長が2バイト、4バイト、6バイトの3種類であれば、2バイト単位で変換を行う。また、読み込まれたバイナリデータの命令コードのエリアであっても、データエリア(オペランドエリア)であっても、同様に変換を行う。データエリアから読み出したデータや命令の途中から読み出した命令コードであっても、命令の先頭から読み出したものとして、変換を行う。読み出したデータあるいは命令コードが未定義命令に相当する場合には、ターゲットCPUでの未定義命令実行の命令列に変換する。
読み込まれたバイナリデータの変換が完了した場合(図2のS4でYの場合)には、開始すべきターゲットCPUのプログラムカウンタを設定(図2のS5)し、設定されたPCに従い、ポインタ参照テーブル保持手段400を検索する(図2のS6)。判定手段900はポインタ参照テーブル保持手段400から取り出したポインタ情報が有効な場合(図2のS7でYの場合)には、変換済コードを実行する(図2のS8)ために変換コード実行手段700の起動を行う。判定手段900はポインタ参照テーブル保持手段400から取り出したポインタ情報が無効な場合や該当するポインタ情報がなかった場合(図2のS7でNの場合)には、命令の取り出し、命令の解釈、命令の実行を逐次的に行う(図2のS10)ために逐次処理手段800の起動を行う。変換済コード実行(図2のS8)および逐次処理実行(図2の10)の完了後は、プログラムカウンタの更新を行い(図2のS9および図2のS11)、次に実行するターゲットCPUの変換済コードを検索する(図2のS6)。これらのポインタ参照テーブル検索(図2のS6)からプログラムカウンタの更新(図2のS9および図2のS11)までを繰り返し実行することで、ターゲットCPU命令のシミュレーションを行う。ターゲットCPUプログラムがオペレーティングシステムのようにターゲットCPUのプログラムが周辺機器からプログラムをロードして実行するような場合には、ロードされたプログラムはポインタ参照テーブル400に登録されていないため、逐次実行手段800でシミュレーションされる。
【0011】
以上のように、ポインタ参照テーブルに登録されているかどうか、または登録された情報が有効であるか無効であるかを判断し、ターゲットCPU命令のシミュレーション手段を切り替えることで、ターゲットCPUのプログラムがプログラムをロード、生成、または更新するような場合でも、ターゲットCPUの動作をホストCPU上で支障なくシミュレーションすることができる。
【0012】
以上のように、本実施の形態1におけるCPUシミュレーション方式は、シミュレーション対象となるターゲットCPUの動作をホストCPU上でシミュレーションするシミュレーション方式において、以下の手段を備えたCPUシミュレーション方式である。
(a)ホストCPU上に格納されているターゲットCPUの命令コードを含むバイナリデータを読み込む読込手段、
(b)前記読込手段によって読み込まれたバイナリデータをシミュレーション実行前にあるいは、逐次実行手段によるシミュレーション実行と並行して、シミュレーション実行履歴によらずに解釈し、ターゲットCPUの動作をシミュレーションするためにホストCPU上で実行する命令列を生成する命令変換手段、
(c)前記命令変換手段が生成したホストCPU上で実行する命令列を保持する変換コード保持手段、
(d)ターゲットCPUの命令アドレスと前記変換コード保持手段のマッピング情報(以降、ポインタと称す)の対を保持するポインタ参照テーブル保持手段、
(e)ターゲットCPU命令の取り出し、解釈、実行を逐次的に行う逐次実行手段と前記変換コード保持手段に保持されている変換コードを実行する変換コード実行手段を備え、状況に応じて前記逐次実行手段と前記変換コード実行手段を切り替えてターゲットCPU命令を実行する実行手段。
【0013】
また、実行手段に以下の手段を備えたCPUシミュレーション方式である。
(a)次にターゲットCPUが実行する命令が前記ポインタ参照テーブル保持手段に格納されているかどうかを判定する判定手段。
【0014】
実施の形態2.
図3は、実施の形態2に係るターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の構成と同様である。
図3において、ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。
変換エリア情報保持手段902は命令変換手段300によって変換された変換エリアの開始アドレスと終了アドレスの対を少なくとも1つ保持する。言いかえると、変換エリア情報保持手段902は、上記命令変換手段300により変換された変換コードのエリアの開始アドレスと終了アドレスとを保持する。
変換エリア情報設定手段901はポインタ参照テーブル保持手段400の内容を読み出し、変換された領域の開始アドレスと終了アドレスの検索を行い、開始アドレスと終了アドレスの対を変換エリア情報保持手段902に設定する。言いかえると、変換エリア情報設定手段901は上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルを検索し、上記命令変換手段300により変換された変換コードのエリアの開始アドレスと終了アドレスとを抽出し、上記変換エリア情報保持手段902に上記開始アドレスと終了アドレスとを設定する。
比較手段903はターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと終了アドレスの間に含まれているかを比較する。言いかえると、比較手段903は、上記変換エリア情報保持手段902により保持された開始アドレスと終了アドレスとを読み出し、次にターゲットCPUが実行する命令コードの命令アドレスの値が上記開始アドレスの値と終了アドレスの値との間に含まれているかどうかを比較する。
判定手段900は変換エリア情報設定手段901と変換エリア情報保持手段902と比較手段903を具備する。
【0015】
次に動作について図3を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態2では、ターゲットCPU命令をホストCPUの命令列に変換が完了した後、変換エリア情報設定手段901がポインタ参照テーブル保持手段400の検索を行う。変換エリア情報設定手段901はポインタ参照テーブル保持手段400からターゲットCPUの命令アドレスを読み出し、連続するエリアの抽出を行う。たとえば、ターゲットCPUシステムで定義されている命令長が4バイトのみであり、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの命令アドレスが、0X1000、0x1004、0x1008、0x100C、0x1010、0x1014の値が格納されている場合には、開始アドレスが0x1000であり、終了アドレスが0x1014となる。また、ターゲットCPUシステムで定義されている命令長が2バイト、4バイト、6バイトの3種類であり、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの命令アドレスが、0X1000、0x1002、0x1004、0x1006、0x1008、0x100A、0x100C、0x1010、0x1012、0x1014の値が格納されている場合には、最初の開始アドレスが0x1000であり、最初の終了アドレスが0x100C、次の開始アドレスが0x1010であり、次の終了アドレスが0x1014となる。変換エリア情報設定手段901は、ポインタ参照テーブル保持手段400の最初から最後までターゲットCPUの命令アドレスの読み出しを行い、変換した全エリアの開始アドレスと終了アドレスの対を抽出する。変換エリア情報設定手段901で抽出された開始アドレスと終了アドレスの対が変換エリア情報保持手段902に通知され、保持される。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと終了アドレスの対に挟まれたエリアに含まれていれば、ポインタ参照テーブル保持手段400にターゲットCPUの命令アドレスと対に保持されているポインタ情報を読み出す。読み出したポインタ情報が有効であれば、変換コード実行手段700を起動し、読み出したポインタ情報が無効であれば、逐次実行手段800を起動する。また、設定されたターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと終了アドレスの対に挟まれたエリアに含まれていなければ、逐次実行手段800を起動する。
【0016】
以上のように、変換エリア情報設定手段及び設定エリア情報保持手段を備え、変換エリアの範囲(開始アドレスと終了アドレス)とターゲットCPUのプログラムカウンタを比較できるようにすることにより、ポインタ参照テーブル保持手段の高速な検索を可能とし、高速にターゲットCPU命令のシミュレーションを行うことができる。
【0017】
以上のように、実施の形態2におけるCPUシミュレーション方式は、実施の形態1における前記判定手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換されたエリアの開始アドレスと終了アドレスの対を少なくとも1つを保持する変換エリア情報保持手段、
(b)前記ポインタ参照テーブル保持手段を検索し、変換されたエリアの開始アドレスと終了アドレスを抽出し、前記変換エリア情報保持手段に開始アドレスと終了アドレスの対を設定する変換エリア情報設定手段、
(c)前記変換エリア情報保持手段が保持する開始アドレスと終了アドレスを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスの間に含まれているかどうかを比較する比較手段。
【0018】
実施の形態3.
図4は、実施の形態3に係るターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図4において、ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。
変換エリア情報保持手段905は命令変換手段300によって変換された変換エリアの開始アドレスと開始アドレスからの変換長さの対を少なくとも1つ保持する。言いかえると、変換エリア情報保持手段905は、上記命令変換手段300により変換された変換コードのエリアの開始アドレスと変換コードの変換長さとを保持する。
変換エリア情報設定手段904はポインタ参照テーブル保持手段400の内容を読み出し、変換された領域の開始アドレスと開始アドレスからの変換長さの検索を行い、開始アドレスと変換長さの対を変換エリア情報保持手段902に設定する。言いかえると、変換エリア情報設定手段904は、上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400が保持する上記対応テーブルを検索し、上記命令変換手段300により変換された変換コードのエリアの開始アドレスと変換コードの変換長さを抽出し、上記変換エリア情報保持手段905に上記開始アドレスと変換コードの変換長さとを設定する。
比較手段906はターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと(開始アドレス+変換長さ)の間に含まれているかを比較する。言いかえると、比較手段906は、上記変換エリア情報保持手段905により保持された開始アドレスと変換コードの変換長さとを読み出し、次にターゲットCPUが実行する命令コードの命令アドレスの値が上記開始アドレスの値と上記開始アドレスに変換コードの変換長さを加算した値の間に含まれているかどうかを比較する。
判定手段900は変換エリア情報設定手段904と変換エリア情報保持手段905と比較手段906を具備する。
【0019】
次に動作について図4を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態3では、ターゲットCPU命令をホストCPUの命令列に変換が完了した後、変換エリア情報設定手段904がポインタ参照テーブル保持手段400の検索を行う。変換エリア情報設定手段904はポインタ参照テーブル保持手段400からターゲットCPUの命令アドレスを読み出し、連続するエリアの抽出を行う。たとえば、ターゲットCPUシステムで定義されている命令長が4バイトのみであり、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの命令アドレスが、0X1000、0x1004、0x1008、0x100C、0x1010、0x1014の値が格納されている場合には、開始アドレスが0x1000であり、変換長さが0x14となる。また、ターゲットCPUシステムで定義されている命令長が2バイト、4バイト、6バイトの3種類であり、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの命令アドレスが、0X1000、0x1002、0x1004、0x1006、0x1008、0x100A、0x100C、0x1010、0x1012、0x1014の値が格納されている場合には、最初の開始アドレスが0x1000であり、最初の変換長さが0x0C、次の開始アドレスが0x1010であり、次の変換長さが0x14となる。変換エリア情報設定手段904は、ポインタ参照テーブル保持手段400の最初から最後までターゲットCPUの命令アドレスの読み出しを行い、変換した全エリアの開始アドレスと変換長さの対を抽出する。変換エリア情報設定手段904で抽出された開始アドレスと変換長さの対が変換エリア情報保持手段905に通知され、保持される。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタが変換エリア情報保持手段905が保持する開始アドレスと(開始アドレス+変換長さ)の対に挟まれたエリアに含まれていれば、ポインタ参照テーブル保持手段400にターゲットCPUの命令アドレスと対に保持されているポインタ情報を読み出す。読み出したポインタ情報が有効であれば、変換コード実行手段700を起動し、読み出したポインタ情報が無効であれば、逐次実行手段800を起動する。また、設定されたターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと(開始アドレス+変換長さ)の対に挟まれたエリアに含まれていなければ、逐次実行手段800を起動する。
【0020】
以上のように、変換エリア情報設定手段及び設定エリア情報保持手段を備え、変換エリアの範囲(開始アドレスと変換長さ)とターゲットCPUのプログラムカウンタを比較できるようにすることにより、ポインタ参照テーブル保持手段の高速な検索を可能とし、高速にターゲットCPU命令のシミュレーションを行うことができる。
【0021】
以上のように、実施の形態3におけるCPUシミュレーション方式は、実施の形態1における前記判定手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換されたエリアの開始アドレスと変換長さの対を少なくとも1つを保持する変換エリア情報保持手段、
(b)前記ポインタ参照テーブル保持手段を検索し、変換されたエリアの開始アドレスと変換長さを抽出し、前記変換エリア情報保持手段に開始アドレスと変換長さの対を設定する変換エリア情報設定手段、
(c)前記変換エリア情報保持手段が保持する開始アドレスと変換長さを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと(開始アドレス+変換長さ)の間に含まれているかどうかを比較する比較手段。
【0022】
実施の形態4.
図5は、実施の形態4に係るターゲットCPUの命令コードを含むバイナリデータの読込手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図5において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。
上記読込手段200は、ヘッダー情報を有する上記バイナリデータを入力する。
変換エリア情報指示手段202はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換終了アドレスの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段202は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段201はターゲットCPUバイナリデータ100のヘッダー情報から命令コードのエリア(開始アドレス及び終了アドレスの対)を抽出し、変換エリア情報指示手段202を設定する。言いかえると、変換エリア情報設定手段201は、上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段202に設定させるため出力する。
読込手段200は変換エリア情報設定手段201と変換エリア情報指示手段202を具備する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。命令変換手段300は、上記変換エリア情報指示手段202により出力された開始アドレスと終了アドレスとの間をターゲットCPUの命令コードのエリアとして変換する。
【0023】
次に動作について図5を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態4では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段201がヘッダー情報から命令コードの配置情報(命令コードの開始アドレスと終了アドレスの対)を読み込む。変換エリア情報設定手段201により抽出された命令コードの開始アドレスと終了アドレスの対は、変換エリア情報指示手段202に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段202により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータが飛び飛びのエリアで構成されている場合であっても、変換エリア情報指示手段202により、エリアとエリアの間は変換対象とせず、効率的に命令の変換を行う。
【0024】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと終了アドレス)を命令変換手段に通知することにより、効果的な命令変換を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化することができる。
【0025】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記読込手段及び命令変換手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換すべきエリアの開始アドレスと変換の終了アドレスの対を少なくとも1つを保持する変換エリア情報指示手段、
(b)ターゲットCPUプログラムをホストCPU上にロードする時にターゲットCPUプログラムのヘッダー情報から変換エリアを抽出し、前記変換エリア情報指示手段を設定する変換エリア情報設定手段、
(c)前記変換エリア情報指示手段が示す開始アドレスと終了アドレスの間をターゲットCPUの命令エリアとして変換を行う命令変換手段。
【0026】
実施の形態5.
図6は、実施の形態5に係るターゲットCPUの命令コードを含むバイナリデータがオペレーティングシステムなどのようにメモリ管理機能を有するプログラムである場合の読込手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図6において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。上記バイナリデータ100は、メモリ管理を行うメモリ管理テーブル101を有する。
メモリ管理テーブル101はターゲットCPUバイナリデータ100がオペレーティングシステムなどのようにメモリ管理機能を有する場合にメモリ管理に用いる。
変換エリア情報指示手段202はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換終了アドレスの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段202は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段203はターゲットCPUバイナリデータ100のメモリ管理テーブル情報から命令コードのエリア(開始アドレス及び終了アドレスの対)を抽出し、変換エリア情報指示手段202を設定する。言いかえると、変換エリア情報設定手段203は、上記メモリ管理テーブル101から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段202に設定させるために出力する。
読込手段200は変換エリア情報設定手段203と変換エリア情報指示手段202を具備する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。上記命令変換手段300は、上記変換エリア情報指示手段202により出力された開始アドレスと終了アドレスとの間をターゲットCPUの命令コードのエリアとして変換する。
【0027】
次に動作について図6を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態5では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段201がターゲットCPUバイナリデータ100が保持するメモリ管理テーブル101から命令コードの配置情報(命令コードの開始アドレスと終了アドレスの対)を読み込む。変換エリア情報設定手段201により抽出された命令コードの開始アドレスと終了アドレスの対は、変換エリア情報指示手段202に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段202により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータのメモリ常駐情報を抽出し、ターゲットCPUシステムのメモリに常駐する領域のみを変換エリア情報指示手段202による変換対象とし、効率的に命令の変換を行う。
【0028】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと終了アドレス)を命令変換手段に通知することにより、効果的な命令変換を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化することができる。
【0029】
以上のように、本実施の形態におけるCPUシミュレーション方式は、ターゲットCPUプログラムがメモリ管理を行っている場合に、前記読込手段及び命令変換手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換すべきエリアの開始アドレスと変換の終了アドレスの対を少なくとも1つを保持する変換エリア情報指示手段、
(b)ロードしたターゲットCPUプログラムのメモリ管理テーブルから変換エリアを抽出し、前記変換エリア情報指示手段を設定する変換エリア情報設定手段、
(c)前記変換エリア情報指示手段が示す開始アドレスと終了アドレスの間をターゲットCPUの命令エリアとして変換を行う命令変換手段。
【0030】
実施の形態6.
図7は、実施の形態6に係るターゲットCPUの命令コードを含むバイナリデータの読込手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図7において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。
上記読込手段200は、ヘッダー情報を有する上記バイナリデータを入力する。
変換エリア情報指示手段205はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換長さの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段205は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段204はターゲットCPUバイナリデータ100のヘッダー情報から命令コードのエリア(開始アドレス及び変換長さの対)を抽出し、変換エリア情報指示手段205を設定する。言いかえると、変換エリア情報設定手段204は、上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段205に設定させるために出力する。
読込手段200は変換エリア情報設定手段204と変換エリア情報指示手段205を具備する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。命令変換手段300は、上記変換エリア情報指示手段205により指示された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間をターゲットCPUの命令コードのエリアとして変換する。
【0031】
次に動作について図7を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態6では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段201がヘッダー情報から命令コードの配置情報(命令コードの開始アドレスと命令コードの長さの対)を読み込む。変換エリア情報設定手段204により抽出された命令コードの開始アドレスと変換長さの対は、変換エリア情報指示手段205に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段202により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータが飛び飛びのエリアで構成されている場合であっても、変換エリア情報指示手段205により、エリアとエリアの間は変換対象とせず、効率的に命令の変換を行う。
【0032】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと変換長さ)を命令変換手段に通知することにより、効果的な命令変換を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化することができる。
【0033】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記読込手段及び命令変換手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換すべきエリアの開始アドレスと変換の終了アドレスまでの変換長さの対を少なくとも1つを保持する変換エリア情報指示手段、
(b)ターゲットCPUプログラムをホストCPU上にロードする時にターゲットCPUプログラムのヘッダー情報から変換エリアを抽出し、前記変換エリア情報指示手段を設定する変換エリア情報設定手段、
(c)前記変換エリア情報指示手段が示す開始アドレスと(開始アドレス+変換長さ)の間をターゲットCPUの命令エリアとして変換を行う命令変換手段。
【0034】
実施の形態7.
図8は、実施の形態7に係るターゲットCPUの命令コードを含むバイナリデータがオペレーティングシステムなどのようにメモリ管理機能を有するプログラムである場合の読込手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図8において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。上記バイナリデータ100は、メモリ管理を行うメモリ管理テーブル101を有する。
メモリ管理テーブル101はターゲットCPUバイナリデータがオペレーティングシステムなどのようにメモリ管理機能を有する場合にメモリ管理に用いる。変換エリア情報指示手段205はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換長さの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段205は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段206はターゲットCPUバイナリデータ100のメモリ管理テーブル情報から命令コードのエリア(開始アドレス及び変換長さの対)を抽出し、変換エリア情報指示手段205を設定する。言いかえると、変換エリア情報設定手段206は、上記メモリ管理テーブル101から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段205に設定させるために出力する。
読込手段200は変換エリア情報設定手段206と変換エリア情報指示手段205を具備する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。命令変換手段300は、上記変換エリア情報指示手段205により出力された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間をターゲットCPUの命令コードのエリアとして変換する。
【0035】
次に動作について図8を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態7では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段206がターゲットCPUバイナリデータ100が保持するメモリ管理テーブル101から命令コードの配置情報(命令コードの開始アドレスと変換長さの対)を読み込む。変換エリア情報設定手段206により抽出された命令コードの開始アドレスと変換長さの対は、変換エリア情報指示手段205に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段205により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータのメモリ常駐情報を抽出し、ターゲットCPUシステムのメモリに常駐する領域のみを変換エリア情報指示手段205による変換対象とし、効率的に命令の変換を行う。
【0036】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと変換長さ)を命令変換手段に通知することにより、効果的な命令変換を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化することができる。
【0037】
以上のように、本実施の形態におけるCPUシミュレーション方式は、ターゲットCPUプログラムがメモリ管理を行っている場合に、前記読込手段及び命令変換手段に以下の手段を備えたCPUシミュレーション方式である。
(a)変換すべきエリアの開始アドレスと変換の終了アドレスまでの変換長さの対を少なくとも1つを保持する変換エリア情報指示手段、
(b)ロードしたターゲットCPUプログラムのメモリ管理テーブルから変換エリアを抽出し、前記変換エリア情報指示手段を設定する変換エリア情報設定手段、
(c)前記変換エリア情報指示手段が示す開始アドレスと(開始アドレス+変換長さ)の間をターゲットCPUの命令エリアとして変換を行う命令変換手段。
【0038】
実施の形態8.
図9は、実施の形態8に係るターゲットCPUの命令コードを含むバイナリデータの読込手段及びターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図9において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。
読込手段200は、ヘッダー情報を有する上記バイナリデータ100を入力する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。
変換エリア情報指示手段202はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換終了アドレスの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段202は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段201はターゲットCPUバイナリデータ100のヘッダー情報から命令コードのエリア(開始アドレス及び終了アドレスの対)を抽出し、変換エリア情報指示手段202を設定する。言いかえると、変換エリア情報設定手段201は、上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段202に設定させるために出力する。
読込手段200は変換エリア情報設定手段201と変換エリア情報指示手段202を具備する。
比較手段903はターゲットCPUのプログラムカウンタが変換エリア情報指示手段202が保持する開始アドレスと終了アドレスの間に含まれているかを比較する。言いかえると、比較手段903は、上記変換エリア情報指示手段202により保持された開始アドレスと終了アドレスとを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれているかどうかを比較する。
判定手段900は比較手段903を具備する。上記判定手段900は、上記比較手段903により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれている場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されているかどうかを判定し、上記比較手段903により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれていない場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていないと判定する。
実行手段600は、上記判定手段900により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段903により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段500により保持された変換コードを所定の基準により実行する。
【0039】
次に動作について図9を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態8では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段201がヘッダー情報から命令コードの配置情報(命令コードの開始アドレスと終了アドレスの対)を読み込む。変換エリア情報設定手段201により抽出された命令コードの開始アドレスと終了アドレスの対は、変換エリア情報指示手段202に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段202により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータが飛び飛びのエリアで構成されている場合であっても、変換エリア情報指示手段202により、エリアとエリアの間は変換対象とせず、効率的に命令の変換を行う。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタが変換エリア情報指示手段202が保持する開始アドレスと終了アドレスの対に挟まれたエリアに含まれていれば、ポインタ参照テーブル保持手段400にターゲットCPUの命令アドレスと対に保持されているポインタ情報を読み出す。読み出したポインタ情報が有効であれば、変換コード実行手段700を起動し、読み出したポインタ情報が無効であれば、逐次実行手段800を起動する。また、設定されたターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと終了アドレスの対に挟まれたエリアに含まれていなければ、逐次実行手段800を起動する。
本実施例では、ターゲットCPUバイナリデータ100のヘッダー情報から変換エリア情報を抽出したが、ターゲットCPUプログラムがオペレーティングシステムなどの場合には、実施例5記載の変換エリア情報設定手段202を用いて、ターゲットCPUバイナリプログラム100内のメモリ管理テーブル101の情報を読み出し、変換エリア情報指示手段202に設定することも可能である。
【0040】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと終了アドレス)を命令変換手段に通知することにより、効果的な命令変換を可能とし、また、変換エリアの範囲(開始アドレスと終了アドレス)とターゲットCPUのプログラムカウンタを比較できるようにすることにより、ポインタ参照テーブル保持手段の高速な検索を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化し、高速にターゲットCPU命令のシミュレーションを行うことができる。
【0041】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記判定手段に以下の手段を備えたCPUシミュレーション方式である。
(a)前記変換エリア情報指示手段が保持する開始アドレスと終了アドレスを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスの間に含まれているかどうかを比較する比較手段。
【0042】
実施の形態9.
図10は、実施の形態9に係るターゲットCPUの命令コードを含むバイナリデータの読込手段及びターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図10において、ターゲットCPUバイナリデータ100はシミュレーションすべきターゲットCPUの命令コードを含む。
読込手段200は、ヘッダー情報を有する上記バイナリデータを入力する。
命令変換手段300はターゲットCPU命令をホストCPUの命令列に変換する。
変換エリア情報指示手段205はターゲットCPUバイナリデータ100の命令コードのエリア情報(変換開始アドレス及び変換長さの対)を少なくとも1つを保持し、命令変換手段300に変換範囲の指示を行う。言いかえると、変換エリア情報指示手段205は、上記命令変換手段300により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段300に指示するために出力する。
変換エリア情報設定手段204はターゲットCPUバイナリデータ100のヘッダー情報から命令コードのエリア(開始アドレス及び変換長さの対)を抽出し、変換エリア情報指示手段205を設定する。言いかえると、変換エリア情報設定手段204は、上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段205に設定させるために出力する。
読込手段200は変換エリア情報設定手段204と変換エリア情報指示手段205を具備する。
比較手段906はターゲットCPUのプログラムカウンタが変換エリア情報保持手段902が保持する開始アドレスと(開始アドレス+変換長さ)の間に含まれているかを比較する。上記比較手段906は、上記変換エリア情報指示手段205により保持された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれているかどうかを比較する。
判定手段900は比較手段906を具備する。上記判定手段900は、上記比較手段906により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれている場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されているかどうかを判定し、上記比較手段906により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれていない場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていないと判定する。
実行手段600は、上記判定手段900により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段900により、次にターゲットCPUが実行する命令が上記テーブル保持手段の一例としてのポインタ参照テーブル保持手段400により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段500により保持された変換コードを所定の基準により実行する。
【0043】
次に動作について図10を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態9では、ターゲットCPUバイナリデータを読込手段200を用いて読み込む時に、変換エリア情報設定手段201がヘッダー情報から命令コードの配置情報(命令コードの開始アドレスと命令コードの長さの対)を読み込む。変換エリア情報設定手段204により抽出された命令コードの開始アドレスと変換長さの対は、変換エリア情報指示手段205に保持される。ターゲットCPU命令の変換時には、変換エリア情報指示手段202により指示されるエリアを命令コードのエリアとして、命令変換手段300はターゲットCPUの命令をホストCPUの命令列に変換する。その際、読込手段200によって読み込まれたターゲットCPUバイナリデータが飛び飛びのエリアで構成されている場合であっても、変換エリア情報指示手段205により、エリアとエリアの間は変換対象とせず、効率的に命令の変換を行う。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタが変換エリア情報指示手段205が保持する開始アドレスと(開始アドレス+変換長さ)の対に挟まれたエリアに含まれていれば、ポインタ参照テーブル保持手段400にターゲットCPUの命令アドレスと対に保持されているポインタ情報を読み出す。読み出したポインタ情報が有効であれば、変換コード実行手段700を起動し、読み出したポインタ情報が無効であれば、逐次実行手段800を起動する。また、設定されたターゲットCPUのプログラムカウンタが変換エリア情報指示手段205が保持する開始アドレスと(開始アドレス+変換長さ)の対に挟まれたエリアに含まれていなければ、逐次実行手段800を起動する。
本実施例では、ターゲットCPUバイナリデータ100のヘッダー情報から変換エリア情報を抽出したが、ターゲットCPUプログラムがオペレーティングシステムなどの場合には、実施例6記載の変換エリア情報設定手段203を用いて、ターゲットCPUバイナリプログラム100内のメモリ管理テーブル101の情報を読み出し、変換エリア情報指示手段205に設定することも可能である。
【0044】
以上のように、変換エリア情報設定手段及び設定エリア情報指示手段を備え、変換エリアの範囲(開始アドレスと変換長さ)を命令変換手段に通知することにより、効果的な命令変換を可能とし、また、変換エリアの範囲(開始アドレスと変換長さ)とターゲットCPUのプログラムカウンタを比較できるようにすることにより、ポインタ参照テーブル保持手段の高速な検索を可能とし、ターゲットCPU命令のシミュレーションに必要な資源を小型化し、高速にターゲットCPU命令のシミュレーションを行うことができる。
【0045】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記判定手段に以下の手段を備えたCPUシミュレーション方式である。
(a)前記変換エリア情報指示手段が保持する開始アドレスと変換長さを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと(開始アドレス+変換長さ)の間に含まれているかどうかを比較する比較手段。
【0046】
実施の形態10.
図11は、実施の形態10に係るポインタ参照テーブル保持手段、及び、逐次実行手段と変換コード実行手段を切り替えてターゲットCPU命令を実行する実行手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図11において、ターゲットCPUは、システムメモリを有している。
命令変換手段300は、上記読込手段200により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを上記ターゲットCPUのシステムメモリのページ単位で変換して命令列を生成する。
上記変換コード保持手段500は、上記命令変換手段300により生成された命令列を保持する。
ページポインタ参照テーブル保持手段401はターゲットCPUのページアドレスと変換コード保持手段500の該当ポインタの対を保持する。言いかえると、ページポインタテーブル保持手段の一例として、ページポインタ参照テーブル保持手段401は、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUのシステムメモリのページアドレスと上記変換コード保持手段500により保持された命令列のアドレスとを対応させた対応テーブルを保持する。
ポインタ情報保持手段402はターゲットCPUのページ単位で管理され、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタと有効/無効情報を保持する。言いかえると、有効/無効情報保持手段の一例として、ポインタ情報保持手段402は、上記変換コード保持手段500により保持された命令列が有効な命令列か無効な命令列かの有効/無効情報を保持する。
ポインタ参照テーブル保持手段400はページポインタ参照テーブル保持手段401とポインタ情報保持手段402を具備する。
命令変換手段300はページ単位で変換を行い、ページポインタ参照テーブル保持手段401及びポインタ情報保持手段402を設定する。
逐次実行手段700は変換された変換コードを実行するための変換コード実行手段、800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。
判定手段900はターゲットCPUのプログラムカウンタでポインタ参照テーブル保持手段400を検索し、有効なポインタが格納されているかを判断し、有効なポインタが格納されている場合に変換コード実行手段700を起動し、無効なポインタが格納されている場合に逐次実行手段800を起動する。
実行手段600は判定手段900、変換コード実行手段700、逐次実行手段800を具備する。上記実行手段600は、次にターゲットCPUが実行する命令コードのアドレスが存在するページアドレスに対応する命令列を上記ページポインタテーブル保持手段の一例であるページポインタ参照テーブル保持手段401から抽出し、上記有効/無効情報保持手段の一例であるポインタ情報保持手段402により保持された有効/無効情報に基づいて上記抽出された命令列が有効である場合に、上記変換コード保持手段500により保持された命令列の中からターゲットCPUが実行する命令コードに対応する変換コードを実行し、上記有効/無効情報保持手段の一例であるポインタ情報保持手段402により保持された有効/無効情報に基づいて上記抽出された命令列が無効である場合に、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行する。
【0047】
次に動作について図11を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態10では、命令変換手段300がターゲットCPU命令をホストCPUの命令列に変換する際は、ターゲットCPUシステムのメモリをページ単位で命令変換を行う。変換された命令は、変換コード保持手段500に格納される。
同時にターゲットCPUのページアドレスと変換コード保持手段500に格納したポインタの対をページポインタ参照テーブル保持手段に格納する.あわせて、ターゲットCPUのページ単位で管理され、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタと有効/無効情報を保持するポインタ情報保持手段402を設定する。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタのページアドレスを元にページポインタ参照テーブル保持手段401の検索を行う。ページポインタ参照テーブル保持手段401の検索の結果得られたポインタにターゲットCPUのプログラムカウンタのページオフセットを加算することで、ターゲットCPUのプログラムカウンタに対応する変換コード保持手段500の該当ポインタ情報を抽出する。判定手段900はポインタ情報保持手段402から得られた有効/無効情報をみて、有効であれば同時に得られたポインタ情報に従い、変換コード実行手段700の起動を行う。ポインタ情報保持手段から得られた有効/無効情報が無効であれば、逐次実行手段の起動を行う。
【0048】
以上のように、ページポインタ参照テーブル保持手段とポインタ情報保持手段を備え、ターゲットCPUのプログラムカウンタのページアドレスとページ内オフセットによるポインタ参照テーブル保持手段の検索を行うことにより、ポインタ参照テーブル保持手段の全検索を行うことなく、ターゲットCPU命令のシミュレーションを高速に行うことができる。
【0049】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記ポインタ参照テーブル保持手段及び命令変換手段及び実行手段に以下の手段を備えたCPUシミュレーション方式である。
(a)ターゲットCPUのページアドレスと前記変換コード保持手段の該当ポインタの対を保持するページポインタ参照テーブル保持手段、
(b)ターゲットCPUのページ先頭から順に前記変換コード保持手段のポインタと有効/無効情報を保持するポインタ情報保持手段、
(c)ターゲットCPUの命令をページ単位でホストCPUの命令列に変換を行い、前記ページポインタ参照テーブル保持手段及びポインタ情報保持手段を設定する命令変換手段、
(d)次にターゲットCPUが実行する命令の命令アドレスのページアドレスに対応するポインタとページ内オフセットから前記ポインタ情報保持手段の該当場所に保持されているポインタが有効である場合に、変換コード実行手段を起動し、ポインタが無効である場合に逐次処理手段を起動する実行手段。
【0050】
実施の形態11.
図12は、実施の形態11に係るポインタ参照テーブル保持手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図12において、バイナリデータは、所定のメモリ容量を1ページとする論理ページの論理ページアドレスを有している。
上記ターゲットCPUは、システムメモリを有し、上記論理ページアドレスと上記論理ページアドレスに対応する上記システムメモリのページアドレスである物理ページアドレスとを記憶している。
ページポインタ参照テーブル保持手段401はターゲットCPUの物理ページアドレスと変換コード保持手段500の該当ポインタの対を保持する。
ポインタ情報保持手段402はターゲットCPUのページ単位で管理され、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタと有効/無効情報を保持する。
ページアドレス変換バッファ保持手段403はターゲットCPUの論理ページアドレスと論理ページアドレスに対応する物理ページアドレスと物理ページアドレスに対応する変換コード保持手段500の該当ポインタの対を保持する。言いかえると、ページアドレス変換バッファ保持手段403は、上記ターゲットCPUに記憶された論理ページアドレスと上記論理ページアドレスに対応する物理ページアドレスと上記変換コード保持手段により保持された命令列のアドレスとを対応させて保持する。
ポインタ参照テーブル保持手段400はページポインタ参照テーブル保持手段401とポインタ情報保持手段402とページアドレス変換バッファ保持手段403を具備する。
変換コード実行手段700は変換された変換コードを実行する。
逐次実行手段800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。
判定手段900はターゲットCPUのプログラムカウンタでポインタ参照テーブル保持手段400を検索し、有効なポインタが格納されているかを判断し、有効なポインタが格納されている場合に変換コード実行手段700を起動し、無効なポインタが格納されている場合に逐次実行手段800を起動する。
実行手段600は判定手段900、変換コード実行手段700、逐次実行手段800を具備する。上記実行手段600は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段403から検索し、一致する上記論理ページアドレスが検索された場合に、上記次にターゲットCPUが実行する命令コードのアドレスが存在するページアドレスに対応する命令列を上記ページポインタテーブル保持手段の一例であるページポインタ参照テーブル保持手段401から抽出する。
アドレス変換機構1000はターゲットCPUシステムのアドレス変換機構である。
また、上記ターゲットCPUは、上記論理ページアドレスと上記論理ページアドレスに対応する上記物理ページアドレスとを相互に変換する。
そして、上記実行手段600は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段403により対応させられて保持された論理ページアドレスと物理ページアドレスと命令列のアドレスとから検索し、一致する上記論理ページアドレスが検索されない場合に、ページアドレス変換バッファ保持手段403に次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスに対応する物理ページアドレスを上記ターゲットCPUから入力させ、ページアドレス変換バッファ保持手段204に入力させられた物理ページアドレスと上記論理ページアドレスと上記変換コード保持手段500により保持された命令列のアドレスとを対応させて保持させ、再度、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段403から検索する。
【0051】
次に動作について図12を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態11では、命令変換手段300がターゲットCPU命令をホストCPUの命令列に変換する際は、ターゲットCPUシステムの物理メモリをページ単位で命令変換を行う。変換された命令は、変換コード保持手段500に格納される。同時にターゲットCPUの物理ページアドレスと変換コード保持手段500に格納したポインタの対をページポインタ参照テーブル保持手段401に格納する.あわせて、ターゲットCPUの物理ページ単位で管理され、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタと有効/無効情報を保持するポインタ情報保持手段402を設定する。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタの論理ページアドレスを元にページアドレス変換バッファ403の検索を行う。ページアドレス変換バッファ保持手段は、ターゲットCPU命令の変換時には設定されないため、ターゲットCPUのプログラムカウンタの論理ページアドレスは該当アドレスが登録されておらず、ミスとなる。ミスとなった場合には、ターゲットCPUシステムのアドレス変換機構1000による論理アドレス・物理アドレスの変換を行い、得られた物理アドレスでページポインタ参照テーブル保持手段401の検索を行う。ターゲットCPUのプログラムカウンタの論理ページアドレス、ターゲットCPUシステムのアドレス変換機構1000で得られた物理ページアドレス、ページポインタ参照テーブル保持手段401で得られたページポインタをページアドレス変換バッファ保持手段403に登録する。ターゲットCPUのプログラムカウンタの論理ページアドレスに対応するページポインタがページポインタ参照テーブル保持手段401にない場合には、ポインタ情報保持手段404が有する逐次実行手段800のポインタを示す専用エリアのポインタをページアドレス変換バッファ保持手段403に登録する。その後、再度ターゲットCPUのプログラムカウンタの論理ページアドレスでページアドレス変換バッファ保持手段403を検索すると、登録されたページポインタを抽出できる。抽出されたページポインタにターゲットCPUのプログラムカウンタのページ内オフセットを加算することで、ターゲットCPUのプログラムカウンタに対応する変換コード保持手段500の該当ポインタ情報を抽出する。判定手段900はポインタ情報保持手段402から得られた有効/無効情報をみて、有効であれば同時に得られたポインタ情報に従い、変換コード実行手段700の起動を行う。ポインタ情報保持手段402から得られた有効/無効情報が無効であれば、逐次実行手段800の起動を行う。
【0052】
以上のように、ページポインタ参照テーブル保持手段とポインタ情報保持手段とページアドレス変換バッファ保持手段を備え、ターゲットCPUのプログラムカウンタのアドレス変換とページ内オフセットによるポインタ参照テーブル保持手段の検索を同時に行うことにより、ターゲットCPU命令のシミュレーションを高速に行うことができる。
【0053】
以上のように、本実施の形態におけるCPUシミュレーション方式は、ターゲットCPUシステムがアドレス変換機構を有する場合に、前記ポインタ参照テーブル保持手段及び実行手段に以下の手段を備えたCPUシミュレーション方式である。
(a)ターゲットCPUのプログラムが参照する論理ページアドレスと前記論理ページアドレスに対応する物理ページアドレスと前記変換コード保持手段の該当ポインタの対を少なくとも1つを保持するページアドレス変換バッファ保持手段、
(b)ターゲットCPUのプログラムが参照する論理アドレスで前記ページアドレス変換バッファ保持手段を参照し、参照する論理ページアドレスが前記ページアドレス変換バッファ保持手段が保持する論理アドレスと一致し、且つ対に保持しているポインタが有効な場合にページ内オフセットと前記ページアドレス変換バッファ保持手段が保持するポインタに従い変換コード実行手段を起動し、参照する論理ページアドレスが前記ページアドレス変換バッファ保持手段が保持する論理アドレスと一致し、且つ対に保持しているポインタが無効な場合に逐次処理手段を起動し、参照する論理ページアドレスが前記ページアドレス変換バッファ保持手段が保持する論理アドレスと一致しなかった場合に論理アドレスから物理アドレスへの変換を行った後、前記ページポインタ参照テーブル保持手段から該当ポインタを抽出し、ページアドレス変換バッファ保持手段に論理アドレス、物理アドレス、ポインタの対を設定し、設定したポインタに従い逐次処理手段または変換コード実行手段を起動する実行手段。
【0054】
実施の形態12.
図13は、実施の形態12に係るポインタ参照テーブル保持手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図13において、バイナリデータは、所定のメモリ容量を1ページとする論理ページの論理ページアドレスを有している。
上記ターゲットCPUは、システムメモリを有し、上記論理ページアドレスと上記論理ページアドレスに対応する上記システムメモリのページアドレスである物理ページアドレスとを記憶している。
命令変換手段300は、上記読込手段200により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを上記ターゲットCPUのシステムメモリのページ単位で変換して命令列を生成する。
変換コード保持手段500は、上記命令変換手段300により生成された命令列を保持する。
ページポインタ参照テーブル保持手段401はターゲットCPUの物理ページアドレスと変換コード保持手段500の該当ポインタの対を保持する。
ポインタ情報保持手段404はターゲットCPUのページ単位で管理され、逐次実行手段800のポインタを保持する専用エリアをもち、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタを保持する。
ページアドレス変換バッファ保持手段403はターゲットCPUの論理ページアドレスと論理ページアドレスに対応する物理ページアドレスと物理ページアドレスに対応する変換コード保持手段500の該当ポインタの対を保持する。言いかえると、ページアドレス変換バッファ保持手段403は、上記ターゲットCPUに記憶された論理ページアドレスと上記論理ページアドレスに対応する物理ページアドレスと上記変換コード保持手段500により保持された命令列のアドレスとを対応させて保持する。
ポインタ参照テーブル保持手段400はページポインタ参照テーブル保持手段401とポインタ情報保持手段404とページアドレス変換バッファ保持手段403を具備する。
変換コード実行手段700は変換された変換コードを実行する。
逐次実行手段800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。
アドレス変換機構1000はターゲットCPUシステムのアドレス変換機構である。
実行手段600は変換コード実行手段700、逐次実行手段800を具備する。上記実行手段600は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段403により対応させられて保持された論理ページアドレスと物理ページアドレスと命令列のアドレスとから検索する。
実行情報保持手段の一例としてポインタ情報保持手段404は、上記実行手段600により次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスがページアドレス変換バッファ保持手段403から検索されない場合に、上記実行手段600に上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行させる識別情報を保持し、上記実行手段600により次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスがページアドレス変換バッファ保持手段403から検索される場合に、上記実行手段600に上記変換コード保持手段500により保持された命令列の中からターゲットCPUが実行する命令コードに対応する変換コードを実行させる上記変換コードを保持する。
【0055】
次に動作について図13を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態12では、命令変換手段300がターゲットCPU命令をホストCPUの命令列に変換する際は、ターゲットCPUシステムの物理メモリをページ単位で命令変換を行う。変換された命令は、変換コード保持手段500に格納される。同時にターゲットCPUの物理ページアドレスと変換コード保持手段500に格納したポインタの対をページポインタ参照テーブル保持手段401に格納する.あわせて、ターゲットCPUの物理ページ単位で管理され、逐次実行手段800のポインタを保持する専用エリアをもち、ターゲットCPUのページ先頭から順に変換コード保持手段500のポインタを保持するポインタ情報保持手段402を設定する。命令変換手段300はターゲットCPUバイナリデータ100の命令エリア、データエリアの区別なく変換するため、ターゲットCPU無効な命令コードと判断した場合には、逐次実行手段800のポインタを設定する。
ターゲットCPU命令のシミュレーション時には、設定されたターゲットCPUのプログラムカウンタの論理ページアドレスを元にページアドレス変換バッファ403の検索を行う。ページアドレス変換バッファ保持手段は、ターゲットCPU命令の変換時には設定されないため、ターゲットCPUのプログラムカウンタの論理ページアドレスは該当アドレスが登録されておらず、ミスとなる。ミスとなった場合には、ターゲットCPUシステムのアドレス変換機構1000による論理アドレス・物理アドレスの変換を行い、得られた物理アドレスでページポインタ参照テーブル保持手段401の検索を行う。ターゲットCPUのプログラムカウンタの論理ページアドレス、ターゲットCPUシステムのアドレス変換機構1000で得られた物理ページアドレス、ページポインタ参照テーブル保持手段401で得られたページポインタをページアドレス変換バッファ保持手段403に登録する。ターゲットCPUのプログラムカウンタの論理ページアドレスに対応するページポインタがページポインタ参照テーブル保持手段401にない場合には、ポインタ情報保持手段404が有する逐次実行手段800のポインタを示す専用エリアのポインタをページアドレス変換バッファ保持手段403に登録する。その後、再度ターゲットCPUのプログラムカウンタの論理ページアドレスでページアドレス変換バッファ保持手段403を検索すると、登録されたページポインタを抽出できる。抽出されたページポインタにターゲットCPUのプログラムカウンタのページ内オフセットを加算することで、ターゲットCPUのプログラムカウンタに対応する変換コード保持手段500の該当ポインタ情報を抽出する。ポインタ情報保持手段402から得られたポインタ情報に従い、変換コード実行手段700又は、逐次実行手段800の起動を行う。
【0056】
以上のように、ページポインタ参照テーブル保持手段とポインタ情報保持手段とページアドレス変換バッファ保持手段を備え、ターゲットCPUのプログラムカウンタのアドレス変換とページ内オフセットによるポインタ参照テーブル保持手段の検索を同時に行う、得られたポインタ情報に従い変換コード実行手段あるいは逐次実行手段を起動することにより、ポインタ情報保持手段の出力を判定することなく、ターゲットCPU命令のシミュレーションに必要な資源を小型化し、ターゲットCPU命令のシミュレーションを高速に行うことができる。
【0057】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記ポインタ参照テーブル保持手段に以下の手段を備えたCPUシミュレーション方式である。
(a)逐次実行手段のポインタを保持する専用エリアをもつポインタ情報保持手段、
(b)ターゲットCPUのページアドレスと前記変換コード保持手段の該当ポインタの対を保持し、ターゲットCPUの命令が前記変換コード保持手段に保持されていない場合に前記ポインタ情報保持手段の専用エリアのポインタを保持するページポインタ参照テーブル保持手段。
【0058】
実施の形態13.
図14は、実施の形態13に係る命令変換手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図14において、変換コード保持手段500は命令変換手段300によってターゲットCPU命令をホストCPU命令列に変換された変換コードを格納する。上記変換コード保持手段500は、上記変換コードを保持するための所定の容量を有している。
ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。言いかえると、テーブル保持手段の一例であるポインタ参照テーブル保持手段400は、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段500により保持された変換コードのアドレスとを対応させた対応テーブルを保持する。
容量オーバーフロー検出手段301はポインタ参照テーブル保持手段400及び変換コード保持手段500の容量をチェックし、容量オーバーフローを検出する。言いかえると、容量オーバーフロー検出手段301は、生成された変換コードの容量が、上記変換コード保持手段500の容量を超えたことを検出する。上記容量オーバーフロー検出手段301は、さらに、上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段500により保持された変換コードのアドレスとを対応させた対応テーブルの容量が、上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の容量を超えたことを検出する。
容量拡張手段302は容量オーバーフロー検出手段301によって検出された容量オーバーフローの情報に従い、ポインタ参照テーブル保持手段400あるいは変換コード保持手段500の容量を拡張する。言いかえると、容量拡張手段302は、上記容量オーバーフロー検出手段301により、変換コードの容量が上記変換コード保持手段500の容量を超えたと検出された場合に、上記変換コード保持手段500の容量を拡張することを促す。上記容量拡張手段302は、さらに、上記容量オーバーフロー検出手段301により、対応テーブルの容量が上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の容量を超えたと検出された場合に、上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の容量を拡張することを促す。
拡張部405は容量拡張手段302によって拡張されたポインタ参照テーブル保持手段400の拡張部、拡張部501は容量拡張手段302によって拡張された変換コード保持手段500の拡張部である。
命令変換手段300は容量オーバーフロー検出手段301と容量拡張手段302を具備する。
【0059】
次に動作について図14を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態13では、命令変換手段300がターゲットCPU命令をホストCPU命令列に変換し、変換コード保持手段500に変換したホストCPU命令列を格納し、ポインタ参照テーブル保持手段400にターゲットCPUアドレスと変換コード保持手段500のポインタを格納する。その時、容量オーバーフロー検出手段301は、変換コード保持手段500及びポインタ参照テーブル保持手段400の残容量を観測し、残容量が規定値以下になると容量オーバーフローを検出し、容量拡張手段302に通報する。容量オーバーフロー検出手段301からの通報に従い、容量拡張手段302はポインタ参照テーブル保持手段400あるいは変換コード保持手段500の容量の拡張を行う。命令変換手段300は変換すべきターゲットCPU命令がなくなるまで、上記動作を繰り返し、全てのエリアの変換を行う。
【0060】
以上のように、容量オーバーフロー検出手段及び容量拡張手段を備え、ターゲットCPU命令のホストCPU命令列への変換時に容量を拡張することにより、ターゲットCPUバイナリデータのサイズによらず、ターゲットCPU命令のシミュレーションを行うことができる。
【0061】
以上のように、本実施の形態におけるCPUシミュレーション方式は、予め準備したポインタ参照テーブル保持手段及び変換コード保持手段の容量を越えるターゲットCPUプログラムを変換した場合に命令変換手段に以下の手段を備えたCPUシミュレーション方式である。
(a)前記命令変換手段がターゲットCPUプログラムの変換を行う際に、予め準備したポインタ参照テーブル保持手段及び変換コード保持手段の容量を超えたことを検出する容量オーバーフロー検出手段、
(b)前記容量オーバーフロー検出手段により、予め準備したポインタ参照テーブル保持手段及び変換コード保持手段の容量を超えたことを認識し、ポインタ参照テーブル保持手段及び変換コード保持手段を拡張する容量拡張手段。
【0062】
実施の形態14.
図15は、実施の形態14に係る実行手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図15において、ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。
変換コード実行手段700は変換された変換コードを実行する。
逐次実行手段800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。
メモリ1100はターゲットCPUシステムのメモリである。
メモリ更新検出手段601は変換コード実行手段700あるいは逐次実行手段800がターゲットCPU命令のシミュレーションを行った際にターゲットCPUシステムのメモリ1100へのメモリ更新要求を検出する。言いかえると、メモリ更新検出手段601は、ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元に上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の対応テーブルを参照し、該当アドレスが上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400により保持されているかを検出する。
ポインタ参照テーブル更新手段602はメモリ更新検出手段601が通報するメモリ更新要求及びメモリ更新アドレスを元にポインタ参照テーブル保持手段400に保持されたテーブルのメモリ更新アドレスに対応するポインタを無効化する。言いかえると、保持更新手段の一例としてポインタ参照テーブル更新手段602は、上記メモリ更新検出手段601により該当アドレスが上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の対応テーブルにより保持されていると検出された場合に、メモリ更新によって、上記有効/無効情報保持手段の一例であるポインタ情報保持手段402により保持された有効/無効情報を無効な命令列に更新させる。保持更新手段の一例としてポインタ参照テーブル更新手段602は、上記メモリ更新検出手段601により該当アドレスが上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の対応テーブルに保持されていると検出された場合に、メモリ更新によって、上記実行情報保持手段の一例であるポインタ情報保持手段404により保持された上記変換コードを、上記実行手段600に上記読込手段200により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行させる識別情報に更新させる。
実行手段600は変換コード実行手段700、逐次実行手段800、メモリ更新検出手段601、ポインタ参照テーブル更新手段602を具備する。
【0063】
次に動作について図15を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態14では、変換コード実行手段700あるいは逐次実行手段800がターゲットCPU命令のシミュレーションを行った際に、具体的には、ターゲットCPU命令のストア命令等ターゲットCPUシステムのメモリ1100を更新する命令を実行した場合に、メモリ更新検出手段601はターゲットCPUシステムのメモリ1100へのメモリ参照要求を観測し、メモリ更新要求を検出すると、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの全命令アドレスとメモリ更新アドレスの比較を行う。これは、ターゲットCPU命令の実行により、命令変換手段300で変換した命令が書きかえられることの検出を行う。この検出がない場合には、書きかえられた命令を実行せずに、書きかえられる前の命令を実行する可能性があるためである。メモリ更新検出手段601は、命令変換手段300によって変換されたエリアのデータが更新されたことを検出すると、ポインタ参照テーブル更新手段602にメモリ更新アドレスとポインタ参照テーブル保持手段400の更新要求を通報する。通報を受けたポインタ参照テーブル更新手段602は、メモリ更新アドレスに対応するポインタ参照テーブル保持手段400が保持している変換コード保持手段500へのポインタを無効化する。ターゲットCPU命令の実行で、無効化されたポインタに対するターゲットCPU命令のアドレスの実行が起きた場合には、ポインタが無効化されているため、逐次実行手段800が起動される。逐次実行手段800は、命令の取り出しから行うため、更新されたメモリ情報に従い、命令の解釈、命令の実行が行われる。
【0064】
以上のように、メモリ更新検出手段とポインタ参照テーブル更新手段を備え、命令変換手段により変換されたエリアに対するメモリ更新を検出し、ポインタ参照テーブル保持手段の該当情報を無効化することにより、ターゲットCPUの命令が命令を書きかえる場合においても、ターゲットCPUの動作をホストCPU上で支障なくシミュレーションすることができる。
【0065】
以上のように、本実施の形態におけるCPUシミュレーション方式は、前記実行手段に以下の手段を備えたCPUシミュレーション方式である。
(a)ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元にポインタ参照テーブル保持手段を参照し、該当アドレスがポインタ参照テーブル保持手段に含まれているかを検出するメモリ更新検出手段、
(b)前記検出手段でメモリ更新によって、ポインタ参照テーブル保持手段が保持するポインタあるいは有効/無効情報を、逐次実行手段のポインタあるいは無効情報に更新するポインタ参照テーブル更新手段。
【0066】
実施の形態15.
図16は、実施の形態15に係る実行手段の構成を示すブロック図である。以下に記載する図に無い構成は、既に記載した上記各図の少なくとも1つに記載した構成と同様である。
図16において、ポインタ参照テーブル保持手段400はターゲットCPUのプログラムカウンタと変換コード保持手段500のポインタの対保持する。
変換コード実行手段700は変換された変換コードを実行する。
逐次実行手段800は命令の取り出し、命令の解釈、命令の実行を逐次的に行う。
メモリ1100はターゲットCPUシステムのメモリである。
メモリ更新検出手段601は変換コード実行手段700あるいは逐次実行手段800がターゲットCPU命令のシミュレーションを行った際にターゲットCPUシステムのメモリ1100へのメモリ更新要求を検出する。言いかえると、メモリ更新検出手段601は、ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元に上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400により保持された対応テーブルから、該当アドレスが上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400により保持されているかを検出する。
命令再変換手段603はメモリ更新検出手段601が通報するメモリ更新要求及びメモリ更新アドレスを元にターゲットCPUシステムのメモリ1100からターゲットCPU命令を取り出し、ホストCPUの命令列に再変換し、ポインタ参照テーブル400及び変換コード保持手段500を更新する。言いかえると、命令再変換手段603は、上記メモリ更新検出手段601により該当アドレスが上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の対応テーブルに保持されていると検出された場合に、メモリ更新によって、変換コードを再生成し、再生成された新しい変換コードを上記テーブル保持手段の一例であるポインタ参照テーブル保持手段400の対応テーブルに再設定する。
実行手段600は変換コード実行手段700、逐次実行手段800、メモリ更新検出手段601、命令再変換手段603を具備する。
【0067】
次に動作について図16を例に説明する。
基本的な動作は、実施の形態1で示した動作を行う。実施の形態15では、変換コード実行手段700あるいは逐次実行手段800がターゲットCPU命令のシミュレーションを行った際に、具体的には、ターゲットCPU命令のストア命令等ターゲットCPUシステムのメモリ1100を更新する命令を実行した場合に、メモリ更新検出手段601はターゲットCPUシステムのメモリ1100へのメモリ参照要求を観測し、メモリ更新要求を検出すると、ポインタ参照テーブル保持手段400に格納されているターゲットCPUの全命令アドレスとメモリ更新アドレスの比較を行う。これは、ターゲットCPU命令の実行により、命令変換手段300で変換した命令が書きかえられることの検出を行う。この検出がない場合には、書きかえられた命令を実行せずに、書きかえられる前の命令を実行する可能性があるためである。メモリ更新検出手段601は、命令変換手段300によって変換されたエリアのデータが更新されたことを検出すると、命令再変換手段603にメモリ更新アドレスと命令再変換要求を通報する。通報を受けた命令再変換手段603は、メモリ更新アドレスが示すデータをターゲットCPUシステムのメモリ1100から命令として取り出す。取り出したターゲットCPU命令を再度、ホストCPU命令列に変換し、変換コード保持手段500を更新すると同時にポインタ参照テーブル保持手段の更新を行う。ターゲットCPU命令の実行で、更新されたポインタに対するターゲットCPU命令のアドレスの実行が起きた場合には、ポインタ参照テーブル保持手段400及び変換コード保持手段500が保持する変換コードは更新されているため、変換コード実行手段700が起動される。変換コード実行手段700の起動では、再変換された変換コードが実行されるため、メモリ更新後の命令に従い、ターゲットCPU命令が実行される。
【0068】
以上のように、メモリ更新検出手段と命令再変換手段を備え、命令変換手段により変換されたエリアに対するメモリ更新を検出し、ポインタ参照テーブル保持手段及び変換コード保持手段を命令再変換手段によって更新することにより、ターゲットCPUの命令が命令を書きかえる場合においても、ターゲットCPUの動作をホストCPU上で支障なくシミュレーションすることができる。
【0069】
以上のように、本実施の形態におけるCPUシミュレーション方式は、以下の手段を備えたCPUシミュレーション方式である。
(a)ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元にポインタ参照テーブル保持手段を参照し、該当アドレスがポインタ参照テーブル保持手段に含まれているかを検出するメモリ更新検出手段、
(b)前記検出手段でメモリ更新によって、更新されたメモリ情報に基づき、更新されたメモリを参照する可能性のある変換コードを再生成し、新しい変換コードの格納場所のポインタをポインタ参照テーブル保持手段に再設定する命令再変換手段。
【0070】
以上の説明において、上記各実施の形態におけるシミュレーション装置は、以下のハードウェア構成を有している。
図17は、上記各実施の形態におけるシミュレーション装置の外観を示す図である。
図17において、CRT(Cathode Ray Tube)表示装置41、キーボード(K/B)42、マウス43、コンパクトディスク装置(CDD)86、プリンタ装置87、スキャナ装置88は、パーソナルコンピュータ(PC)33にケーブルで接続されている。
【0071】
図18は、上記各実施の形態におけるシミュレーション装置のハードウェア構成図である。
図18において、プログラムを実行するCPU(Central Processing Unit)37は、バス38を介してROM(Read OnlyMemory)39(記憶装置、システムメモリの一例である)、RAM(Random Access Memory)40(記憶装置、システムメモリの一例である)、CRT表示装置41、K/B42、マウス43、通信ポード44、FDD(Flexible Disk Drive)45、磁気ディスク装置46、CDD86、プリンタ装置87、スキャナ装置88と接続されている。通信ボード44は、インターネット30に接続されている。
ここで、通信ボード44は、インターネット30に限らず、LAN(ローカルエリアネットワーク)、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されていても構わない。
磁気ディスク装置46には、オペレーティングシステム(OS)47、ウィンドウシステム48、プログラム群49、ファイル群50が記憶されている。プログラム群49は、CPU37、OS47、ウィンドウシステム48により実行される。
【0072】
また、以上の説明において、各実施の形態の説明において「〜手段」として説明したものは、一部或いはすべてコンピュータで動作可能なプログラムにより構成することができる。即ち、磁気ディスク装置46は、コンピュータで動作可能なプログラムを記録した記録媒体である。これらのプログラムは、例えば、C言語により作成することができる。或いは、HTMLやSGMLやXMLを用いても構わない。或いは、JAVA(登録商標)を用いて画面表示を行っても構わない。
また、各実施の形態の説明において「〜手段」として説明したものは、ROM39に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
また、上記各実施の形態を実施させるプログラムは、また、磁気ディスク装置46の代わりに、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体による記録装置(記憶装置、システムメモリの一例である)を用いても構わない。
また、CRT表示装置41の代わりに、その他の表示装置、プリンタ装置87等の出力装置を用いても構わない。
【0073】
【発明の効果】
本発明によれば、ポインタ参照テーブルに登録されているかどうか、または登録された情報が有効であるか無効であるかを判断し、ターゲットCPU命令のシミュレーション手段を切り替えることで、ターゲットCPUのプログラムがプログラムをロード、生成、または更新するような場合でも、ターゲットCPUの動作をホストCPU上で支障なくシミュレーションすることができる。
【図面の簡単な説明】
【図1】実施の形態1にかかるCPUシミュレーション装置の構成を示す構成図である。
【図2】ホストCPU上で動作するCPUシミュレーン方式のフローチャートを示す図である。
【図3】実施の形態2に係るターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。
【図4】実施の形態3に係るターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。
【図5】実施の形態4に係るターゲットCPUの命令コードを含むバイナリデータの読込手段の構成を示すブロック図である。
【図6】実施の形態5に係るターゲットCPUの命令コードを含むバイナリデータがオペレーティングシステムなどのようにメモリ管理機能を有するプログラムである場合の読込手段の構成を示すブロック図である。
【図7】実施の形態6に係るターゲットCPUの命令コードを含むバイナリデータの読込手段の構成を示すブロック図である。
【図8】実施の形態7に係るターゲットCPUの命令コードを含むバイナリデータがオペレーティングシステムなどのようにメモリ管理機能を有するプログラムである場合の読込手段の構成を示すブロック図である。
【図9】実施の形態8に係るターゲットCPUの命令コードを含むバイナリデータの読込手段及びターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。
【図10】実施の形態9に係るターゲットCPUの命令コードを含むバイナリデータの読込手段及びターゲットCPUのプログラムカウンタがポインタ参照テーブル保持手段に格納されているかを判定する判定手段の構成を示すブロック図である。
【図11】実施の形態10に係るポインタ参照テーブル保持手段、及び、逐次実行手段と変換コード実行手段を切り替えてターゲットCPU命令を実行する実行手段の構成を示すブロック図である。
【図12】実施の形態11に係るポインタ参照テーブル保持手段の構成を示すブロック図である。
【図13】実施の形態12に係るポインタ参照テーブル保持手段の構成を示すブロック図である。
【図14】実施の形態13に係る命令変換手段の構成を示すブロック図である。
【図15】実施の形態14に係る実行手段の構成を示すブロック図である。
【図16】実施の形態15に係る実行手段の構成を示すブロック図である。
【図17】各実施の形態におけるシミュレーション装置の外観を示す図である。
【図18】各実施の形態におけるシミュレーション装置のハードウェア構成図である。
【符号の説明】
37 CPU、38 バス、39 ROM、40 RAM、41 CRT、42 K/B、43 マウス、44 通信ポート、45 FDD、46 磁気ディスク装置、47 OS、48 ウィンドウシステム、49 プログラム群、50ファイル群、86 CDD、87 プリンタ、88 スキャナ、100 ターゲットCPUバイナリデータ、101 メモリ管理テーブル、200 読み込み手段、201 変換エリア情報設定手段、202 変換エリア情報指示手段、203 変換エリア情報設定手段、204 変換エリア情報設定手段、205 変換エリア情報指示手段、206 変換エリア情報設定手段、300 命令変換手段、301 容量オーバーフロー検出手段、302 容量拡張手段、400 ポインタ参照テーブル保持手段、401 ページポインタ参照テーブル保持手段、402 ポインタ情報保持手段、403 ページアドレス変換バッファ保持手段、404 ポインタh情報保持手段、405 拡張部、500 変換コード保持手段、501 拡張部、600 実行手段、601 メモリ更新検出手段、602 ポインタ参照テーブル更新手段、603 命令再変換手段、700 変換コード実行手段、800 逐次実行手段、900 判定手段、901 変換エリア情報設定手段、902 変換エリア情報保持手段、903 比較手段、904 変換エリア情報設定手段、905 変換エリア情報保持手段、906 比較手段、1100 メモリ。

Claims (29)

  1. ターゲットCPU(Central Processing
    Unit)の命令コードを有するバイナリデータを読み込む読込手段と、
    上記読込手段により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換手段と、
    上記命令変換手段により生成された変換コードを保持する変換コード保持手段と、
    上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持手段により保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行手段と
    を備えたことを特徴とするシミュレーション装置。
  2. 上記実行手段は、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを入力し、入力された命令コードを解釈し、解釈された命令コードを実行するターゲットCPU命令コード実行手段と、
    上記変換コード保持手段により保持された変換コードを実行する変換コード実行手段と
    を有することを特徴とする請求項1記載のシミュレーション装置。
  3. 上記シミュレーション装置は、さらに、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段により保持された変換コードのアドレスとを対応させた対応テーブルを保持するテーブル保持手段とを備え、
    上記実行手段は、上記テーブル保持手段により保持された対応テーブルに基づいて、シミュレーション対象となるターゲットCPUの命令コードに対応する変換コードを入力し、入力された変換コードを実行することを特徴とする請求項1記載のシミュレーション装置。
  4. 上記シミュレーション装置は、さらに、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段により保持された変換コードのアドレスとを対応させた対応テーブルを保持するテーブル保持手段とを備え、
    上記実行手段は、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されているかどうかを判定する判定手段を有することを特徴とする請求項1記載のシミュレーション装置。
  5. 上記実行手段は、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段により保持された変換コードを所定の基準により実行することを特徴とする請求項4記載のシミュレーション装置。
  6. 上記判定手段は、上記命令変換手段により変換された変換コードのエリアの開始アドレスと終了アドレスとを保持する変換エリア情報保持手段と、
    上記テーブル保持手段により保持された対応テーブルを検索し、上記命令変換手段により変換された変換コードのエリアの開始アドレスと終了アドレスとを抽出し、上記変換エリア情報保持手段に上記開始アドレスと終了アドレスとを設定する変換エリア情報設定手段と、
    上記変換エリア情報保持手段により保持された開始アドレスと終了アドレスとを読み出し、次にターゲットCPUが実行する命令コードの命令アドレスの値が上記開始アドレスの値と終了アドレスの値との間に含まれているかどうかを比較する比較手段と
    を有することを特徴とする請求項4記載のシミュレーション装置。
  7. 上記判定手段は、上記命令変換手段により変換された変換コードのエリアの開始アドレスと変換コードの変換長さとを保持する変換エリア情報保持手段と、
    上記テーブル保持手段が保持する上記対応テーブルを検索し、上記命令変換手段により変換された変換コードのエリアの開始アドレスと変換コードの変換長さを抽出し、上記変換エリア情報保持手段に上記開始アドレスと変換コードの変換長さとを設定する変換エリア情報設定手段と、
    上記変換エリア情報保持手段により保持された開始アドレスと変換コードの変換長さとを読み出し、次にターゲットCPUが実行する命令コードの命令アドレスの値が上記開始アドレスの値と上記開始アドレスに変換コードの変換長さを加算した値の間に含まれているかどうかを比較する比較手段と
    を有することを特徴とする請求項4記載のシミュレーション装置。
  8. 上記読込手段は、ヘッダー情報を有する上記バイナリデータを入力し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段に設定させるため出力する変換エリア情報設定手段と
    を有し、
    上記命令変換手段は、上記変換エリア情報指示手段により出力された開始アドレスと終了アドレスとの間をターゲットCPUの命令コードのエリアとして変換することを特徴とする請求項1記載のシミュレーション装置。
  9. 上記バイナリデータは、メモリ管理を行うメモリ管理テーブルを有し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記メモリ管理テーブルから変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段に設定させるために出力する変換エリア情報設定手段と
    を有し、
    上記命令変換手段は、上記変換エリア情報指示手段により出力された開始アドレスと終了アドレスとの間をターゲットCPUの命令コードのエリアとして変換することを特徴とする請求項1記載のシミュレーション装置。
  10. 上記読込手段は、ヘッダー情報を有する上記バイナリデータを入力し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段に設定させるために出力する変換エリア情報設定手段と
    を有し、
    上記命令変換手段は、上記変換エリア情報指示手段により指示された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間をターゲットCPUの命令コードのエリアとして変換することを特徴とする請求項1記載のシミュレーション装置。
  11. 上記バイナリデータは、メモリ管理を行うメモリ管理テーブルを有し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記メモリ管理テーブルから変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段に設定させるために出力する変換エリア情報設定手段と
    を有し、
    上記命令変換手段は、上記変換エリア情報指示手段により出力された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間をターゲットCPUの命令コードのエリアとして変換することを特徴とする請求項1記載のシミュレーション装置。
  12. 上記読込手段は、ヘッダー情報を有する上記バイナリデータを入力し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスとを上記変換エリア情報指示手段に設定させるために出力する変換エリア情報設定手段と
    を有し、
    上記判定手段は、上記変換エリア情報指示手段により保持された開始アドレスと終了アドレスとを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれているかどうかを比較する比較手段を有することを特徴とする請求項4記載のシミュレーション装置。
  13. 上記判定手段は、上記比較手段により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれている場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されているかどうかを判定し、上記比較手段により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと終了アドレスとの間に含まれていない場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていないと判定することを特徴とする請求項12記載のシミュレーション装置。
  14. 上記実行手段は、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段により保持された変換コードを所定の基準により実行することを特徴とする請求項13記載のシミュレーション装置。
  15. 上記読込手段は、ヘッダー情報を有する上記バイナリデータを入力し、
    上記読込手段は、
    上記命令変換手段により変換すべき上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを保持し、保持された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記命令変換手段に指示するために出力する変換エリア情報指示手段と、
    上記バイナリデータが入力される時に上記バイナリデータが有するヘッダー情報から変換エリアとして上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを抽出し、抽出された上記ターゲットCPUの命令コードのエリアの開始アドレスと変換の終了アドレスまでの変換長さとを上記変換エリア情報指示手段に設定させるために出力する変換エリア情報設定手段と
    を有し、
    上記判定手段は、上記変換エリア情報指示手段により保持された開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとを読み出し、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれているかどうかを比較する比較手段を有することを特徴とする請求項4記載のシミュレーション装置。
  16. 上記判定手段は、上記比較手段により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれている場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されているかどうかを判定し、上記比較手段により比較された結果、次にターゲットCPUが実行する命令の命令アドレスが開始アドレスと上記開始アドレスの値に変換の終了アドレスまでの変換長さを加算した値に対応するアドレスとの間に含まれていない場合に、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていないと判定することを特徴とする請求項15記載のシミュレーション装置。
  17. 上記実行手段は、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていないと判定された場合に、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行し、上記判定手段により、次にターゲットCPUが実行する命令が上記テーブル保持手段により保持された対応テーブルに格納されていると判定された場合に、上記変換コード保持手段により保持された変換コードを所定の基準により実行することを特徴とする請求項16記載のシミュレーション装置。
  18. 上記ターゲットCPUは、システムメモリを有し、
    上記命令変換手段は、上記読込手段により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを上記ターゲットCPUのシステムメモリのページ単位で変換して命令列を生成し、
    上記変換コード保持手段は、上記命令変換手段により生成された命令列を保持し、
    上記シミュレーション装置は、さらに、
    上記読込手段により読み込まれたバイナリデータが有するターゲットCPUのシステムメモリのページアドレスと上記変換コード保持手段により保持された命令列のアドレスとを対応させた対応テーブルを保持するページポインタテーブル保持手段と、
    上記変換コード保持手段により保持された命令列が有効な命令列か無効な命令列かの有効/無効情報を保持する有効/無効情報保持手段と
    を備え、
    上記実行手段は、次にターゲットCPUが実行する命令コードのアドレスが存在するページアドレスに対応する命令列を上記ページポインタテーブル保持手段から抽出し、上記有効/無効情報保持手段により保持された有効/無効情報に基づいて上記抽出された命令列が有効である場合に、上記変換コード保持手段により保持された命令列の中からターゲットCPUが実行する命令コードに対応する変換コードを実行し、上記有効/無効情報保持手段により保持された有効/無効情報に基づいて上記抽出された命令列が無効である場合に、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行することを特徴とする請求項1記載のシミュレーション装置。
  19. 上記バイナリデータは、所定のメモリ容量を1ページとする論理ページの論理ページアドレスを有し、
    上記ターゲットCPUは、システムメモリを有し、上記論理ページアドレスと上記論理ページアドレスに対応する上記システムメモリのページアドレスである物理ページアドレスとを記憶し、
    上記シミュレーション装置は、さらに、
    上記ターゲットCPUに記憶された論理ページアドレスと上記論理ページアドレスに対応する物理ページアドレスと上記変換コード保持手段により保持された命令列のアドレスとを対応させて保持するページアドレス変換バッファ保持手段を備え、
    上記実行手段は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段から検索し、一致する上記論理ページアドレスが検索された場合に、上記次にターゲットCPUが実行する命令コードのアドレスが存在するページアドレスに対応する命令列を上記ページポインタテーブル保持手段から抽出することを特徴とする請求項18記載のシミュレーション装置。
  20. 上記ターゲットCPUは、上記論理ページアドレスと上記論理ページアドレスに対応する上記物理ページアドレスとを相互に変換し、
    上記実行手段は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段により対応させられて保持された論理ページアドレスと物理ページアドレスと命令列のアドレスとから検索し、一致する上記論理ページアドレスが検索されない場合に、ページアドレス変換バッファ保持手段に次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスに対応する物理ページアドレスを上記ターゲットCPUから入力させ、ページアドレス変換バッファ保持手段に入力させられた物理ページアドレスと上記論理ページアドレスと上記変換コード保持手段により保持された命令列のアドレスとを対応させて保持させ、再度、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段から検索することを特徴とする請求項19記載のシミュレーション装置。
  21. 上記バイナリデータは、所定のメモリ容量を1ページとする論理ページの論理ページアドレスを有し、
    上記ターゲットCPUは、システムメモリを有し、上記論理ページアドレスと上記論理ページアドレスに対応する上記システムメモリのページアドレスである物理ページアドレスとを記憶し、
    上記命令変換手段は、上記読込手段により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを上記ターゲットCPUのシステムメモリのページ単位で変換して命令列を生成し、
    上記変換コード保持手段は、上記命令変換手段により生成された命令列を保持し、
    上記シミュレーション装置は、さらに、
    上記ターゲットCPUに記憶された論理ページアドレスと上記論理ページアドレスに対応する物理ページアドレスと上記変換コード保持手段により保持された命令列のアドレスとを対応させて保持するページアドレス変換バッファ保持手段を備え、
    上記実行手段は、次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスをページアドレス変換バッファ保持手段により対応させられて保持された論理ページアドレスと物理ページアドレスと命令列のアドレスとから検索し、
    上記シミュレーション装置は、さらに、
    上記実行手段により次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスがページアドレス変換バッファ保持手段から検索されない場合に、上記実行手段に上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行させる識別情報を保持し、上記実行手段により次にターゲットCPUが実行する命令コードのアドレスが存在する論理ページアドレスがページアドレス変換バッファ保持手段から検索される場合に、上記実行手段に上記変換コード保持手段により保持された命令列の中からターゲットCPUが実行する命令コードに対応する変換コードを実行させる上記変換コードを保持する実行情報保持手段を有することを特徴とする請求項1記載のシミュレーション装置。
  22. 上記変換コード保持手段は、上記変換コードを保持するための所定の容量を有し、
    上記命令変換手段は、
    生成された変換コードの容量が、上記変換コード保持手段の容量を超えたことを検出する容量オーバーフロー検出手段と、
    上記容量オーバーフロー検出手段により、変換コードの容量が上記変換コード保持手段の容量を超えたと検出された場合に、上記変換コード保持手段の容量を拡張することを促す容量拡張手段と
    を有することを特徴とする請求項1記載のシミュレーション装置。
  23. 上記シミュレーション装置は、さらに、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段により保持された変換コードのアドレスとを対応させた対応テーブルを保持するテーブル保持手段とを備え、
    上記容量オーバーフロー検出手段は、さらに、上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードのアドレスと上記変換コード保持手段により保持された変換コードのアドレスとを対応させた対応テーブルの容量が、上記テーブル保持手段の容量を超えたことを検出し、
    上記容量拡張手段は、さらに、上記容量オーバーフロー検出手段により、対応テーブルの容量が上記テーブル保持手段の容量を超えたと検出された場合に、上記テーブル保持手段の容量を拡張することを促すことを特徴とする請求項22記載のシミュレーション装置。
  24. 上記実行手段は、
    ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元に上記テーブル保持手段により保持された対応テーブルから、該当アドレスが上記テーブル保持手段により保持されているかを検出するメモリ更新検出手段と、
    上記メモリ更新検出手段により該当アドレスが上記テーブル保持手段の対応テーブルに保持されていると検出された場合に、メモリ更新によって、上記有効/無効情報保持手段により保持された有効/無効情報を無効な命令列に更新させる保持更新手段と
    を有することを特徴とする請求項18記載のシミュレーション装置。
  25. 上記実行手段は、
    ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元に上記テーブル保持手段により保持された対応テーブルから、該当アドレスが上記テーブル保持手段により保持されているかを検出するメモリ更新検出手段と、
    上記メモリ更新検出手段により該当アドレスが上記テーブル保持手段の対応テーブルに保持されていると検出された場合に、メモリ更新によって、上記実行情報保持手段により保持された上記変換コードを、上記実行手段に上記読込手段により読み込まれたバイナリデータが有するターゲットCPUの命令コードを実行させる識別情報に更新させる保持更新手段と
    を有することを特徴とする請求項21記載のシミュレーション装置。
  26. 上記実行手段は、
    ターゲットCPUのメモリ更新時に、メモリ更新アドレスを元に上記テーブル保持手段により保持された対応テーブルから、該当アドレスが上記テーブル保持手段により保持されているかを検出するメモリ更新検出手段と、
    上記メモリ更新検出手段により該当アドレスが上記テーブル保持手段の対応テーブルに保持されていると検出された場合に、メモリ更新によって、変換コードを再生成し、再生成された新しい変換コードを上記テーブル保持手段の対応テーブルに再設定する命令再変換手段と
    を有することを特徴とする請求項4記載のシミュレーション装置。
  27. ターゲットCPU(Central Processing Unit)の命令コードを有するバイナリデータを読み込む読込工程と、
    上記読込工程により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換工程と、
    上記命令変換工程により生成された変換コードを記憶装置に保持する変換コード保持工程と、
    上記読込工程により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持工程により記憶装置に保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行工程と
    を備えたことを特徴とするシミュレーション方法。
  28. ターゲットCPU(Central Processing Unit)の命令コードを有するバイナリデータを読み込む読込処理と、
    上記読込処理により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換処理と、
    上記命令変換処理により生成された変換コードを記憶装置に保持する変換コード保持処理と、
    上記読込処理により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持処理により記憶装置に保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行処理と
    をコンピュータに実行させるためのプログラム。
  29. ターゲットCPU(Central Processing Unit)の命令コードを有するバイナリデータを読み込む読込処理と、
    上記読込処理により読み込まれたバイナリデータに基づいて、上記ターゲットCPUの命令コードを変換して変換コードを生成する命令変換処理と、
    上記命令変換処理により生成された変換コードを記憶装置に保持する変換コード保持処理と、
    上記読込処理により読み込まれたバイナリデータが有するターゲットCPUの命令コードと上記変換コード保持処理により記憶装置に保持された変換コードとのいずれかを所定の基準により実行することでシミュレーション対象となるターゲットCPUの動作をシミュレーションする実行処理と
    をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2002354619A 2002-12-06 2002-12-06 シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 Pending JP2004185527A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002354619A JP2004185527A (ja) 2002-12-06 2002-12-06 シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002354619A JP2004185527A (ja) 2002-12-06 2002-12-06 シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2004185527A true JP2004185527A (ja) 2004-07-02

Family

ID=32755551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002354619A Pending JP2004185527A (ja) 2002-12-06 2002-12-06 シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP2004185527A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134847A (ja) * 2008-12-08 2010-06-17 Internatl Business Mach Corp <Ibm> コード実行システム、方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134847A (ja) * 2008-12-08 2010-06-17 Internatl Business Mach Corp <Ibm> コード実行システム、方法及びプログラム

Similar Documents

Publication Publication Date Title
JP4130713B2 (ja) プログラム変換装置
JP4216182B2 (ja) 複数の命令セットを用いるデータ処理
CN102236541B (zh) 预加载指令控制
KR100498272B1 (ko) 변환된 명령들을 실행하는 동안 문맥을 보존하기 위한 방법 및 장치
JPH0628036B2 (ja) シミュレーシヨン方法
CN110832455B (zh) 测试向量元素内部的位值
JP2007535241A (ja) 条件付で実行可能モジュールを縮小するシステムおよび方法
JP2002366367A (ja) プログラム命令解釈
US20040205697A1 (en) Transferring data along with code for program overlays
JP5846581B2 (ja) コードを投機的に最適化するための方法、並びにそのコンピュータ及びコンピュータ・プログラム
JP2004538556A (ja) 複数命令セットシステムにおける非処理操作処理
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
CN102037448A (zh) 主机数据处理设备内的装置仿真支持
CN107077365B (zh) 有选择地加载预编译的头部和/或其部分
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JP6103541B2 (ja) バイナリコードの実行を制御する装置及び方法
JP2004185527A (ja) シミュレーション装置及びシミュレーション方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4563669B2 (ja) 命令模擬装置
CN108446186B (zh) 从加壳Android应用程序中恢复Dex源文件的方法
JP4701611B2 (ja) 動的変換方式のエミュレータ向けメモリ管理方法
JP2012018641A (ja) ソフトウェア開発システム
JP2915680B2 (ja) Riscプロセッサ
JP2011113298A (ja) 流用ソースコード解析システム及びプログラム並びに記録媒体
JP2000250957A (ja) 論理シミュレーション装置
JP6163678B2 (ja) プログラムバイナリの汎用的なアンパッキング

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040519

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041025