JP2006505844A - プログラムコード変換の検証を実行するための方法および装置 - Google Patents
プログラムコード変換の検証を実行するための方法および装置 Download PDFInfo
- Publication number
- JP2006505844A JP2006505844A JP2004549323A JP2004549323A JP2006505844A JP 2006505844 A JP2006505844 A JP 2006505844A JP 2004549323 A JP2004549323 A JP 2004549323A JP 2004549323 A JP2004549323 A JP 2004549323A JP 2006505844 A JP2006505844 A JP 2006505844A
- Authority
- JP
- Japan
- Prior art keywords
- target
- emulator
- code
- processor
- block
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Communication Control (AREA)
- Debugging And Monitoring (AREA)
- Numerical Control (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Gyroscopes (AREA)
- Lubrication Of Internal Combustion Engines (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
Abstract
Description
プロセッサ状態およびメモリ状態の以上の比較は、別々に実行されても、組み合わせで実行されてもよい。好ましくは、第1の比較が、ネイティブのプロセッサ状態とエミュレートされたプロセッサ状態の間で、すなわち、プロセッサ12の現実の状態(レジスタ群14および条件コードフラグ群に含まれる値)とエミュレータ30aによって保持されるプロセッサの仮想モデル(抽象レジスタ群320および条件コードフラグ群321に含まれる値)の間で行われる。第2の比較が、ネイティブのメモリ状態とエミュレートされたメモリ状態の間で、すなわち、ネイティブの実行後に更新されたメモリ122と、エミュレータ30aを介した実行後に更新された読み込み/格納バッファ121の間で行われる。理想的には、ビット単位のXOR比較が実行されて、対象コード10のネイティブの実行と、エミュレータ30aによって実行されたプログラムコード変換の間でビット単位の適合性が実証される。ビット単位の適合性は、好ましくは、対象コード10の中のそれぞれの個別の命令のレベルにおいて実証される。この場合、コード実行によって影響を受けた機械状態の部分(例えば、選択されたレジスタ群、または選択されたメモリロケーション)だけを比較することなどの、効率的な比較スキームを特定することができる。
本出願に関連して本明細書と同時に、または本明細書に先立って提出され、本明細書とともに公共の閲覧が自由であるすべての書類および文書に注意を向けられたい。すべてのそのような書類および文書の内容は、参照により本明細書に組み込まれている。
12 プロセッサ
15 基本ブロックキャッシュ
16 オペレーティングシステム
17 グローバルレジスタストア
20 目標コード
22 目標プロセッサ
30 エミュレータ(コード)
31 フロントエンド
32 コア
33 バックエンド
121 読み込み/格納バッファ
122 メモリ
Claims (35)
- エミュレータ(30a)によって実行されたプログラムコード変換を検証する方法であって、
a)対象プロセッサ(12)上のエミュレータ(30a)を介して対象コード(10)を実行することを、前記対象コード(10)の中の比較できるポイントまで行うステップと、
b)前記対象プロセッサ(12)上においてネイティブで前記対象コード(10)を実行することを、前記対象コード(10)の中の同一の比較できるポイントまで行うステップと、
c)前記対象プロセッサ(12)上におけるネイティブでの対象コード(10)の実行を、前記エミュレータ(30a)を介した前記対象プロセッサ(12)上における前記対象コード(10)の実行と、前記対象コード(10)の中の前記比較できるポイントにおいて比較するステップとを特徴とする方法。 - 前記ステップ(a)は、前記対象プロセッサ(12)上において前記対象コード(10)を実行することを、前記エミュレータ(30a)を介した前記対象コード(10)の中の前記比較できるポイントまで行い、エミュレートされた機械状態を提供することを含み、前記ステップ(b)は、前記対象プロセッサ(12)上においてネイティブで前記対象コード(10)を実行することを、前記対象コード(10)の中の同一の比較できるポイントまで行い、ネイティブの機械状態を提供することを含み、前記ステップ(c)は、前記対象コード(10)の中のすべての比較できるポイントにおいて、前記エミュレートされた機械状態を前記ネイティブの機械状態と比較することを含む請求項1に記載の方法。
- 前記ステップ(b)を実行するのに先立って前記ステップ(a)を実行することを含む請求項2に記載の方法。
- 前記ステップ(a)は、前記対象プロセッサ(12)のエミュレートされたイメージ、および/または前記対象プロセッサ(12)に関連するメモリ(18)のエミュレートされたイメージを提供することを含み、前記ステップ(b)は、前記プログラムコードの前記ネイティブの実行後における前記対象プロセッサ(12)のネイティブのイメージ、および/または前記プログラムコードの前記ネイティブの実行後における、前記対象プロセッサ(12)に関連する前記メモリ(18)のネイティブのイメージを提供することを含み、前記ステップ(c)は、前記対象プロセッサ(12)の前記エミュレートされたイメージを前記対象プロセッサ(12)の前記ネイティブのイメージと比較すること、および/または前記メモリ(18)の前記エミュレートされたイメージを前記メモリ(18)の前記ネイティブのイメージと比較することを含む請求項2または3に記載の方法。
- 前記ステップ(a)は、前記メモリ(18)に関する読み込み/格納バッファ(121)内で前記メモリ(18)の前記エミュレートされたイメージを提供して、前記メモリ(18)が、前記エミュレータ(30a)を介して前記対象コード(10)を実行することによって影響を受けないようにすることを含む請求項4に記載の方法。
- 前記対象プロセッサ(12)の前記エミュレートされたイメージは、1つまたは複数のレジスタ(14)のイメージを含む請求項4または5に記載の方法。
- 前記対象プロセッサ(12)の前記エミュレートされたイメージは、1つまたは複数の条件コードフラグのイメージを含む請求項4、5、または6に記載の方法。
- 前記対象コード(10)をネイティブで実行すること、および前記エミュレータ(30a)を介して実行することの両方を前記対象プロセッサ(12)の単一のプロセスイメージ内で行うことを含む請求項1から7のいずれかに記載の方法。
- 前記単一のプロセスイメージ内のコンテキストである、少なくとも、前記エミュレータ(30a)を介した前記対象コード(10)の実行のためのエミュレーションコンテキストと、前記対象プロセッサ(12)上におけるネイティブでの前記対象コード(10)の実行のためのネイティブコンテキストの間でコンテキスト切り替えを実行するステップを含む請求項8に記載の方法。
- 前記対象プロセッサ(12)上で前記エミュレータ(30a)を実行するためのエミュレーションコンテキストと、前記対象プロセッサ(12)上で前記エミュレータ(30a)によって生成された目標コード(20)を実行するための目標実行コンテキストと、前記対象コード(10)が前記対象プロセッサ(12)内部においてネイティブで実行される対象ネイティブコンテキストとの間で選択的に切り替えを行うことを含む請求項8または9に記載の方法。
- 前記ネイティブコンテキストと前記エミュレーションコンテキストはともに、前記対象コード(10)の単一のイメージを使用する請求項9または10に記載の方法。
- 前記対象コード(10)の中の前記比較できるポイントの1つをそれぞれが含む複数のブロックに前記対象コード(10)を分割すること、
前記ブロックの1つを実行すること、および
前記1つのブロックの実行からもたらされた機械状態を比較することを含む請求項1から11のいずれかに記載の方法。 - 2つ以上の検証モードの間で選択を行い、前記選択された検証モードに応じた前記複数のブロックに前記対象コード(10)を分割することを含む請求項12に記載の方法。
- 前記対象コード(10)を複数のブロックに分割し、前記複数のブロックのそれぞれに関して前記実行するステップおよび前記比較するステップを繰り返すことを含む請求項12または13に記載の方法。
- 各ブロックは、
(a)対象コード(10)の単一の命令と、
(b)固有エントリ命令から固有エグジット命令までの命令シーケンスを含む基本ブロックと、
(c)複数の前記基本ブロックを含むグループブロックのいずれか1つを含む請求項12、13、または14に記載の方法。 - 前記対象コード(10)の大きいセグメントを、対象コード(10)の前記大きいセグメントからの1つまたは複数の命令をそれぞれが含む複数のより小さいブロックに分割するステップと、
前記複数のブロックのなかの連続した近隣ブロックの各ペア間のブロック境界において検証比較を実行するステップとを含むいずれかの前記請求項に記載の方法。 - 前記プロセッサの制御が前記エミュレータ(30a)にあるエミュレーションコンテキストにおいて前記対象プロセッサ(12)を提供し、現行のブロックBBnに対してプログラムコード変換を実行して、変換済みの目標コード(20)の対応するブロックを生成し、対象コード(10)の直前の先行するブロックBBn−1にリターンジャンプをパッチするステップと、
コンテキスト切り替えルーチンを実行して対象ネイティブコンテキストに入り、対象コード(10)の前記直前の先行するブロックBBn−1を前記対象プロセッサ(12)によって実行して、前記実行するステップが前記リターンジャンプで終了するようにするステップと、
コンテキスト切り替えルーチンを実行して前記エミュレーションコンテキストに戻り、前記直前の先行するブロックBBn−1の実行後における前記対象プロセッサ(12)を表すネイティブの機械状態を、前記直前の先行するブロックBBn−1の実行後における、前記エミュレータ(30a)によって保持される前記対象プロセッサ(12)の仮想モデルを表すエミュレートされた機械状態と比較することにより、前記検証比較を実行するステップと、
目標実行コンテキストへのコンテキスト切り替えを実行し、前記エミュレータ(30a)によって保持される前記対象プロセッサ(12)の前記仮想モデル内で、対象コード(10)の前記現行のブロックBBnに対応する前記目標コード(20)の実行をモデル化して、前記現行のブロックBBnの終りを表す機械状態に前記仮想モデルを置くステップと、
前記検証比較が前記プログラムコード変換における誤りを明らかにしない限り、前記複数のブロックのなかのそれぞれの後続ブロックに関して以上のステップを繰り返すステップとを含む請求項16に記載の方法。 - 前記直前の先行するブロックBBn−1を復元して前記リターンジャンプを削除することをさらに含む請求項17に記載の方法。
- 前記対象コード(10)のブロックを選択するステップと、
前記エミュレータ(30a)を介して前記対象プロセッサ(12)上で対象コード(10)の前記ブロックを実行するステップと、
対象コード(10)の前記ブロックにリターンジャンプを付加し、対象コード(10)の前記ブロックを前記対象プロセッサ(12)上においてネイティブで実行して、前記リターンジャンプで終了させ、前記リターンジャンプが前記プロセッサの制御を前記エミュレータ(30a)に戻すようにするステップとをさらに含むいずれかの前記請求項に記載の方法。 - プログラムコード変換を検証する方法であって、
対象プロセッサ(12)上で実行されるエミュレータ(30a)を介して対象コード(10)の目標コード(20)へのプログラムコード変換を実行し、前記目標コード(20)を実行して、前記対象プロセッサ(12)に関連する読み込み/格納バッファ(121)の中に格納されるエミュレートされた機械状態を提供するステップと、
前記対象プロセッサ(12)上で直接に前記対象コード(10)を実行して、前記対象プロセッサ(12)に関連するメモリ(18)の中に格納されるネイティブの機械状態を提供するステップと、
前記読み込み/格納バッファ(121)の中に含まれる前記エミュレートされた機械状態を前記メモリ(18)の中に含まれる前記ネイティブの機械状態と比較して、前記プログラムコード変換を検証するステップとを含む方法。 - 前記メモリ(18)に対する前記対象プロセッサ(12)からの読み込み要求および格納要求を読み込み/格納バッファ(121)の中に入れることにより、前記対象プロセッサ(12)に関連する前記メモリ(18)に対する前記エミュレータ(30a)によるアクセスを選択的に阻止することをさらに含む請求項20に記載の方法。
- 前記目標コード(20)を実行する場合に、前記メモリ(18)へのアクセスを選択的に阻止して、前記読み込み/格納バッファ(121)内でエミュレートされたメモリ(18)イメージが提供されるようにすることを含む請求項21に記載の方法。
- 前記対象プロセッサ(12)上で実行される前記エミュレータ(30a)によって実行された前記プログラムコード変換が検証された後、前記対象プロセッサ(12)上で実行される前記エミュレータ(30a)を介した前記対象コード(10)の実行を、目標プロセッサ(22)上で実行される第2のエミュレータ(30b)を介した前記対象コード(10)の実行と比較するステップをさらに含むいずれかの前記請求項に記載の方法。
- 前記対象プロセッサ(12)として第1のホストプロセッサを提供すること、および前記目標プロセッサ(22)として第2のホストプロセッサを提供することを含む請求項23に記載の方法。
- 前記対象コード(10)は、前記対象プロセッサ(12)上においてネイティブで実行可能であるが、前記目標プロセッサ(22)上においてはネイティブで実行可能でない請求項23または24に記載の方法。
- プログラムコード変換を検証する方法であって、
対象プロセッサ(12)上におけるネイティブでの対象コード(10)の実行を、第1のエミュレータ(30a)を介した前記対象プロセッサ(12)上における前記対象コード(10)の実行に対してまず比較し、前記第1のエミュレータ(30a)によって実行されたプログラムコード変換を検証するステップと、
前記第1のエミュレータ(30a)によって実行されたプログラムコード変換が検証された後、前記対象プロセッサ(12)上で実行される前記第1のエミュレータ(30a)を介した対象コード(10)の実行を、目標プロセッサ(22)上で実行される第2のエミュレータ(30b)を介した前記対象コード(10)の実行と次に比較して、前記第1のエミュレータ(30a)によって実行された前記検証済みのプログラムコード変換を使用して、前記第2のエミュレータ(30b)によって実行されたプログラムコード変換を検証するステップとを含む方法。 - 前記第1のエミュレータ(30a)において前記対象プロセッサ(12)の第1の仮想モデルを提供すること、および前記第1の仮想モデルを前記対象プロセッサ(12)と比較することを含む、前記対象コード(10)の第1のプログラムコード変換を実行するステップと、
前記第2のエミュレータ(30b)において前記対象プロセッサ(12)の第2の仮想モデルを提供すること、および前記第1のエミュレータ(30a)における前記第1の仮想モデルを、前記第2のエミュレータ(30b)における前記第2の仮想モデルと比較することを含む、前記対象コード(10)の第2のプログラムコード変換を実行するステップとを含む請求項26に記載の方法。 - 前記第1のエミュレータ(30a)から前記第2のエミュレータ(30b)への単一方向通信を提供することを含む請求項27に記載の方法。
- 前記第1のエミュレータ(30a)から前記第2のエミュレータ(30b)に初期状態情報を送ることにより、前記第1の仮想モデルと前記第2の仮想モデルを同期させるステップと、
前記対象コード(10)を複数のブロックに分割するステップと、
対象コード(10)の各ブロックに関して、前記第1のエミュレータ(30a)を介して対象コード(10)の前記ブロックを実行し、対象機械状態データのセット、および非決定論的な値を前記第2のエミュレータ(30b)に提供するステップと、
前記非決定論的な値を代入し、目標機械状態データのセットを与えて前記第2のエミュレータ(30b)において対象コード(10)の前記ブロックを実行するステップと、
前記対象機械状態データを前記目標機械状態データと比較して、相違が検出された場合、誤りを報告し、相違が検出されなかった場合、対象コード(10)の次のブロックに関して前記プロセスを繰り返すステップとを含む請求項27または28に記載の方法。 - プログラムコード変換を検証する方法であって、
(a)少なくとも1つの命令をそれぞれが含む複数のブロックに対象コード(10)を分割するステップと、
(b)第1のエミュレータ(30a)を介して対象プロセッサ(12)上で対象コード(10)の前記1つのブロックを実行するステップと、
(c)対象プロセッサ(12)上におけるネイティブでの対象コード(10)の前記1つのブロックの実行を、前記第1のエミュレータ(30a)を介した前記対象プロセッサ(12)上における前記対象コード(10)の前記1つのブロックの前記実行と比較して、前記第1のエミュレータ(30a)によって実行された対象コード(10)の前記ブロックのプログラムコード変換を検証するステップと、
(d)目標プロセッサ(22)上で実行される第2のエミュレータ(30b)を介した対象コード(10)の同一の1つのブロックの実行を、前記対象プロセッサ(12)上で実行される前記第1のエミュレータ(30a)を介した対象コード(10)の前記1つのブロックの前記既に検証済みの実行と比較して、前記第2のエミュレータ(30b)によって実行された対象コード(10)の前記1つのブロックのプログラムコード変換を検証するステップと、
(e)前記第2のエミュレータ(30b)によって実行されたプログラムコード変換が、前記対象コード(10)のすべてのブロックに関して検証されるまで、前記対象コード(10)のすべてのブロックに関してステップ(b)〜(d)を繰り返すステップとを含む方法。 - 前記対象コード(10)は、対象コード(10)の各ブロックが単一の命令を含むように最初に分割される請求項30に記載の方法。
- 前記第2のエミュレータ(30b)によって実行されたプログラムコード変換が、単一の命令を含む対象コード(10)のすべてのブロックに関して検証された後、それぞれが固有エントリ命令から固有エグジット命令までの命令シーケンスを含む基本ブロックである複数の新たなブロックに前記対象コード(10)を再分割することにより、ステップ(a)を繰り返すこと、および
各基本ブロックに関してステップ(b)〜(e)を繰り返して、対象コード(10)のすべての基本ブロックに関して、前記第2のエミュレータ(30b)によって実行されたプログラムコード変換を検証することをさらに含む請求項31に記載の方法。 - 前記第2のエミュレータ(30b)によって実行されたプログラムコード変換が、対象コード(10)のすべての基本ブロックに関して検証された後、複数の基本ブロックをそれぞれが含む複数のグループブロックに前記対象コード(10)を再分割することにより、ステップ(a)を繰り返すこと、および
各グループブロックに関してステップ(b)から(e)までを繰り返して、対象コード(10)のすべてのグループブロックに関して、前記第2のエミュレータ(30b)によって実行されたプログラムコード変換を検証することをさらに含む請求項32に記載の方法。 - 請求項1から33のいずれかに記載の方法を実行するためにコンピュータによって実行可能なコンピュータ可読コードの形態で存在するエミュレータソフトウェアを有するコンピュータ可読記憶媒体。
- プロセッサ(12、22)と、
請求項1から33のいずれかに記載の方法を実行するためのエミュレータコード(30)とを組み合わせで含むエミュレータ装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0225649.3A GB0225649D0 (en) | 2002-11-04 | 2002-11-04 | Incremental validation |
GB0225649.3 | 2002-11-04 | ||
PCT/GB2003/004727 WO2004042564A2 (en) | 2002-11-04 | 2003-11-04 | Method and apparatus for performing validation of program code conversion |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006505844A true JP2006505844A (ja) | 2006-02-16 |
JP4766540B2 JP4766540B2 (ja) | 2011-09-07 |
Family
ID=9947144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004549323A Expired - Fee Related JP4766540B2 (ja) | 2002-11-04 | 2003-11-04 | プログラムコード変換の検証を実行するための方法および装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7793270B2 (ja) |
EP (1) | EP1559012B1 (ja) |
JP (1) | JP4766540B2 (ja) |
AT (1) | ATE361497T1 (ja) |
AU (1) | AU2003301782A1 (ja) |
DE (1) | DE60313652T2 (ja) |
GB (2) | GB0225649D0 (ja) |
TW (1) | TW200417925A (ja) |
WO (1) | WO2004042564A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007282004A (ja) * | 2006-04-10 | 2007-10-25 | Nippon Telegr & Teleph Corp <Ntt> | 音声モニタリング録音システムおよびその方法 |
JP2010530996A (ja) * | 2007-03-30 | 2010-09-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム・コードを変換するためのコンピュータ・システム、方法、及びコンピュータ可読記録媒体 |
JP2011508921A (ja) * | 2007-12-29 | 2011-03-17 | 中国科学院▲計▼算技▲術▼研究所 | Riscプロセッサ及びレジスタのフラグビットの処理方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149929B2 (en) * | 2003-08-25 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Method of and apparatus for cross-platform core dumping during dynamic binary translation |
US20050216829A1 (en) * | 2004-03-25 | 2005-09-29 | Boris Kalinichenko | Wireless content validation |
US8694802B2 (en) | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
US7877703B1 (en) * | 2005-03-14 | 2011-01-25 | Seven Networks, Inc. | Intelligent rendering of information in a limited display environment |
US7770050B2 (en) * | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
US7792666B2 (en) * | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
US7813909B2 (en) * | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US7802232B2 (en) * | 2006-03-31 | 2010-09-21 | Microsoft Corporation | Software robustness through search for robust runtime implementations |
US20070234296A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Software variation for robustness through randomized execution contexts |
US7568189B2 (en) * | 2006-05-03 | 2009-07-28 | Sony Computer Entertainment Inc. | Code translation and pipeline optimization |
US20070294675A1 (en) * | 2006-06-20 | 2007-12-20 | Transitive Limited | Method and apparatus for handling exceptions during binding to native code |
US8352713B2 (en) * | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
US7908596B2 (en) * | 2007-01-05 | 2011-03-15 | International Business Machines Corporation | Automatic inspection of compiled code |
US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
JP2010003008A (ja) * | 2008-06-18 | 2010-01-07 | Fujitsu Ltd | 検出プログラム、検出装置および検出方法 |
US20110145643A1 (en) * | 2009-12-10 | 2011-06-16 | Microsoft Corporation | Reproducible test framework for randomized stress test |
US8549468B2 (en) * | 2010-02-08 | 2013-10-01 | National Tsing Hua University | Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model |
US20120011491A1 (en) * | 2010-07-06 | 2012-01-12 | Adi Eldar | Efficient recording and replaying of the execution path of a computer program |
WO2012031846A1 (en) * | 2010-09-09 | 2012-03-15 | International Business Machines Corporation | An automated operating system test framework |
US9104514B2 (en) * | 2011-01-11 | 2015-08-11 | International Business Machines Corporation | Automated deployment of applications with tenant-isolation requirements |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
US20130024178A1 (en) * | 2011-07-20 | 2013-01-24 | Narendran Kumaragurunathan | Playback methodology for verification components |
US20130132063A1 (en) * | 2011-11-18 | 2013-05-23 | Michael J. Rieschl | Systems and methods for debugging just-in-time static translation in an emulated system |
WO2014155684A1 (ja) * | 2013-03-29 | 2014-10-02 | 富士通株式会社 | プログラム、情報処理システム、およびプログラム移行方法 |
EP2849464A1 (en) * | 2013-09-17 | 2015-03-18 | Gemalto SA | Method of communicating between a server and a secure element |
EP2851815A1 (de) * | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
US10747880B2 (en) * | 2013-12-30 | 2020-08-18 | University Of Louisiana At Lafayette | System and method for identifying and comparing code by semantic abstractions |
WO2015133786A1 (ko) * | 2014-03-03 | 2015-09-11 | 엘지전자 주식회사 | 차량용 인포테인먼트 시스템과 이동 단말기의 공용 어플리케이션 개발을 위한 동작 검증 방법 |
RU2757409C1 (ru) * | 2020-06-19 | 2021-10-15 | Акционерное общество "Лаборатория Касперского" | Эмулятор и способ эмуляции |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096510B1 (en) | 1982-06-03 | 1988-07-27 | LUCAS INDUSTRIES public limited company | Control system primarily responsive to signals from digital computers |
US5138708A (en) | 1989-08-03 | 1992-08-11 | Unisys Corporation | Digital processor using current state comparison for providing fault tolerance |
JPH04190457A (ja) * | 1990-11-26 | 1992-07-08 | Hitachi Ltd | 論理シミュレーション方法および装置 |
US5729554A (en) | 1996-10-01 | 1998-03-17 | Hewlett-Packard Co. | Speculative execution of test patterns in a random test generator |
US5905855A (en) | 1997-02-28 | 1999-05-18 | Transmeta Corporation | Method and apparatus for correcting errors in computer systems |
TW342483B (en) | 1997-11-14 | 1998-10-11 | Winbond Electronics Corp | Serial in-circuit emulator architecture |
US6415436B1 (en) | 1998-12-11 | 2002-07-02 | Hewlett-Packard Company | Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler |
US6145436A (en) * | 1999-04-27 | 2000-11-14 | Astro-Med, Inc. | Label transport shuttle for a printing device |
US6625759B1 (en) * | 2000-02-18 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for verifying the fine-grained correctness of a behavioral model of a central processor unit |
JP2001306359A (ja) | 2000-04-20 | 2001-11-02 | Seiko Epson Corp | 自動評価システム |
-
2002
- 2002-11-04 GB GBGB0225649.3A patent/GB0225649D0/en not_active Ceased
-
2003
- 2003-11-03 US US10/700,224 patent/US7793270B2/en active Active
- 2003-11-04 GB GB0325759A patent/GB2395316B/en not_active Expired - Lifetime
- 2003-11-04 DE DE60313652T patent/DE60313652T2/de not_active Expired - Lifetime
- 2003-11-04 WO PCT/GB2003/004727 patent/WO2004042564A2/en active IP Right Grant
- 2003-11-04 EP EP03810505A patent/EP1559012B1/en not_active Expired - Lifetime
- 2003-11-04 AU AU2003301782A patent/AU2003301782A1/en not_active Abandoned
- 2003-11-04 JP JP2004549323A patent/JP4766540B2/ja not_active Expired - Fee Related
- 2003-11-04 AT AT03810505T patent/ATE361497T1/de not_active IP Right Cessation
- 2003-11-04 TW TW092130852A patent/TW200417925A/zh unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007282004A (ja) * | 2006-04-10 | 2007-10-25 | Nippon Telegr & Teleph Corp <Ntt> | 音声モニタリング録音システムおよびその方法 |
JP4589263B2 (ja) * | 2006-04-10 | 2010-12-01 | 日本電信電話株式会社 | 音声モニタリング録音システム |
JP2010530996A (ja) * | 2007-03-30 | 2010-09-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム・コードを変換するためのコンピュータ・システム、方法、及びコンピュータ可読記録媒体 |
JP2011508921A (ja) * | 2007-12-29 | 2011-03-17 | 中国科学院▲計▼算技▲術▼研究所 | Riscプロセッサ及びレジスタのフラグビットの処理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4766540B2 (ja) | 2011-09-07 |
GB2395316A (en) | 2004-05-19 |
AU2003301782A8 (en) | 2004-06-07 |
DE60313652D1 (de) | 2007-06-14 |
GB0225649D0 (en) | 2002-12-11 |
GB2395316A8 (en) | 2005-03-18 |
TW200417925A (en) | 2004-09-16 |
AU2003301782A1 (en) | 2004-06-07 |
EP1559012B1 (en) | 2007-05-02 |
DE60313652T2 (de) | 2008-01-10 |
GB0325759D0 (en) | 2003-12-10 |
US20040221273A1 (en) | 2004-11-04 |
EP1559012A2 (en) | 2005-08-03 |
WO2004042564A2 (en) | 2004-05-21 |
WO2004042564A3 (en) | 2004-07-22 |
GB2395316B (en) | 2005-05-11 |
ATE361497T1 (de) | 2007-05-15 |
US7793270B2 (en) | 2010-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4766540B2 (ja) | プログラムコード変換の検証を実行するための方法および装置 | |
CN100483341C (zh) | 用于执行本机绑定的方法和装置 | |
US6496922B1 (en) | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation | |
JP4573189B2 (ja) | プログラムコード変換方法 | |
US20030149963A1 (en) | Condition code flag emulation for program code conversion | |
US20070011664A1 (en) | Device and method for generating an instruction set simulator | |
JP3606561B2 (ja) | 第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造 | |
WO2012151075A1 (en) | System and method for blurring instructions and data via relocation | |
US20060026584A1 (en) | Explicit linking of dynamic link libraries | |
US6314557B1 (en) | Hybrid computer programming environment | |
CN106055343A (zh) | 一种基于程序演进模型的目标代码逆向工程系统 | |
US8490073B2 (en) | Controlling tracing within compiled code | |
JP2817786B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
US7219335B1 (en) | Method and apparatus for stack emulation during binary translation | |
CN111324948A (zh) | 模拟方法及模拟系统 | |
KR0125605B1 (ko) | 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치 | |
WO2000065440A2 (en) | Exception handling method and apparatus for use in program code conversion | |
US7353163B2 (en) | Exception handling method and apparatus for use in program code conversion | |
JPH10320212A (ja) | キャッシュ向け最適化方法 | |
Barrett et al. | Predictable Macros for Hindley-Milner | |
US20040045018A1 (en) | Using address space bridge in postoptimizer to route indirect calls at runtime | |
JP5067705B2 (ja) | 異常系テスト支援装置、異常系テスト支援方法、及びプログラム | |
CN114327497A (zh) | 一种代码处理方法、装置及设备 | |
JP3604936B2 (ja) | 最適化方法,最適化装置及び記録媒体 | |
Cifuentes et al. | A transformational approach to binary translation of delayed branches with applications to SPARC® and PA-RISC instructions sets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061031 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090731 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090824 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20090824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100319 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100802 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100802 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110412 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110412 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110418 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110601 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110601 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110609 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4766540 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140624 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |