JP2004318449A - プログラム実行速度シュミレーション方法 - Google Patents

プログラム実行速度シュミレーション方法 Download PDF

Info

Publication number
JP2004318449A
JP2004318449A JP2003110987A JP2003110987A JP2004318449A JP 2004318449 A JP2004318449 A JP 2004318449A JP 2003110987 A JP2003110987 A JP 2003110987A JP 2003110987 A JP2003110987 A JP 2003110987A JP 2004318449 A JP2004318449 A JP 2004318449A
Authority
JP
Japan
Prior art keywords
program
virtual machine
execution speed
instruction
terminal
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
JP2003110987A
Other languages
English (en)
Inventor
Masaki Nakano
正樹 中野
Yoshiaki Morimoto
義章 森本
Shinichiro Kawasaki
進一郎 川▲崎▼
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003110987A priority Critical patent/JP2004318449A/ja
Publication of JP2004318449A publication Critical patent/JP2004318449A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】仮想機械と中間語プログラムを利用した実行系向けにプログラムを開発する際、ターゲット端末上とプログラム開発用ホスト端末上で同一のプログラムを実行してクロス開発を行うことが可能である。しかし、ホスト端末上でプログラムを実行させると携帯電話等のターゲット端末に比べ実行速度が速すぎ、ゲーム等のプログラムの実行速度の検証が難しいという問題があった。
【解決手段】ターゲット端末上にてプログラムの各命令の実行時間を計測する手段を設ける。ホスト端末上でプログラムを実行する際、当該計測データを参照して、ホスト端末上でターゲット端末上でのプログラムの実行速度を模擬する。
【選択図】 図2

Description

【0001】
【発明の属する技術分野】
本発明はプログラム開発用ホスト端末(以下、ホスト端末)上において開発したプログラムの動作検証を行う際、運用時にプログラムを実行するターゲット端末(以下、ターゲット端末)のプログラム実行速度を模擬する方法に関する。
【0002】
【従来の技術】
従来、ターゲット端末上で動作するプログラムをホスト端末上でクロス開発する場合、コンパイルしたターゲット端末上で動作する機械語プログラムを動作検証のためにホスト端末上で実行することがある。その際、ターゲット端末上で動作する機械語プログラムをホスト端末上で動作させるためにエミュレータを利用し、ホスト端末上で動作する機械語プログラムに翻訳して実行していた。機械語プログラムの翻訳には時間がかかるため、ホスト端末上でのプログラムを動作させるとターゲット端末上に比べ実行速度が遅いという問題があった。この問題を解決するために特開平6−95921号公報では、ターゲット端末上で動作するプログラムをホスト端末上のエミュレータで実行させた場合のプログラム実行を高速化する技術について述べられている。
【0003】
【特許文献1】
特開平6−95921号公報
【0004】
【発明が解決しようとする課題】
しかし、仮想機械と中間語プログラムを利用して異なったプラットフォームで同一のプログラムを実行できる実行系が一般的になってくると、ターゲット端末とホスト端末の両方で同一のプログラムが実行可能になり、エミュレータが不要になる。中間語プログラムを実行する際には、ターゲット端末とホスト端末の両方において中間語プログラムを機械語プログラムに翻訳して実行するという同様の処理が発生する。よって、ターゲット端末とホスト端末のプログラム実行速度の差は、主にハードウェアの性能差によって引き起こされる。通常、ターゲット端末は携帯電話等のハードウェア性能の低い組込み機器であり、ホスト端末の方がハードウェアの性能が高いことから、ホスト端末上でプログラムを実行するとターゲット端末上より実行速度が速くなり、ゲーム等のプログラム実行速度の検証が必要な場合、ホスト端末上でプログラム実行速度を検証することが難しいという問題があった。この問題のため、正確に動作検証を行う場合はターゲット端末上にホスト端末上で開発したプログラムを頻繁に転送して実行する必要があり、作業効率が低下するという問題があった。
【0005】
【課題を解決するための手段】
上記のような従来技術の問題点を解決するために、ターゲット端末上の仮想機械にソースプログラムまたは中間語プログラムの各一命令ごとの実行時間を計測する手段を設け、ホスト端末上の仮想機械は計測したデータを参照しながらソースプログラムまたは中間語プログラムの一命令実行時間がターゲット端末上の仮想機械の同命令の実行時間と同一になるように命令ごとに実行を遅らせる。
【0006】
実行時間の計測においては複数の命令単位、例えば関数ごとに実行時間を計測する方法も考えられるし、命令が参照している値(オペランド、スタック上の値等)によって実行時間が変わる場合は、命令と異なる値ごとに実行時間を計測する方法が考えられる。
【0007】
ホスト端末上の仮想機械の実行を遅らせる方法として、仮想機械自身が中間語プログラムを機械語プログラムへ翻訳して実行する際に仮想機械の処理を待機する方法、ソースプログラムまたは中間語プログラムを主記憶装置にロードする際に仮想機械の処理を待機する命令を挿入する方法、および実行中にソースプログラムまたは中間語プログラムを機械語プログラムへ翻訳し、その翻訳結果を主記憶装置上にロードされているソースプログラムまたは中間語プログラムと置き換えて実行を行う実行系の場合は、機械語プログラムに翻訳する際に仮想機械を待機する機械語プログラムの命令を挿入する方法が考えられる。
【0008】
【発明の実施の形態】
以下、本発明についての実施例の一つを図1〜図4を用いて説明する。
【0009】
まず始めに図1により、本発明による一利用形態の全体図と機器構成を示す。
【0010】
ホスト端末100は、二次記憶装置101、主記憶装置102、中央処理装置103、通信装置104、表示装置105からなる。主記憶装置102には、検査対象プログラム106、仮想機械実行待機処理部107、仮想機械等がある。ターゲット端末110は、二次記憶装置111、主記憶装置112、中央処理装置113、通信装置114、表示装置115からなる。主記憶装置112には、実行時間計測用プログラム116、仮想機械実行時間計測部117、仮想機械118がある。ホスト端末100とターゲット端末は110はネットワークにより繋がっておりデータ通信が可能である。
【0011】
図2は本発明に係るモジュールの関連を示す図である。検査対象プログラム106をホスト端末100上で実行させる際にターゲット端末110上の実行速度を模擬する方法について説明する。
【0012】
ホスト端末100上で検査対象プログラム106を実行する事前準備として、ターゲット端末110上で実行時間計測プログラム116を仮想機械118により実行し、仮想機械実行時間計測部117により、実行時間計測データ201を生成し、ホスト端末100上の2次記憶装置101に記録する。ホスト端末100上で検査対象プログラム106を仮想機械108により実行する際は、仮想機械108が検査対象プログラム106は仮想機械実行待機処理部107に実行待機処理を依頼する。仮想機械実行待機処理部107は、2次記憶装置101内の実行時間計測データ201を参照し、仮想機械108の実行時間がターゲット端末110上の仮想機械118と同じになるようにする。その方法として、仮想機械108による検査対象プログラム106のロード時に仮想機械実行待機処理部107に問い合わせ、処理を待機するソースプログラムまたは中間語プログラムコードまたは翻訳した機械語プログラムを挿入する方法、仮想機械108による検査対象プログラム106の一命令実行毎に仮想機械実行待機処理部107に問い合わせ、仮想機械の処理を待機させる方法が考えられる。
【0013】
図3は、実行時間計測データ201を示す図である。命令301は、仮想機械により実行可能なソースプログラムまたは中間語プログラムの命令を一意に特定できる値または名前である。実行時間302は、命令が参照する値を入力することでターゲット端末110上の仮想機械118による命令実行時間を算出する式やプログラムが考えられる。各テーブルの行要素303は、ソースプログラムまたは中間語プログラムの一つの命令に対応している。
【0014】
本発明におけるターゲット端末110上で実行時間計測プログラムプログラム116を実行させ、実行時間計測データを生成するフローチャートを図4に示し、処理フローを以下に説明する。
処理401: 仮想機械118は、実行時間計測プログラム116の実行を開始する。
処理402: 仮想機械実行時間計測部117は、仮想機械118による一命令実行にかかる時間を計測する。
処理403: 仮想機械実行時間計測部117は、実行時間計測データ201を参照し計測した一命令実行にかかる時間がすでに記録済みかどうか判定する。記録済みである場合、処理405に進み、それ以外は処理404に進む。
処理404: 計測したデータを実行時間計測データ201に記録する。
処理405: 実行時間計測プログラム116の最後の命令か判定する。最後の命令の場合、処理を終了する。それ以外は処理404に進む。処理402に進む。
【0015】
本発明におけるホスト端末100上で検査対象プログラム106を実行するフローチャートを図5に示し、処理フローを以下に説明する。
処理501: 仮想機械108は、検査対象プログラム106内の命令のロードおよび実行を開始する。
処理502: 仮想機械実行時間待機処理部107は、命令実行時間の計測を開始する。
処理503: 仮想機械108により命令を実行する。
処理504: 仮想機械実行時間待機処理部107は、実行時間計測データ201を参照し、仮想機械118の命令実行時間になるまで仮想機械108の処理を待機させる。
処理505: 検査対象プログラム106の最後の命令か判定する。最後の命令の場合、処理を終了する。それ以外は処理506に進む。
【0016】
本発明におけるホスト端末100上で検査対象プログラム106を実行する方法の一つとして図5で示す処理とは異なる方法についてを図6に示す。本方法は、仮想機械108を大きく変更することなく実装可能であり、より容易に既存の仮想機械に適応可能な方法である。処理フローを以下に説明する。
処理601: 仮想機械108は、検査対象プログラム106内の命令のロードおよび実行を開始する。
処理602: 仮想機械実行時間待機処理部107は、仮想機械108によりロードしている一命令の実行時間を計測する。
処理603: 実行時間計測データ201を参照し、仮想機械108と仮想機械118による命令実行時間の差分を計算する。
処理604: ロード中の検査対象プログラム106に処理603の結果である差分時間を待機する処理を行うコードを挿入する。
処理605: 検査対象プログラム106内の命令の最後の命令か判定する。最後の命令の場合、処理606に進む。それ以外は処理602に進む。
処理606: 仮想機械108はロードした検査対象プログラム106の実行を開始する。
【0017】
【発明の効果】
本発明によれば、プログラム開発用ホスト端末上において、ターゲット端末上の命令実行時間のデータを利用することにより、ホスト端末上でターゲット端末上のプログラム実行速度を模擬することを実現し、効率的にプログラムを開発することが可能となる。
【図面の簡単な説明】
【図1】本発明を実現するシステム全体のモジュール構成の一例を示す図である。
【図2】本発明を実現するシステム全体のモジュール関係の一例を示す図である。
【図3】プログラム実行時に参照する実行時間計測データテーブルの一例を示す図である。
【図4】プログラム実行時間計測時における処理の流れを示す図である。
【図5】プログラム実行時における処理の流れを示す図である。
【図6】プログラム実行時における、図5と異なる処理の流れを示す図である。
【符号の説明】
100…ホスト端末、101…2次記憶装置、102…主記憶装置、103…中央処理装置、104…通信装置、105…表示装置、106…検査対象プログラム、107…仮想機械実行待機処理部、108…仮想機械、110…ターゲット端末、111…2次記憶装置、112…主記憶装置、113…中央処理装置、114…通信装置、115…表示装置、116…実行時間計測用プログラム、117…仮想機械実行時間計測部、118…仮想機械。

Claims (4)

  1. 実行時にソースプログラムまたは中間語プログラムを機械語プログラムへ翻訳して実行する仮想機械を持ち、同一のソースプログラムまたは同一の中間語プログラムが実行可能な二つの異なる端末において、プログラム実行速度が遅い端末上でソースプログラムまたは中間語プログラムの各一命令の実行にかかる時間を計測し、プログラム実行速度が速い端末上でプログラムを実行する際に、計測したデータを参照してプログラム実行速度を調整することを特徴とするプログラム実行速度シュミレーション方法。
  2. 請求項1記載のプログラム実行速度が遅い端末上での命令の実行にかかる時間の計測方法において、ソースプログラムまたは中間語プログラムの複数の命令をまとめて実行時間を計測し、プログラム実行速度が速い端末上でプログラムを実行する際に、計測したデータを参照してプログラム実行速度を調整することを特徴とするプログラム実行速度シュミレーション方法。
  3. 請求項1と2記載のプログラム実行速度が遅い端末上の命令の実行にかかる時間の計測方法において、ソースプログラムまたは中間語プログラムの命令の実行時間が命令が参照する値によって異なる場合、命令と参照する値の組ごとに実行時間を計測し、プログラム実行速度が速い端末上でプログラムを実行する際に、計測したデータを参照してプログラム実行速度を調整することを特徴とするプログラム実行速度シュミレーション方法。
  4. 請求項1から3記載のプログラム実行速度が速い端末上でプログラムを実行する際のプログラム実行速度を調整方法において、ソースプログラムまたは中間語プログラムのロード時および実行時に仮想機械の処理を待機する命令を挿入することを特徴とするプログラム実行速度シュミレーション方法。
JP2003110987A 2003-04-16 2003-04-16 プログラム実行速度シュミレーション方法 Pending JP2004318449A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003110987A JP2004318449A (ja) 2003-04-16 2003-04-16 プログラム実行速度シュミレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003110987A JP2004318449A (ja) 2003-04-16 2003-04-16 プログラム実行速度シュミレーション方法

Publications (1)

Publication Number Publication Date
JP2004318449A true JP2004318449A (ja) 2004-11-11

Family

ID=33471663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003110987A Pending JP2004318449A (ja) 2003-04-16 2003-04-16 プログラム実行速度シュミレーション方法

Country Status (1)

Country Link
JP (1) JP2004318449A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004719A (ja) * 2005-06-27 2007-01-11 Sony Computer Entertainment Inc エミュレート装置及びエミュレート方法
JP2007299212A (ja) * 2006-04-28 2007-11-15 Fujitsu Ten Ltd ソフトウェアの移植評価装置、及び、評価方法
JP2008129800A (ja) * 2006-11-20 2008-06-05 Sony Computer Entertainment Inc ソフトウエアの改竄検査装置及び方法、コンピュータプログラム
JP2009515243A (ja) * 2005-11-04 2009-04-09 インヒロン ゲーエムベーハー ホストコンピュータ上で実行可能なシミュレーションプログラムを生成する方法
JP2009535746A (ja) * 2006-05-03 2009-10-01 株式会社ソニー・コンピュータエンタテインメント インタープリトおよびトランスレートされたインストラクションの両方に関わるエミュレーションにおけるクロック管理の問題を解決するための方法と装置
JP2010097406A (ja) * 2008-10-16 2010-04-30 Fujitsu Ten Ltd シミュレーションシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004719A (ja) * 2005-06-27 2007-01-11 Sony Computer Entertainment Inc エミュレート装置及びエミュレート方法
JP2009515243A (ja) * 2005-11-04 2009-04-09 インヒロン ゲーエムベーハー ホストコンピュータ上で実行可能なシミュレーションプログラムを生成する方法
JP2007299212A (ja) * 2006-04-28 2007-11-15 Fujitsu Ten Ltd ソフトウェアの移植評価装置、及び、評価方法
JP2009535746A (ja) * 2006-05-03 2009-10-01 株式会社ソニー・コンピュータエンタテインメント インタープリトおよびトランスレートされたインストラクションの両方に関わるエミュレーションにおけるクロック管理の問題を解決するための方法と装置
JP2008129800A (ja) * 2006-11-20 2008-06-05 Sony Computer Entertainment Inc ソフトウエアの改竄検査装置及び方法、コンピュータプログラム
JP2010097406A (ja) * 2008-10-16 2010-04-30 Fujitsu Ten Ltd シミュレーションシステム

Similar Documents

Publication Publication Date Title
CN115841089B (zh) 一种基于uvm的系统级芯片验证平台及验证方法
TWI410864B (zh) 在一處理環境中控制指令執行
US8868976B2 (en) System-level testcase generation
CN114626324B (zh) Fpga电路后仿真验证方法、装置、电子设备及存储介质
CN105528284A (zh) 一种内核故障注入方法及电子设备
CN102981949A (zh) 一种在线自动测试服务器的方法
CN102831058B (zh) 一种测试方法和装置
CN110941934A (zh) 一种fpga原型验证开发板分割仿真系统、方法、介质及终端
CN112506517A (zh) 一种裸机系统级激励交叉编译系统及编译方法
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
JP2004318449A (ja) プログラム実行速度シュミレーション方法
US8438000B2 (en) Dynamic generation of tests
US9218273B2 (en) Automatic generation of a resource reconfiguring test
CN105893233A (zh) 用于自动测试固件的方法和系统
CN115562931A (zh) 处理器调试模块验证方法、装置、电子设备和存储介质
CN107329869B (zh) 一种片上系统的仿真方法及装置
CN102750167B (zh) 应用程序启动方法、装置和计算机系统
CN114492266A (zh) 一种芯片验证方法及装置、电子设备、存储介质
JP3147851B2 (ja) シミュレーション方法、シミュレーション装置及びシミュレーションプログラムを記憶した記憶媒体
WO2021247074A1 (en) Resumable instruction generation
JP2828590B2 (ja) マイクロプログラム検証方法
JP2008101921A (ja) 半導体テスト装置
US11719749B1 (en) Method and system for saving and restoring of initialization actions on dut and corresponding test environment
JP4893028B2 (ja) チップセットのエミュレーション装置および方法
JP6949440B2 (ja) ベクタ生成装置及びベクタ生成用プログラム