JP2003015914A - Method for producing test program for evaluating information processing unit, device and program describing processing therefor - Google Patents

Method for producing test program for evaluating information processing unit, device and program describing processing therefor

Info

Publication number
JP2003015914A
JP2003015914A JP2001202323A JP2001202323A JP2003015914A JP 2003015914 A JP2003015914 A JP 2003015914A JP 2001202323 A JP2001202323 A JP 2001202323A JP 2001202323 A JP2001202323 A JP 2001202323A JP 2003015914 A JP2003015914 A JP 2003015914A
Authority
JP
Japan
Prior art keywords
instruction
program
executed
memory
information
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
Application number
JP2001202323A
Other languages
Japanese (ja)
Other versions
JP4503203B2 (en
Inventor
Mariko Sakamoto
真理子 坂本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001202323A priority Critical patent/JP4503203B2/en
Publication of JP2003015914A publication Critical patent/JP2003015914A/en
Application granted granted Critical
Publication of JP4503203B2 publication Critical patent/JP4503203B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a method for precisely evaluating an information processing unit prior to its completion. SOLUTION: An original program execution machine 1 is a computer on which an OS is installed, and executes a given application program. Execution history information 2 represents the execution of an instruction and memory access in the original program execution machine 1 in chronological order. An analysis tool 3 produces basic data 4 of load module format for reproducing the operation of the original program execution machine 1 by analyzing the execution history information 2. Regarding the processing item, among processing items executed with the original program execution machine 1, that a simulator 8 can not execute, correction data 5 are produced. A benchmark program 7 is produced from the basic data 4 and the correction data 5.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、情報処理装置を評
価するためのテストプログラムを作成する方法および装
置に係わり、特に、ベンチマークプログラムを作成する
方法および装置に係わる。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for creating a test program for evaluating an information processing apparatus, and more particularly to a method and apparatus for creating a benchmark program.

【0002】[0002]

【従来の技術】各種情報処理装置(主に、コンピュー
タ)は、通常、その出荷前に様々な性能評価が行われ
る。例えば、ハードウェア開発時には、ロジックシミュ
レータ等を用いて、情報処理装置に搭載すべきCPUの
論理が検証される。また、装置が完成した段階では、そ
の装置に標準的なプログラムを実行させたときの処理時
間を計測することにより、装置全体の性能の評価が行わ
れる。なお、後者の評価は、しばしば「ベンチマークテ
スト」と呼ばれており、ベンチマークテストにおいて使
用されるプログラムは「ベンチマークプログラム」を呼
ばれている。
2. Description of the Related Art Various information processing apparatuses (mainly computers) are usually subjected to various performance evaluations before being shipped. For example, at the time of hardware development, a logic simulator or the like is used to verify the logic of the CPU to be mounted on the information processing apparatus. In addition, when the device is completed, the performance of the entire device is evaluated by measuring the processing time when the device executes a standard program. The latter evaluation is often called "benchmark test", and the program used in the benchmark test is called "benchmark program".

【0003】[0003]

【発明が解決しようとする課題】しかし、ロジックシミ
ュレータは、論理の検証を主目的としているので、情報
処理装置の性能を評価するための機能が十分でない。例
えば、ロジックシミュレータには、通常、OS(Operat
ing System)をインストール出来ないので、OS上でア
プリケーションを実行した場合の動作をロジックシミュ
レータを用いて評価することがではない。また、ロジッ
クシミュレータは、通常、外部メモリ等の外部デバイス
を接続できないので、I/O命令を含む動作の評価を行
うことができない。
However, since the logic simulator has the main purpose of verifying the logic, it does not have a sufficient function for evaluating the performance of the information processing device. For example, an OS (Operat
ing System) cannot be installed, so it is not possible to evaluate the behavior when an application is executed on the OS using a logic simulator. Further, since the logic simulator cannot normally connect an external device such as an external memory, it cannot evaluate an operation including an I / O instruction.

【0004】一方、ベンチマークテストでは、完成した
情報処理装置を利用して所定のプログラム(ベンチマー
クプログラム)が実行されるので、実行速度等を測定す
ることは可能である。しかし、既存のベンチマークテス
トで実行される処理は、一般に、比較的単純なものであ
り、実際に使用すべきアプリケーションプログラムを実
行した場合の性能を評価することは困難であった。従っ
て、もし、実際に使用すべきアプリケーションプログラ
ムを実行した場合の性能を正確に評価するのであれば、
実際にそのアプリケーションプログラムを実行してみる
必要がある。しかし、この場合は、通常、評価対象の情
報処理装置に外部デバイスを接続した状態でテストを行
う必要がある。例えば、データベース系のアプリケーシ
ョンプログラムを実行した場合の動作を評価する場合に
は、情報処理装置に外部記憶装置が接続された状態でテ
ストを行う必要がある。このため、上記テストを行うた
めには、かなりの時間と費用を要することになる。
On the other hand, in the benchmark test, a predetermined program (benchmark program) is executed by using the completed information processing apparatus, so that the execution speed and the like can be measured. However, the processing executed in the existing benchmark test is generally relatively simple, and it is difficult to evaluate the performance when the application program to be actually used is executed. Therefore, if you want to accurately evaluate the performance when executing the application program that should actually be used,
It is necessary to actually execute the application program. However, in this case, it is usually necessary to perform the test with the external device connected to the information processing apparatus to be evaluated. For example, when evaluating the operation when a database-type application program is executed, it is necessary to perform a test with the external storage device connected to the information processing device. Therefore, it takes a considerable amount of time and money to perform the above test.

【0005】また、ベンチマークテストは、評価対象の
情報処理装置が完成した後に行われるので、もしその時
点で一定の性能が得られないことが判明すると、設計変
更等に要する手間が非常に多くなってしまう。すなわ
ち、製品の開発時間が長くなってしまう。
Further, since the benchmark test is performed after the information processing apparatus to be evaluated is completed, if it is found that a certain performance cannot be obtained at that time, it takes much time and effort to change the design. Will end up. That is, the product development time becomes long.

【0006】このように、従来は、情報処理装置の完成
前にその性能を正確に評価することはできなかった。本
発明の課題は、情報処理装置が完成する前にその性能を
正確に評価できるようにすることである。
As described above, conventionally, it was not possible to accurately evaluate the performance of an information processing apparatus before it was completed. An object of the present invention is to make it possible to accurately evaluate the performance of an information processing device before it is completed.

【0007】[0007]

【課題を解決するための手段】本発明の方法は、情報処
理装置を評価するためのテストプログラムを作成する方
法であって、プロセッサおよびメモリを備えるコンピュ
ータを用いてオリジナルプログラムが実行されていると
きに上記プロセッサにより実行される命令および上記メ
モリへのアクセス内容を検出し、検出された情報を実行
履歴情報として時系列に格納し、実行履歴情報に基づい
て上記コンピュータにより実行された命令実行シーケン
スを再現するロードモジュール形式のプログラムを作成
する。
A method of the present invention is a method for creating a test program for evaluating an information processing apparatus, in which the original program is executed using a computer having a processor and a memory. Detect the instructions executed by the processor and the contents of access to the memory, store the detected information in time series as execution history information, and store the instruction execution sequence executed by the computer based on the execution history information. Create a load module format program to reproduce.

【0008】上記ロードモジュール形式のプログラムに
は、オリジナルプログラムが実行されたときの命令だけ
でなく、メモリのアクセス内容も含んでいる。よって、
評価対象の情報処理装置にこのロードモジュールが与え
られると、その装置は、上記コンピュータの動作を忠実
に再現できる。また、上記コンピュータにOSがインス
トールされているものとすると、上記ロードモジュール
は、そのOSの命令も含むことになる。したがって、評
価対象の情報処理装置にOSがインストールされていな
くても、上記コンピュータの動作を再現できる。
The load module format program includes not only an instruction when the original program is executed, but also memory access contents. Therefore,
When this load module is provided to the information processing device to be evaluated, the device can faithfully reproduce the operation of the computer. Further, if the OS is installed in the computer, the load module also includes the instruction of the OS. Therefore, the operation of the computer can be reproduced even if the OS to be evaluated is not installed in the information processing apparatus.

【0009】本発明の他の形態のテストプログラム作成
方法は、プロセッサおよびメモリを備えるコンピュータ
を用いてオリジナルプログラムが実行されているとき
に、上記プロセッサにより実行された命令に対応する命
令コード、その命令に係わる命令情報、上記メモリに書
き込まれる又はそのメモリから読み出されるバイナリデ
ータ、および上記メモリへのアクセス内容を表すアクセ
ス情報を検出し、検出された情報を実行履歴情報として
時系列に格納し、上記実行履歴情報を時系列に解析して
予め用意されているメモリスペースに上記命令情報に基
づいて上記命令コードを書き込むと共に上記アクセス情
報に基づいて上記バイナリデータを書き込むことにより
ロードモジュール形式のプログラムを作成する。
According to another aspect of the present invention, there is provided a test program creating method, wherein an instruction code corresponding to an instruction executed by the processor when the original program is executed by using a computer including a processor and a memory, and the instruction. Command information, binary data written to or read from the memory, and access information indicating access contents to the memory are detected, and the detected information is stored in time series as execution history information. A program in a load module format is created by analyzing the execution history information in time series and writing the above instruction code based on the above instruction information into the prepared memory space and writing the above binary data based on the above access information. To do.

【0010】この方法においても、基本的に上述の方法
と同様に、評価対象の情報処理装置において上記コンピ
ュータの動作が忠実に再現される。なお、上記方法にお
いて、当該テストプログラムが与えられる装置が実行で
きない命令である第1の命令が上記コンピュータにより
実行された場合は、上記第1の命令に起因する上記コン
ピュータの動作を代替する処理ルーチンプログラムを作
成して上記メモリスペースに書き込み、上記第1の命令
の代わりに上記処理ルーチンプログラムを呼び出す命令
を上記メモリスペースに書き込むようにしてもよい。こ
の場合、評価対象の情報処理装置が実行できない命令
は、評価対象の情報処理装置が実行できる処理ルーチン
プログラムに置き換えられるので、評価対象の情報処理
装置において上記コンピュータの動作が忠実に再現され
る。
Also in this method, basically, similar to the above-mentioned method, the operation of the computer is faithfully reproduced in the information processing apparatus to be evaluated. In the above method, when the computer executes the first instruction, which is an instruction that cannot be executed by the device to which the test program is given, a processing routine that substitutes the operation of the computer due to the first instruction. A program may be created and written in the memory space, and an instruction for calling the processing routine program may be written in the memory space instead of the first instruction. In this case, the instruction that cannot be executed by the information processing apparatus to be evaluated is replaced with the processing routine program that can be executed by the information processing apparatus to be evaluated, so that the operation of the computer is faithfully reproduced in the information processing apparatus to be evaluated.

【0011】また、上記方法において、上記コンピュー
タにより実行されたときと当該テストプログラムが与え
られる装置により実行されたときとで異なる動作を引き
起こす可能性のある命令である第2の命令が上記コンピ
ュータにより実行された場合に、上記コンピュータにお
いて上記第2の命令が実行されたときに上記プロセッサ
が参照した条件を上記メモリスペースに書き込み、上記
第2の命令の代わりに上記条件を呼び出す命令を上記メ
モリスペースに書き込むようにしてもよい。この場合、
上記コンピュータおよび評価対象の情報処理装置の実行
速度または動作環境が互いに異なっていても、それらの
間で整合性がとられるので、評価対象の情報処理装置に
おいて上記コンピュータの動作が忠実に再現される。
In the above method, a second instruction, which is an instruction that may cause a different operation when executed by the computer and when executed by an apparatus to which the test program is given, is executed by the computer. When executed, the condition referenced by the processor when the second instruction is executed in the computer is written in the memory space, and an instruction for calling the condition instead of the second instruction is issued in the memory space. You may write in. in this case,
Even if the computer and the information processing apparatus to be evaluated have different execution speeds or operating environments from each other, the two are matched, so that the operation of the computer is faithfully reproduced in the information processing apparatus to be evaluated. .

【0012】更に、上記方法において、当該テストプロ
グラムが与えられる装置が実施できない動作である第1
の動作が上記コンピュータにより実施された場合に、上
記コンピュータにおいて上記第1の動作が実施されたタ
イミングの近傍で実行された命令である第3の命令を命
令シーケンスを切り替える命令に置き換えて上記メモリ
スペースに書き込み、上記第1の動作を代替する処理ル
ーチンプログラムを作成して上記メモリスペースに書き
込み、上記命令シーケンスを切り替える命令と上記処理
ルーチンプログラムとをリンクするようにしてもよい。
この場合、評価対象の情報処理装置が実行できない動作
は、その情報処理装置が実行できる処理ルーチンプログ
ラムに置き換えられるので、評価対象の情報処理装置に
おいて上記コンピュータの動作が忠実に再現される。
Further, in the above method, the first operation is an operation that cannot be performed by the device to which the test program is given.
When the above operation is performed by the computer, the third instruction, which is an instruction executed near the timing when the first operation is performed in the computer, is replaced with an instruction sequence switching instruction, and the memory space is changed. Alternatively, an instruction for switching the instruction sequence may be linked with the instruction for switching the instruction sequence by creating a processing routine program that substitutes the first operation and writing it in the memory space.
In this case, the operation that cannot be executed by the information processing apparatus to be evaluated is replaced with the processing routine program that can be executed by the information processing apparatus, so that the operation of the computer is faithfully reproduced in the information processing apparatus to be evaluated.

【0013】[0013]

【発明の実施の形態】以下、本発明の実施形態について
図面を参照しながら説明する。図1は、本実施形態のプ
ログラム作成方法の概観を説明する図である。なお、本
実施形態では、情報処理装置を評価するためのテストプ
ログラムを作成する。具体的には、コンピュータ(主
に、コンピュータのハードウェア)の性能を評価するた
めのテストプログラムを作成する。以下では、このプロ
グラムのことを、「ベンチマークプログラム」と呼ぶ。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a diagram for explaining an overview of the program creating method of this embodiment. In this embodiment, a test program for evaluating the information processing device is created. Specifically, a test program for evaluating the performance of a computer (mainly computer hardware) is created. Hereinafter, this program is referred to as a "benchmark program".

【0014】オリジナルプログラム実行マシン1は、所
定のオペレーティングシステム(OS:Operating Syst
em)がインストールされたコンピュータにより実現さ
れ、与えられたアプリケーションプログラムを実行す
る。そして、各命令が実行されるごと、或いはメモリが
アクセスされるごとに、その動作を表す情報を時系列に
蓄積してゆくことにより、実行履歴情報2を作成する。
なお、オリジナルプログラム実行マシン1により実行さ
れるプログラム(OSを含む)のことを、「オリジナル
プログラム」と呼ぶことがある。
The original program execution machine 1 has a predetermined operating system (OS).
em) is implemented by a computer that has been installed and executes a given application program. Then, every time each instruction is executed or each time the memory is accessed, the information indicating the operation is accumulated in time series to create the execution history information 2.
A program (including the OS) executed by the original program execution machine 1 may be called an “original program”.

【0015】解析ツール3は、実行履歴情報2を解析
し、基本データ4および補正データ5を生成する。ここ
で、基本データ4は、オリジナルプログラム実行マシン
1により実行された命令実行シーケンスを再現するデー
タである。また、補正データ5は、基本データ4を補正
するためのデータである。なお、補正データ5は、補正
ツール6により適切な状態に加工される。
The analysis tool 3 analyzes the execution history information 2 and generates basic data 4 and correction data 5. Here, the basic data 4 is data that reproduces the instruction execution sequence executed by the original program execution machine 1. Further, the correction data 5 is data for correcting the basic data 4. The correction data 5 is processed into an appropriate state by the correction tool 6.

【0016】ベンチマークプログラム7は、基本データ
4および補正ツール6により加工された補正データ5か
ら構成される。なお、ベンチマークプログラム7は、オ
リジナルプログラム実行マシン1における動作を表すロ
ードモジュールである。
The benchmark program 7 is composed of basic data 4 and correction data 5 processed by the correction tool 6. The benchmark program 7 is a load module that represents the operation of the original program execution machine 1.

【0017】シミュレータ8は、評価対象の情報処理装
置の代替装置であり、ベンチマークプログラム7が与え
られ、それに従って動作する。なお、シミュレータ8
は、完成前の情報処理装置、またはロジックシミュレー
タ等であってもよい。また、シミュレータ8には、必ず
しもOSがインストールされてなくてもよい。さらに、
シミュレータ8には、外部デバイスが接続されてないも
のとする。
The simulator 8 is an alternative device to the information processing device to be evaluated, is provided with the benchmark program 7, and operates according to the benchmark program 7. The simulator 8
May be an unfinished information processing device, a logic simulator, or the like. In addition, the OS does not necessarily have to be installed in the simulator 8. further,
An external device is not connected to the simulator 8.

【0018】ベンチマークプログラム7は、ロードモジ
ュールであり、シミュレータ8に与えられる。ここで、
このロードモジュールは、オリジナルプログラム実行マ
シン1により実行されたアプリケーションプログラムの
命令シーケンスだけでなく、オリジナルプログラム実行
マシン1にインストールされているOSの命令シーケン
スも含んでいる。したがって、シミュレータ8にOSが
インストールされていない場合であっても、ベンチマー
クプログラム7が与えられると、シミュレータ8におい
て、オリジナルプログラム実行マシン1により実行され
た命令シーケンスが再現される。また、オリジナルプロ
グラム実行マシン1において外部デバイスに係わる動作
が発生した場合は、その動作は、補正データ5を用いて
シミュレータ8が処理できる形式で表される。したがっ
て、外部デバイスが接続されていないシミュレータ8を
用いて、外部デバイスに係わる動作の評価を行うことが
できる。
The benchmark program 7 is a load module and is given to the simulator 8. here,
This load module includes not only the instruction sequence of the application program executed by the original program execution machine 1, but also the instruction sequence of the OS installed in the original program execution machine 1. Therefore, even if the OS is not installed in the simulator 8, when the benchmark program 7 is given, the instruction sequence executed by the original program execution machine 1 is reproduced in the simulator 8. Further, when the operation related to the external device occurs in the original program execution machine 1, the operation is represented in a format that the simulator 8 can process using the correction data 5. Therefore, the operation related to the external device can be evaluated using the simulator 8 to which the external device is not connected.

【0019】図2は、オリジナルプログラム実行マシン
1の構成図である。オリジナルプログラム実行マシン1
は、少なくとも、CPU(Central Processing Unit )
11およびメモリ12を備える。
FIG. 2 is a block diagram of the original program execution machine 1. Original program execution machine 1
Is at least a CPU (Central Processing Unit)
11 and a memory 12.

【0020】CPU11は、メモリ12に格納されてい
るプログラムを実行することによって、データを受け取
り、そのデータを使って演算を行い、その演算結果を出
力するまでの一連の動作を提供する。なお、CPU11
は、複数のレジスタを備えている。
The CPU 11 executes a program stored in the memory 12 to receive data, perform an arithmetic operation using the data, and provide a series of operations for outputting the arithmetic result. The CPU 11
Has a plurality of registers.

【0021】メモリ12は、CPU11によりアクセス
される記憶領域であり、OSプログラム13、アプリケ
ーションプログラム14、および各種データを格納す
る。ここで、OSプログラム13は、特に限定されるも
のではないが、評価対象の情報処理装置にインストール
すべきOSと同じもの、或いはそれと互換性があるもの
が使用される。また、アプリケーションプログラム14
は、評価対象の情報処理装置において実行されるもので
あることが好適である。
The memory 12 is a storage area accessed by the CPU 11 and stores an OS program 13, an application program 14, and various data. Here, although the OS program 13 is not particularly limited, the same OS as the OS to be installed in the information processing apparatus to be evaluated or a compatible one is used. In addition, the application program 14
Is preferably executed by the information processing device to be evaluated.

【0022】トレーサ15は、CPU11の動作および
メモリ12へのアクセスを検出し、時系列にその検出結
果を出力する。なお、トレーサ15は、図2に示す例で
は、メモリ12に格納されているが、他の記憶領域に設
けられてもよい。
The tracer 15 detects the operation of the CPU 11 and the access to the memory 12, and outputs the detection result in time series. Note that the tracer 15 is stored in the memory 12 in the example shown in FIG. 2, but may be provided in another storage area.

【0023】外部デバイス21は、オリジナルプログラ
ム実行マシン1に接続されるデバイスであり、例えば、
外部記憶装置、キーボード等の入力装置である。図3
は、トレーサ15の動作を示すフローチャートである。
この処理は、例えば、CPU11により何らかの処理が
実行されるごと、或いはメモり12に何らかのアクセス
が発生するごとに起動される。
The external device 21 is a device connected to the original program execution machine 1, and is, for example,
It is an input device such as an external storage device or a keyboard. Figure 3
3 is a flowchart showing the operation of the tracer 15.
This process is activated, for example, every time the CPU 11 performs some process or whenever the memory 12 is accessed.

【0024】ステップS1では、CPU11により命令
が実行されたか否かを調べる。ここで、「命令」は、ア
プリケーションプログラム14の命令だけでなく、OS
処理に伴う命令も含む。そして、CPU11により命令
が実行された場合は、ステップS2において対応する命
令レコードを作成する。ここで、命令レコードは、例え
ば、下記の情報から構成される。 ・命令コード ・命令格納アドレス(実アドレス、論理アドレス) ・書込み先レジスタ情報 ・書込み先アドレス(実アドレス、論理アドレス) ・書込みデータ長 ・参照レジスタ情報 ・参照アドレス(実アドレス、論理アドレス) ・参照データ長 「命令コード」は、CPU11に与えられる命令そのも
のであり、機械語で表現されている。なお、この命令コ
ードは、たとえば、CPU11が備える命令レジスタに
書き込まれたデータ列を抽出することにより得られる。
「命令格納アドレス」は、当該命令が格納されているア
ドレスである。「書込先レジスタ情報」は、当該命令に
よりデータを書き込むべきレジスタを識別する。「書込
み先アドレス」および「書込みデータ長」は、それぞ
れ、当該命令によりデータがメモリ12に書き込まれる
ときの、そのデータが書き込まれるアドレスおよびその
データのデータ長である。「参照レジスタ情報」は、当
該命令によりデータを参照すべきレジスタを識別する。
「参照アドレス」および「参照データ長」は、それぞ
れ、当該命令によりメモリ12内のデータが参照される
ときの、そのデータが格納されているアドレスおよびそ
のデータのデータ長である。なお、「命令格納アドレ
ス」〜「参照データ長」を検出する方法は、既存の技術
により実現可能である。
In step S1, it is checked whether or not an instruction has been executed by the CPU 11. Here, the “instruction” is not only the instruction of the application program 14 but also the OS.
It also includes instructions for processing. When the CPU 11 executes the instruction, the corresponding instruction record is created in step S2. Here, the instruction record is composed of, for example, the following information. -Instruction code-Instruction storage address (real address, logical address) -Write destination register information-Write destination address (real address, logical address) -Write data length-Reference register information-Reference address (real address, logical address) -Reference The data length “instruction code” is the instruction itself given to the CPU 11, and is expressed in machine language. The instruction code is obtained, for example, by extracting the data string written in the instruction register included in the CPU 11.
The “instruction storage address” is an address where the instruction is stored. The “write destination register information” identifies the register to which the data is written by the instruction. The “write destination address” and the “write data length” are the address at which the data is written and the data length of the data when the data is written to the memory 12 by the instruction, respectively. The “reference register information” identifies a register to which data is to be referred by the instruction.
The “reference address” and the “reference data length” are the address where the data is stored and the data length of the data when the data in the memory 12 is referenced by the instruction, respectively. The method of detecting the “instruction storage address” to the “reference data length” can be realized by existing technology.

【0025】ステップS3では、CPU11が備えるレ
ジスタが更新されたか否か調べる。そして、1または複
数のレジスタが更新された場合は、ステップS4におい
て対応するレジスタレコードを作成する。ここで、レジ
スタレコードは、例えば、更新されたレジスタを識別す
る情報、およびそのレジスタに新たに書き込まれたデー
タ(レジスタ値)を含む。
In step S3, it is checked whether the register provided in the CPU 11 has been updated. If one or more registers are updated, the corresponding register record is created in step S4. Here, the register record includes, for example, information for identifying the updated register and data (register value) newly written in the register.

【0026】ステップS5では、CPU11に対する割
込が発生したか否かを調べる。そして、CPU11に対
する割込が発生した場合は、ステップS6において対応
する割込みレコードを作成する。ここで、割込は、この
実施例では、I/O割込、プログラム割込、外部割込、
特権(SVC)割込等を想定する。下記に、各割込に対
応する割込みレコードの例を示す。 I/O割込 ・割込み発生前のPSW値 ・割込みコード プログラム割込 ・割込み発生前のPSW値 ・命令長 ・割込みコード ・例外種別を判定するコード ・現象識別コード 外部割込 ・割込み発生前のPSW値 ・命令長 ・現象識別コード 特権(SVC)割込 ・割込み発生前のPSW値 ・割込み発生後のPSW値 ・命令長 ・現象識別コード ステップS7では、メモリ12がアクセスされたか否か
を調べる。ここで、アクセスは、メモリ12にデータを
書き込む動作、およびメモリ12に格納されているデー
タを参照する動作を含む。そして、メモリ12がアクセ
スされた場合には、ステップS8において対応するメモ
リデータレコードを作成する。ここで、メモリデータレ
コードは、例えば、下記の情報から構成される。 ・実アドレス ・メモリデータ ・データ長 ・アクセス種別 「実アドレス」は、アクセスされた実アドレスを表す。
「メモリデータ」は、メモリ12に書き込まれるデータ
またはメモリ12から読み出されるデータである。「デ
ータ長」は、メモリ12に書き込まれるデータまたはメ
モリ12から読み出されるデータのデータ長を表示す
る。「アクセス種別」は、書込または参照を識別する。
In step S5, it is checked whether or not an interrupt to the CPU 11 has occurred. Then, when an interrupt to the CPU 11 occurs, a corresponding interrupt record is created in step S6. Here, the interruption is, in this embodiment, I / O interruption, program interruption, external interruption,
Assume privilege (SVC) interrupts. Below is an example of an interrupt record corresponding to each interrupt. I / O interrupt-PSW value before interrupt generation-Interrupt code program interrupt-PSW value before interrupt generation-Instruction length-Interrupt code-Code for judging exception type-Phenomenon identification code External interrupt-Before interrupt generation PSW value, instruction length, phenomenon identification code privilege (SVC) interrupt, PSW value before interrupt occurrence, PSW value after interrupt occurrence, instruction length, phenomenon identification code In step S7, it is checked whether or not the memory 12 is accessed. . Here, the access includes an operation of writing data in the memory 12 and an operation of referring to the data stored in the memory 12. When the memory 12 is accessed, the corresponding memory data record is created in step S8. Here, the memory data record includes, for example, the following information. -Real address-Memory data-Data length-Access type "Real address" indicates the accessed real address.
“Memory data” is data written in the memory 12 or data read from the memory 12. The “data length” indicates the data length of the data written in the memory 12 or the data read from the memory 12. The “access type” identifies writing or reference.

【0027】ステップS9では、OSが管理している各
種テーブルを更新するための命令が実効されたか否かを
調べる。ここでは、アドレス変換テーブルを更新する命
令が実効されたか否かが調べられるものとする。なお、
アドレス変換テーブルには、CPU11が認識する論理
アドレスをメモリ12上の実アドレスに変換するための
情報が登録されている。そして、アドレス変換テーブル
を更新する命令が実効された場合は、ステップS10に
おいて対応するテーブル参照レコードを作成する。ここ
で、テーブル参照レコードは、例えば、下記の情報から
構成される。 ・対応動作 ・変換アドレス ・テーブルアドレス ・データ長 「対応動作」は、アドレス変換を要求した動作を表し、
命令フェッチ、データ参照、データ書込みを識別する。
「変換アドレス」は、変換処理に係わる1組の論理アド
レスと実アドレスである。「テーブルアドレス」は、参
照されたアドレス変換テーブルが格納されているアドレ
スである。「データ長」は、参照されたアドレス変換テ
ーブルにより変換されたデータのデータ長である。
In step S9, it is checked whether or not an instruction for updating various tables managed by the OS has been executed. Here, it is assumed that it is checked whether or not the instruction to update the address conversion table is executed. In addition,
Information for converting a logical address recognized by the CPU 11 into a real address on the memory 12 is registered in the address conversion table. Then, when the instruction to update the address conversion table is executed, the corresponding table reference record is created in step S10. Here, the table reference record is composed of, for example, the following information.・ Corresponding operation ・ Translated address ・ Table address ・ Data length "Corresponding operation" indicates the operation that requested address conversion.
Identify instruction fetch, data reference, and data write.
The “translation address” is a set of logical address and real address related to the conversion process. The “table address” is an address in which the referred address conversion table is stored. The “data length” is the data length of the data converted by the referenced address conversion table.

【0028】ステップS11では、キー情報が設定され
たか否かを調べる。なお、キー情報は、記憶領域を構成
する各ページを管理するための情報であり、OSにより
使用される。そして、キー情報が設定された場合は、ス
テップS12において対応するキー情報レコードを作成
する。ここで、キー情報レコードは、例えば、下記の情
報から構成される。なお、キー情報は、メモリレコー
ド、命令レコード、レジスタ値から導き出すようにして
もよい。 ・アクセス側キー情報 ・命令コード ・アクセス種別(命令フェッチ、オペランド読出し、オ
ペランド書込み、オペランド番号) ・メモリアクセス論理アドレス ・メモリアクセス実アドレス ・セグメントテーブル先頭アドレス ・セグメントテーブルエントリ番号 ・データ長 このように、トレーサ15は、CPU11によりオリジ
ナルプログラムが実行されると、命令、メモリデータ、
関連情報などを検出し、対応するレコードを作成してい
く。そして、トレーサ15により次々と作成されるレコ
ードは、実行履歴情報2として時系列に格納される。
In step S11, it is checked whether or not the key information is set. The key information is information for managing each page that constitutes the storage area and is used by the OS. When the key information is set, the corresponding key information record is created in step S12. Here, the key information record includes, for example, the following information. The key information may be derived from the memory record, instruction record, and register value. -Access side key information-Instruction code-Access type (instruction fetch, operand read, operand write, operand number) -Memory access logical address-Memory access real address-Segment table start address-Segment table entry number-Data length , The tracer 15 receives instructions, memory data, when the original program is executed by the CPU 11.
Detect related information and create corresponding records. Then, the records successively created by the tracer 15 are stored in time series as the execution history information 2.

【0029】なお、トレーサ15は、CPU11により
命令が実行されると、それに対応する命令レコードを作
成するが、例えばその命令に起因してメモリアクセスが
発生した場合には、そのメモリアクセスに対応するメモ
リデータレコードも同時に作成する。すなわち、トレー
サ15は、CPU11により1つの命令が実行される
と、その命令に対応する1または複数のレコードを作成
する。
When the CPU 11 executes an instruction, the tracer 15 creates an instruction record corresponding to the instruction. For example, when a memory access occurs due to the instruction, the tracer 15 corresponds to the memory access. A memory data record is also created at the same time. That is, when the CPU 11 executes one instruction, the tracer 15 creates one or a plurality of records corresponding to the instruction.

【0030】また、上述の例では、メモリ12がアクセ
スされたときに対応するメモリデータレコードが作成さ
れるが、メモリ12に格納されているあるデータが参照
(読出)された場合には、解析ツール3は、そのデータ
が最初に参照されたときにのみメモリデータレコードを
作成するようにしてもよい。
Further, in the above-mentioned example, when the memory 12 is accessed, the corresponding memory data record is created, but when a certain data stored in the memory 12 is referred (read), it is analyzed. Tool 3 may create a memory data record only when the data is first referenced.

【0031】さらに、ある命令に従ってメモり12が更
新されるとき、その更新内容が容易に推測できる場合に
は、解析ツール3は、メモリデータレコードの代わりに
他のレコードを作成するようにしてもよい。例えば、メ
モリ12に格納されているメモリデータをレジスタにロ
ードするだけの単純なロード命令であれば、メモリデー
タレコードを作成する代わりに、レジスタレコードのみ
を作成するようにしてもよい。この場合、このレジスタ
レコードには、ロード命令のオペランドアドレス(メモ
リ12の参照アドレス)が登録される。このとき、ロー
ド命令実行後にロード先のレジスタに格納されている値
は、レジスタレコードに登録されることになるが、この
値は、ロード命令のオペランドアドレスに格納されてい
るメモリデータと一致する。なお、命令レコードから更
新内容を導く出すようにしてもよい。
Further, when the memory 12 is updated according to a certain command, if the updated content can be easily guessed, the analysis tool 3 may create another record instead of the memory data record. Good. For example, in the case of a simple load instruction that simply loads the memory data stored in the memory 12 into a register, only the register record may be created instead of creating the memory data record. In this case, the operand address of the load instruction (reference address of the memory 12) is registered in this register record. At this time, the value stored in the load destination register after execution of the load instruction is registered in the register record, and this value matches the memory data stored in the operand address of the load instruction. The update content may be derived from the instruction record.

【0032】図4は、実行履歴情報2の実施例である。
実行履歴情報2は、ファイル等に格納される際に、レコ
ード番号を用いて管理される。すなわち、トレーサ15
により作成された各レコードは、それぞれその作成順に
レコード番号が付与されて蓄積される。また、各レコー
ドには、それぞれレコードタイプが付与される。この実
施例では、「命令レコード」「レジスタレコード」「メ
モリデータレコード」に対してそれぞれ「01」「0
2」「03」が割り当てられている。そして、トレーサ
15により検出された情報は、それぞれそのまま実行情
報として格納される。この実施例では、例えば、「レコ
ード番号=453」により識別されるレコードに命令レ
コードが格納されている。具体的には、このレコードの
レコードタイプには「01」が設定されており、さら
に、実行情報としてトレーサ15により検出された命令
コード、各種アドレス、データ長などが格納されてい
る。
FIG. 4 shows an example of the execution history information 2.
The execution history information 2 is managed using a record number when it is stored in a file or the like. That is, the tracer 15
Each record created by is given a record number and stored in the order of creation. A record type is given to each record. In this embodiment, "01" and "0" are assigned to "instruction record", "register record" and "memory data record", respectively.
2 ”and“ 03 ”are assigned. Then, the information detected by the tracer 15 is directly stored as the execution information. In this embodiment, for example, the instruction record is stored in the record identified by “record number = 453”. Specifically, "01" is set to the record type of this record, and further, an instruction code detected by the tracer 15, various addresses, a data length, etc. are stored as execution information.

【0033】なお、上述の実施例では、実機上でトレー
サ15を動かすことにより実行履歴情報2を作成するた
めに必要な情報を採取しているが、他の方法で採取する
ようにしてもよい。例えば、アーキテクチャシミュレー
タを用いて必要な情報を採取してもよい。また、実行履
歴情報2を作成するために必要な情報は、評価対象の装
置により異なる。すなわち、採取すべき情報は、評価対
象の装置にインストールされるOS、評価対象の装置に
実装されるCPUの命令アーキテクチャ、評価対象の装
置のシステム構成などに依存して決定される。
In the above embodiment, the information necessary for creating the execution history information 2 is collected by moving the tracer 15 on the actual machine, but it may be collected by another method. . For example, an architecture simulator may be used to collect the necessary information. Also, the information required to create the execution history information 2 differs depending on the device to be evaluated. That is, the information to be collected is determined depending on the OS installed in the evaluation target device, the instruction architecture of the CPU mounted in the evaluation target device, the system configuration of the evaluation target device, and the like.

【0034】上述のようにして作成された実行履歴情報
2は、解析ツール3により解析される。以下、解析ツー
ル3の動作について説明する。解析ツール3は、実行履
歴情報2の各レコードを1つずつ順番に解析し、その結
果を図5に示す初期メモリスペース30を書き込んでい
く。初期メモリスペース30は、基本メモリスペース3
1および補正用メモリスペース32から構成されてい
る。ここで、基本メモリスペース31は、オリジナルプ
ログラム実行マシン1が備えるメモリ12の実空間と同
じサイズの記憶領域である。なお、図1に示した基本デ
ータ4および補正データ5は、それぞれ基本メモリスペ
ース31および補正用メモリスペース32に書き込まれ
る。
The execution history information 2 created as described above is analyzed by the analysis tool 3. The operation of the analysis tool 3 will be described below. The analysis tool 3 sequentially analyzes each record of the execution history information 2 one by one, and writes the result in the initial memory space 30 shown in FIG. The initial memory space 30 is the basic memory space 3
1 and a correction memory space 32. Here, the basic memory space 31 is a storage area having the same size as the real space of the memory 12 included in the original program execution machine 1. The basic data 4 and the correction data 5 shown in FIG. 1 are written in the basic memory space 31 and the correction memory space 32, respectively.

【0035】また、解析ツール3は、レジスタレコード
に登録されている情報を反映させるためのレジスタ群3
3を備える。レジスタ群33は、オリジナルプログラム
実行マシン1のCPU11と同じ数のレジスタから構成
され、初期メモリスペース30にデータを書き込む際に
利用される。
Further, the analysis tool 3 has a register group 3 for reflecting the information registered in the register record.
3 is provided. The register group 33 includes the same number of registers as the CPU 11 of the original program execution machine 1, and is used when writing data to the initial memory space 30.

【0036】解析ツール3は、実行履歴情報2の各レコ
ードを解析することにより得られた結果を、順次、基本
メモリスペース31に書き込んでいく。例えば、解析ツ
ール3は、命令レコードを抽出したときは、そのレコー
ドに登録されている「命令コード」を、そのレコードに
登録されている「命令格納アドレス(実アドレス)」を
キーとして、基本メモリスペース31内の対応する領域
に書き込む。この時、「命令コード」に付随するデータ
があれば、その情報を「命令コード」に続く領域に書き
込む。これにより、オリジナルプログラム実行マシン1
により実行された命令の命令コードが、基本メモリスペ
ース31に書き込まれることになる。このとき、この命
令コードは、メモリ12および基本メモリスペース31
において互いに同一のアドレスに存在する。
The analysis tool 3 sequentially writes the results obtained by analyzing each record of the execution history information 2 into the basic memory space 31. For example, when the instruction record is extracted, the analysis tool 3 uses the “instruction code” registered in the record as a key and the “instruction storage address (real address)” registered in the record as a basic memory. Write in the corresponding area in space 31. At this time, if there is data associated with the “instruction code”, that information is written in the area following the “instruction code”. As a result, the original program execution machine 1
The instruction code of the instruction executed by is written in the basic memory space 31. At this time, this instruction code is stored in the memory 12 and the basic memory space 31.
At the same address as each other.

【0037】例えば、図6に示す例では、オリジナルプ
ログラム実行マシン1が備えるメモリ12の"aaaa"番地
に格納されているstore 命令が実行され、それに対応す
る命令レコードが作成されている。そして、この命令レ
コードが解析され、それに伴って基本メモリスペース3
1の"aaaa"番地にstore命令が書き込まれている。
For example, in the example shown in FIG. 6, the store instruction stored in the address "aaaa" of the memory 12 of the original program execution machine 1 is executed, and the instruction record corresponding to it is created. Then, this instruction record is analyzed, and accordingly, the basic memory space 3
The store instruction is written in the address "aaaa" of 1.

【0038】なお、上述のようにして命令コードを基本
メモリスペース31に書き込む際、対応する領域に何ら
かのデータが既に格納されていた場合は、解析ツール3
は、その書込み処理を実行しない。ここで、上書きを禁
止する機能は、例えば、基本メモリスペース31をバイ
ト単位で管理するテーブルを設け、そのテーブルを用い
て各領域にデータが格納されているか否かを管理するこ
とにより実現可能である。
When writing the instruction code in the basic memory space 31 as described above, if some data is already stored in the corresponding area, the analysis tool 3
Does not execute the writing process. Here, the function of prohibiting overwriting can be realized by, for example, providing a table that manages the basic memory space 31 in units of bytes, and using the table to manage whether or not data is stored in each area. is there.

【0039】同様に、解析ツール3は、実行履歴情報2
からメモリデータレコードを抽出したときは、そのレコ
ードに登録されている「メモリデータ」を、そのレコー
ドに登録されている「実アドレス」をキーとして基本メ
モリスペース31内の対応する領域に書き込む。これに
より、オリジナルプログラム実行マシン1のメモリ12
および基本メモリスペース31の同じアドレスに同じメ
モリデータが存在することになる。
Similarly, the analysis tool 3 uses the execution history information 2
When the memory data record is extracted from, the "memory data" registered in the record is written in the corresponding area in the basic memory space 31 using the "real address" registered in the record as a key. As a result, the memory 12 of the original program execution machine 1
And the same memory data exists at the same address in the basic memory space 31.

【0040】なお、他の種類のレコードについては、後
に示すフローチャートを参照しながら後述する。このよ
うに、解析ツール3は、実行履歴情報2を解析すること
により、オリジナルプログラム実行マシン1のメモリ1
2の内容を初期メモリスペース30の基本メモリスペー
ス31に反映させる。この場合、任意時刻においてメモ
リ12の内容を基本メモリスペース31にコピーするこ
とによっても、同様の結果を得ることができる。
The other types of records will be described later with reference to the flow chart shown later. In this way, the analysis tool 3 analyzes the execution history information 2 to determine whether the memory 1 of the original program execution machine 1 is to be analyzed.
The contents of 2 are reflected in the basic memory space 31 of the initial memory space 30. In this case, the same result can be obtained by copying the contents of the memory 12 into the basic memory space 31 at an arbitrary time.

【0041】ところで、本実施形態のベンチマークテス
トは、評価対象の情報処理装置が完成する前にその装置
の性能を調べることを想定している。したがって、評価
対象の装置をテストする際には、その装置と同等の仕様
を備えるシミュレータ(図1に示すシミュレータ8)を
用意し、本実施形態のベンチマークプログラムをそのシ
ミュレータ8に実行させることにより評価対象の装置の
性能が推定される。ここで、このシミュレータ8には、
評価対象の情報処理装置が備えるCPU又はそれと同等
のプロセッサが実装されているが、OSがインストール
されていないことも想定される。また、シミュレータ8
には、外部デバイスが接続されていない場合も想定され
る。このため、シミュレータ8は、オリジナルプログラ
ム実行マシン1により実行される命令または処理の一部
を実行できない。
By the way, the benchmark test of the present embodiment is intended to examine the performance of the information processing apparatus to be evaluated before it is completed. Therefore, when testing the device to be evaluated, a simulator (simulator 8 shown in FIG. 1) having the same specifications as the device is prepared, and the benchmark program of the present embodiment is executed by the simulator 8. The performance of the target device is estimated. Here, in this simulator 8,
A CPU included in the information processing apparatus to be evaluated or a processor equivalent thereto is mounted, but it is also assumed that the OS is not installed. In addition, the simulator 8
It is also assumed that the external device is not connected to. Therefore, the simulator 8 cannot execute some of the instructions or processes executed by the original program execution machine 1.

【0042】本実施形態のプログラム作成方法では、オ
リジナルプログラム実行マシン1により実行される命令
/処理のうち、シミュレータ8が実行できない命令/処
理をシミュレータ8が実行できる命令/処理に置き換え
ることにより、上記問題の解決を図る。以下では、この
置換え処理のことを、「補正」と呼ぶことがある。ま
た、図1に示した補正データ5は、この補正処理のため
に使用される。
In the program creating method of this embodiment, among the instructions / processes executed by the original program execution machine 1, the instructions / processes that the simulator 8 cannot execute are replaced with the instructions / processes that the simulator 8 can execute. Try to solve the problem. Hereinafter, this replacement process may be referred to as “correction”. The correction data 5 shown in FIG. 1 is used for this correction process.

【0043】以下の実施例では、補正の必要な命令また
は処理として、非同期割込み(I/O割込みを含む)、
I/O命令、動的情報を参照する命令を採り上げる。非同期割込み(その1) ここでは、オリジナルプログラム実行マシン1におい
て、外部デバイス21からのI/O割込により、メモリ
12が更新される場合(メモリ12に新たなデータが書
き込まれる場合)を想定する。
In the following embodiments, an asynchronous interrupt (including an I / O interrupt), an instruction or a process requiring correction,
We pick up I / O commands and commands that refer to dynamic information. Asynchronous Interrupt (No. 1) Here, in the original program execution machine 1, it is assumed that the memory 12 is updated by the I / O interrupt from the external device 21 (when new data is written in the memory 12). .

【0044】非同期割込みは、OSの命令またはアプリ
ケーションプログラムの命令の実行と無関係に発生す
る。すなわち、I/O割込みによるメモリ12の更新
は、ジョブが実行されている最中に行われる。このと
き、このメモリ更新は、実行中のジョブから見ると、I
/O割込の発生により認識される。
The asynchronous interrupt occurs regardless of the execution of the OS instruction or the application program instruction. That is, the update of the memory 12 by the I / O interrupt is performed while the job is being executed. At this time, this memory update is I
Recognized by the occurrence of an / O interrupt.

【0045】ところで、I/O割込みによりメモリ12
が更新されると、トレーサ15は、対応する割込みレコ
ードおよびメモリデータレコードを作成する。このた
め、解析ツール3は、基本的には、これらのレコードに
従って初期メモリスペース30を更新する処理を実行す
べきである。しかし、実際には、上記メモリデータレコ
ードの内容が初期メモリスペース30に反映されれば、
オリジナルプログラム実行マシン1において実行された
メモリ更新と同じ結果が得られるはずである。
By the way, the I / O interrupt causes the memory 12
Is updated, the tracer 15 creates a corresponding interrupt record and memory data record. Therefore, the analysis tool 3 should basically perform the process of updating the initial memory space 30 according to these records. However, in reality, if the contents of the memory data record are reflected in the initial memory space 30,
The same result as the memory update executed in the original program execution machine 1 should be obtained.

【0046】図7は、I/O割込によるメモリ更新が発
生したときの解析ツール3の処理を説明する図である。
この実施例では、オリジナルプログラム実行マシン1に
おいて、外部デバイス21からI/O割込みによりメモ
リ12の"bbbb"番地にデータAが書き込まれ、それに対
応する割込みレコードおよびメモリデータレコードが作
成されている。この場合、メモリデータレコードの内容
に従って、基本メモリスペース31の"bbbb"番地にデー
タAが書き込まれる。
FIG. 7 is a diagram for explaining the processing of the analysis tool 3 when a memory update occurs due to an I / O interrupt.
In this embodiment, in the original program execution machine 1, data A is written from the external device 21 to the address "bbbb" of the memory 12 by the I / O interrupt, and the interrupt record and the memory data record corresponding to the data A are created. In this case, the data A is written in the address "bbbb" of the basic memory space 31 according to the contents of the memory data record.

【0047】このように、オリジナルプログラム実行マ
シン1においては、外部デバイス21からの割込により
メモリ12の"bbbb"番地にデータAが書き込まれる。こ
れに対して、基本メモリスペース31の"bbbb"番地に
は、予めデータAが書き込まれる。
As described above, in the original program execution machine 1, the data A is written in the address "bbbb" of the memory 12 by the interruption from the external device 21. On the other hand, the data A is written in advance at the address "bbbb" of the basic memory space 31.

【0048】ここで、初期メモリスペース30に格納さ
れているデータは、最終的には、ベンチマークプログラ
ムとして使用される。具体的には、基本メモリスペース
31に格納されている命令がシミュレータにより順番に
実行されていく。このとき、図7に示すようにして初期
メモリスペース30が作成されたものとすると、ベンチ
マークテストの開始時に、基本メモリスペース31の"b
bbb"番地には既にデータAが格納されていることにな
る。そして、この状態は、基本メモリスペース31に格
納されている命令とは無関係にデータAが"bbbb"番地に
書き込まれたことと等価である。すなわち、この状態
は、外部デバイス21からのI/O割込みにより"bbbb"
番地にデータAが書き込まれたのと実質的に等価であ
る。従って、I/O割込みによるメモリ更新は、メモリ
データレコードの内容を初期メモリスペース30に反映
させることで実現される。すなわち、シミュレータ8に
外部デバイス21を接続できない状況であっても、ベン
チマークテストにおいてその外部デバイス21が接続さ
れているときと同じ結果が得られる。なお、"bbbb"番地
にデータAと異なるデータA1が存在し、後でI/O割
込みによりそのデータA1をデータAに変更するケース
もある得る。この場合、メモリ31上では、上記I/O
命令の発生時点で上記更新が反映される。I/O命令 ここでは、オリジナルプログラム実行マシン1におい
て、I/O命令が実行され、それに伴ってメモリ12が
更新されたものとする。このI/O命令は、例えば、外
部デバイス21からデータを読み出してそれをメモリ1
2に書き込む命令である。
Here, the data stored in the initial memory space 30 is finally used as a benchmark program. Specifically, the instructions stored in the basic memory space 31 are sequentially executed by the simulator. At this time, assuming that the initial memory space 30 is created as shown in FIG. 7, at the start of the benchmark test, "b" of the basic memory space 31 is written.
This means that the data A has already been stored in the address "bbb". This state means that the data A has been written in the address "bbbb" regardless of the instruction stored in the basic memory space 31. Equivalent, that is, this state is "bbbb" due to an I / O interrupt from the external device 21.
It is substantially equivalent to writing the data A at the address. Therefore, the memory update by the I / O interrupt is realized by reflecting the contents of the memory data record in the initial memory space 30. That is, even when the external device 21 cannot be connected to the simulator 8, the same result as when the external device 21 is connected can be obtained in the benchmark test. There may be a case where the data A1 different from the data A exists at the address "bbbb" and the data A1 is changed to the data A by an I / O interrupt later. In this case, on the memory 31, the I / O
The above update is reflected when the instruction is issued. I / O instruction Here, it is assumed that the I / O instruction is executed in the original program execution machine 1 and the memory 12 is updated accordingly. This I / O command reads data from the external device 21 and stores it in the memory 1 for example.
2 is a command to write.

【0049】オリジナルプログラム実行マシン1におい
てI/O命令が実行されると、トレーサ15は、そのI
/O命令に対応する命令レコードを作成する。また、こ
の命令に伴ってメモり12が更新されると、更新された
メモリデータを含むメモリデータレコードが作成され
る。さらに、上記I/O命令を実行することにより更新
された情報(例えば、レジスタ値、コンディションコー
ド等)が対応するレコードに登録される。
When an I / O command is executed in the original program execution machine 1, the tracer 15 causes the I / O command to execute the I / O command.
Create an instruction record corresponding to the / O instruction. Further, when the memory 12 is updated in accordance with this instruction, a memory data record including the updated memory data is created. Furthermore, the information (for example, register value, condition code, etc.) updated by executing the I / O instruction is registered in the corresponding record.

【0050】解析ツール3は、上記各レコードに基づい
て、初期メモリスペース30に必要な情報を書き込む。
具体的には、上記I/O命令により更新されたメモリデ
ータおよび各種情報を、補正データとして補正用メモリ
スペース32に書き込む。また、解析ツール3は、上記
I/O命令の代わりに割込属性命令を生成し、それを基
本メモリスペース31内の対応するアドレスに書き込
む。ここで、この割込属性命令は、先に補正用メモリス
ペース32に格納してある補正データを処理するための
命令である。
The analysis tool 3 writes the necessary information in the initial memory space 30 based on the above records.
Specifically, the memory data and various information updated by the I / O command are written in the correction memory space 32 as correction data. Further, the analysis tool 3 generates an interrupt attribute instruction instead of the I / O instruction and writes it in the corresponding address in the basic memory space 31. Here, this interrupt attribute command is a command for processing the correction data previously stored in the correction memory space 32.

【0051】図8は、I/O命令によるメモリ更新が発
生したときの解析ツール3の処理を説明する図である。
この例では、オリジナルプログラム実行マシン1におい
て、メモリ12の"cccc"番地に格納されているI/O命
令が実行されることにより、"dddd"番地にデータBが書
き込まれている。このとき、トレーサ15は、対応する
レコードを作成する。そして、解析ツール3は、まず、
メモリデータレコードを利用して、データBを補正用メ
モリスペース32内の所定の領域に書き込む。なお、図
8では、データBのみが補正用メモリスペース32に書
き込まれているが、実際には、他の関連情報も一緒に格
納される。続いて、解析ツール3は、上記I/O命令に
対応する処理ルーチンプログラム(sub-p)を作成し、
それを補正用メモリスペース32内の所定の領域に書き
込む。この処理ルーチンプログラムには、以下の処理が
記述されている。 ・補正用メモリスペース32に格納されているデータB
を、基本メモリ領域31の"dddd"番地に書き込む処理 ・補正用メモリスペース32に格納されている他の関連
情報に従って、レジスタ等を更新する処理 さらに、解析ツール3は、基本メモリスペース31の"c
ccc"番地に割込属性命令を書き込む。すなわち、I/O
命令に代わりに割込属性命令が書き込まれることにな
る。ここで、この割込属性命令は、割込を発生する属性
を持った命令であり、補正用メモリスペース32に格納
されている処理ルーチンプログラムを呼び出すことがで
きる。
FIG. 8 is a diagram for explaining the processing of the analysis tool 3 when the memory update by the I / O instruction occurs.
In this example, the original program execution machine 1 executes the I / O instruction stored in the address "cccc" of the memory 12 to write the data B in the address "dddd". At this time, the tracer 15 creates a corresponding record. And the analysis tool 3 first
The data B is written to a predetermined area in the correction memory space 32 using the memory data record. In FIG. 8, only the data B is written in the correction memory space 32, but actually, other related information is also stored together. Subsequently, the analysis tool 3 creates a processing routine program (sub-p) corresponding to the I / O instruction,
It is written in a predetermined area in the correction memory space 32. The following processing is described in this processing routine program. -Data B stored in the correction memory space 32
Is written to the address "dddd" of the basic memory area 31. The processing of updating the registers and the like according to other related information stored in the correction memory space 32. c
Write the interrupt attribute command to the ccc "address, that is, I / O
The interrupt attribute command will be written instead of the command. Here, the interrupt attribute instruction is an instruction having an attribute that causes an interrupt, and can call a processing routine program stored in the correction memory space 32.

【0052】上述のようにして作成されたベンチマーク
プログラムをシミュレータ8に与えると、以下の動作が
実現される。すなわち、シミュレータ8は、基本メモリ
スペース31に格納されている命令を順番に実行してい
く。そして、図8において設定された割込属性命令が実
行されると、補正用メモリスペース32に格納されてい
る処理ルーチンプログラムが起動される。そして、この
処理ルーチンプログラムにより、補正用メモリスペース
32に格納されているデータBが基本メモリ領域31
の"dddd"番地に書き込まれると共に、レジスタ等が更新
される。その後、上記割込属性命令の次の命令に処理が
戻る。
When the benchmark program created as described above is given to the simulator 8, the following operations are realized. That is, the simulator 8 sequentially executes the instructions stored in the basic memory space 31. When the interrupt attribute command set in FIG. 8 is executed, the processing routine program stored in the correction memory space 32 is activated. Then, by this processing routine program, the data B stored in the correction memory space 32 is stored in the basic memory area 31.
It is written in the address "dddd" of and the registers are updated. After that, the process returns to the instruction next to the interrupt attribute instruction.

【0053】このように、シミュレータ8に上記ベンチ
マークプログラムを与えると、オリジナルプログラム実
行マシン1において上記I/O命令に起因して生じた動
作と同じ動作が実現されることになる。ここで、上記ベ
ンチマークプログラムにおいては、I/O命令が割込属
性命令に置き換えられている。したがって、シミュレー
タ8がI/O命令を実行できない場合であっても、その
シミュレータ8を用いてI/O命令に対応する動作が実
現される。動的情報を参照する命令 ここでは、オリジナルプログラム実行マシン1におい
て、動的情報を参照する命令が実行されるものとする。
なお、「動的情報」とは、たとえば、命令が実行される
時刻、あるいは所定の処理を実行するために要した時間
に関する情報である。また、「動的情報を参照する命
令」とは、上記動的情報に依存して異なる動作を導き出
す命令である。例えば、「プログラム起動時から10秒
以内に実行される場合はXX番地にジャンプし、それ以
降に実行される場合にはYY番地にジャンプする」が定
義された分岐命令である。
As described above, when the simulator 8 is provided with the benchmark program, the same operation as that caused by the I / O instruction is realized in the original program execution machine 1. Here, in the above benchmark program, the I / O instruction is replaced with the interrupt attribute instruction. Therefore, even if the simulator 8 cannot execute the I / O instruction, the operation corresponding to the I / O instruction is realized using the simulator 8. Instruction for Referencing Dynamic Information Here, it is assumed that the instruction for referencing dynamic information is executed in the original program execution machine 1.
The "dynamic information" is, for example, information about the time when an instruction is executed or the time required to execute a predetermined process. Further, the “instruction for referencing the dynamic information” is an instruction for deriving a different operation depending on the dynamic information. For example, the branch instruction is defined as "jump to address XX if executed within 10 seconds after program startup, and jump to address YY if executed thereafter".

【0054】上述のような動的情報を参照する命令(以
下、動的情報参照命令)は、基本的に、シミュレータ8
でも実行することができる。しかし、シミュレータ8の
実行速度は、必ずしもオリジナルプログラム実行マシン
1のそれと同じではない。このため、オリジナルプログ
ラム実行マシン1およびシミュレータ8に同じプログラ
ムが与えられたとき、動的情報参照命令による処理結果
が同じになるとは限らない。
The instruction for referring to the dynamic information as described above (hereinafter referred to as dynamic information reference instruction) is basically the simulator 8
But you can do it. However, the execution speed of the simulator 8 is not always the same as that of the original program execution machine 1. Therefore, when the same program is given to the original program execution machine 1 and the simulator 8, the processing results by the dynamic information reference instruction do not always become the same.

【0055】本実施形態のプログラム作成方法では、こ
の問題を解決するために、オリジナルプログラム実行マ
シン1により動的情報参照命令が実行された場合は、そ
の命令を他の命令(例えば、ロード命令)に置き換える
と共に、シミュレータ8において同等の動作が実現され
るように補正処理が行われる。
In the program creating method of the present embodiment, in order to solve this problem, when the dynamic information reference instruction is executed by the original program execution machine 1, the instruction is changed to another instruction (for example, a load instruction). And the correction process is performed so that the simulator 8 can realize the same operation.

【0056】図9は、動的情報参照命令が実行されたと
きの解析ツール3の処理を説明する図である。なお、図
9では、動的情報参照命令のことを「D命令」と記載し
てある。
FIG. 9 is a diagram for explaining the processing of the analysis tool 3 when the dynamic information reference instruction is executed. In FIG. 9, the dynamic information reference instruction is described as “D instruction”.

【0057】オリジナルプログラム実行マシン1におい
て、メモリ12の"eeee"番地に格納されている動的情報
参照命令を実行することにより、"ffff"番地に格納され
ている動的情報が参照され、その動的情報の値に従って
以降の処理が決定されたものとする。ここで、メモリ1
2の"ffff"番地は、例えば、プログラムの起動時からの
経過時間を書き込むための領域として使用されている。
そして、この経過時間が動的情報として使用される。ま
た、この動的情報参照命令は、例えば、メモリ12の"f
fff"番地に格納されている動的情報を所定のレジスタに
ロードして、それを予め決められているしきい値と比較
することにより以降の処理を決定する命令である。
In the original program execution machine 1, by executing the dynamic information reference instruction stored in the address "eeee" of the memory 12, the dynamic information stored in the address "ffff" is referred to, It is assumed that the subsequent processing is decided according to the value of the dynamic information. Where memory 1
The address "ffff" of 2 is used, for example, as an area for writing the elapsed time from the start of the program.
Then, this elapsed time is used as dynamic information. Further, this dynamic information reference instruction is, for example, "f" in the memory 12.
This is an instruction that loads the dynamic information stored in the address "fff" into a predetermined register and compares it with a predetermined threshold value to determine the subsequent processing.

【0058】この場合、トレーサ15は、対応する命令
レコードおよびレジスタレコードを作成する。このと
き、この命令レコードには、少なくとも、動的情報参照
命令を識別する命令コード、動的情報参照命令の格納ア
ドレス、動的情報の格納アドレスが登録される。また、
レジスタレコードには、少なくとも、レジスタ値が登録
される。ここで、このレジスタ値は、メモリ12の"fff
f"番地から読み出した動的情報と上記しきい値との比較
結果である。
In this case, the tracer 15 creates the corresponding instruction record and register record. At this time, at least the instruction code for identifying the dynamic information reference instruction, the storage address of the dynamic information reference instruction, and the storage address of the dynamic information are registered in this instruction record. Also,
At least a register value is registered in the register record. Here, this register value is "fff" of the memory 12.
It is the result of comparison between the dynamic information read from the address "f" and the threshold value.

【0059】解析ツール3は、作成されたレコードを解
析することにより、以下の処理を行う。すなわち、解析
ツール3は、まず、命令レコードに基づいて、基本メモ
リスペース31の"eeee"番地にロード命令を書き込む。
このロード命令は、"ffff"番地に格納されているデータ
を所定のレジスタにロードする命令である。また、解析
ツール3は、上記レジスタレコードに登録されているレ
ジスタ値を基本メモリスペース31の"ffff"番地に書き
込む。
The analysis tool 3 performs the following processing by analyzing the created record. That is, the analysis tool 3 first writes the load instruction to the address "eeee" of the basic memory space 31 based on the instruction record.
This load instruction is an instruction to load the data stored in the address "ffff" into a predetermined register. Further, the analysis tool 3 writes the register value registered in the register record in the address "ffff" of the basic memory space 31.

【0060】上述のようにして作成されたベンチマーク
プログラムをシミュレータ8に与えると、以下の動作が
実現される。すなわち、シミュレータ8において、上記
ロード命令が実行されると、基本メモリスペース31
の"ffff"番地に格納されているデータが所定のレジスタ
にロードされる。ここで、"ffff"番地には、オリジナル
プログラム実行マシン1において上記動的情報と上記し
きい値とが比較されたときの比較結果が格納されてい
る。したがって、シミュレータ8において、このロード
命令が実行されると、オリジナルプログラム実行マシン
1において動的情報参照命令が実行されたときと同等の
動作が実現される。
When the benchmark program created as described above is given to the simulator 8, the following operations are realized. That is, when the load instruction is executed in the simulator 8, the basic memory space 31
The data stored in the address "ffff" is loaded into the specified register. Here, the comparison result when the dynamic information is compared with the threshold value in the original program execution machine 1 is stored in the address "ffff". Therefore, when the load instruction is executed in the simulator 8, the same operation as when the dynamic information reference instruction is executed in the original program execution machine 1 is realized.

【0061】このように、シミュレータ8に上記ベンチ
マークプログラムを与えると、動的情報を参照すること
なく、オリジナルプログラム実行マシン1において動的
情報参照命令が実行されたときと同等の動作が実現され
る。すなわち、オリジナルプログラム実行マシン1およ
びシミュレータ8の実行速度または動作環境が互いに異
なっていても、オリジナルプログラム実行マシン1の動
作がシミュレータ8上で再現される。
In this way, when the above-mentioned benchmark program is given to the simulator 8, the same operation as when the dynamic information reference instruction is executed in the original program execution machine 1 is realized without referring to the dynamic information. . That is, even if the execution speeds or operating environments of the original program execution machine 1 and the simulator 8 are different from each other, the operation of the original program execution machine 1 is reproduced on the simulator 8.

【0062】なお、図9に示す例では、動的情報参照命
令をロード命令に置き換えることにより、オリジナルプ
ログラム実行マシン1およびシミュレータ8において同
じ動作が実現されるようにしているが、これに限定され
るものではない。すなわち、例えば、動的情報参照命令
による処理が複雑な場合や、命令が複数回実行されてそ
の実行の都度レジスタ値が異なる場合等には、上述した
I/O命令についての処理と同様に、割込属性命令を利
用してもよい。すなわち、動的情報参照命令を割込属性
命令に置き換えると共に、その割込属性命令による割込
が発生したときに呼び出される処理ルーチンプログラム
を補正メモリスペース32に格納する。この場合、この
処理ルーチンプログラムには、動的情報参照命令に対応
する処理が記述される。非同期割込み(その2) ここでは、オリジナルプログラム実行マシン1におい
て、外部デバイス21からのI/O割込が発生し、その
割込に対応する処理が実行されたものとする。
In the example shown in FIG. 9, the same operation is realized in the original program execution machine 1 and the simulator 8 by replacing the dynamic information reference instruction with the load instruction, but the present invention is not limited to this. Not something. That is, for example, when the processing by the dynamic information reference instruction is complicated, or when the instruction is executed a plurality of times and the register value is different each time the instruction is executed, as in the case of the above-described I / O instruction, An interrupt attribute command may be used. That is, the dynamic information reference instruction is replaced with the interrupt attribute instruction, and the processing routine program called when the interrupt due to the interrupt attribute instruction occurs is stored in the correction memory space 32. In this case, the processing routine program describes the processing corresponding to the dynamic information reference instruction. Asynchronous Interrupt ( No. 2) Here, it is assumed that the original program execution machine 1 has generated an I / O interrupt from the external device 21 and executed a process corresponding to the interrupt.

【0063】図10(a) は、オリジナルプログラム実行
マシン1において上記割込みが発生した場合の命令シー
ケンスを示す図である。ここでは、命令A〜F...が
順番に実行されるシーケンスにおいて、命令Cが実行さ
れた直後に割込が発生したものとする。そして、その割
込により命令a〜dを含む処理ルーチン41が実行さ
れ、その後に命令Dに処理が戻っている。
FIG. 10A is a diagram showing an instruction sequence when the above-mentioned interrupt occurs in the original program execution machine 1. Here, the instructions A to F. . . It is assumed that the interrupt occurs immediately after the instruction C is executed in the sequence in which Then, the processing routine 41 including the instructions a to d is executed by the interrupt, and then the processing returns to the instruction D.

【0064】本実施形態のベンチマークプログラムを作
成する際には、上記非同期割込に起因する動作をシミュ
レータ8において再現するために、その非同期割込の直
前の命令が処理ルーチン41を呼び出すための命令に置
き換えられる。上述の例の場合は、図10(b) に示すよ
うに、命令Cが、処理ルーチン42を呼び出すための割
込属性命令に置き換えられる。ここで、処理ルーチン4
2は、処理ルーチン41を構成する命令a〜dに加え、
命令Cに起因する動作をエミュレートしたデータ(エミ
ュレーションデータ)を含んでいる。また、命令Cのエ
ミュレーションデータは、例えば、命令Cが実行された
ときの演算結果や、レジスタ更新に係わる情報などを含
む。
When the benchmark program of the present embodiment is created, in order to reproduce the operation caused by the asynchronous interrupt in the simulator 8, the instruction immediately before the asynchronous interrupt calls the processing routine 41. Is replaced by In the case of the above example, as shown in FIG. 10B, the instruction C is replaced with an interrupt attribute instruction for calling the processing routine 42. Here, the processing routine 4
2 is in addition to the instructions a to d that form the processing routine 41,
It includes data (emulation data) that emulates the operation caused by the instruction C. In addition, the emulation data of the instruction C includes, for example, a calculation result when the instruction C is executed, information regarding register update, and the like.

【0065】なお、上述の例では、非同期割込の直前の
命令が割込属性命令に置き換えられているが、必ずしも
直前の命令が置き換えられる必要はなく、非同期割込が
発生したタイミングの近傍の他の命令が割込属性命令に
置き換えられてもよい。この場合、エミュレーションが
容易な命令(例えば、ADD命令など)が割込属性命令
に置き換えられることが望ましい。
In the above example, the instruction immediately before the asynchronous interrupt is replaced by the interrupt attribute instruction, but the instruction immediately before is not necessarily replaced, and the instruction near the timing at which the asynchronous interrupt occurs is not necessarily replaced. Other instructions may be replaced with interrupt attribute instructions. In this case, it is desirable that an instruction that can be easily emulated (for example, an ADD instruction) be replaced with an interrupt attribute instruction.

【0066】図11は、非同期割込が発生したときの解
析ツール3の処理を説明する図である。なお、図11で
は、図10に示した例に対応する実施例を示す。オリジ
ナルプログラム実行マシン1において、メモリ12の"g
ggg"番地に格納されている命令Cが実行された直後に非
同期割込が発生し、この割込により処理ルーチン41が
呼び出されたものとする。この場合、トレーサ15は、
命令Cに対応する命令レコード、命令Cに起因して更新
された情報に対応するレコード、非同期割込に対応する
割込みレコード、処理ルーチン41に含まれている命令
に対応するレコードなどを作成する。
FIG. 11 is a diagram for explaining the processing of the analysis tool 3 when an asynchronous interrupt occurs. Note that FIG. 11 shows an embodiment corresponding to the example shown in FIG. In the original program execution machine 1, "g" in the memory 12
It is assumed that the asynchronous interrupt occurs immediately after the instruction C stored in the address ggg "is executed, and the processing routine 41 is called by this interrupt. In this case, the tracer 15
An instruction record corresponding to the instruction C, a record corresponding to information updated due to the instruction C, an interrupt record corresponding to an asynchronous interrupt, a record corresponding to an instruction included in the processing routine 41, etc. are created.

【0067】解析ツール3は、作成されたレコードに基
づいて、以下の処理を行う。すなわち、解析ツール3
は、まず、レジスタレコード等を参照して命令Cのエミ
ュレーションデータを作成し、そのエミュレーションデ
ータを含み且つ命令aに処理を渡す命令が最後に実行さ
れる処理ルーチン42を作成する。そして、その処理ル
ーチン42を補正用メモリスペース32の所定領域に書
き込む。また、解析ツール3は、基本メモリスペース3
1の"gggg"番地に割込属性命令を書き込む。この割込属
性命令は、処理ルーチン42を呼び出す命令である。
The analysis tool 3 performs the following processing based on the created record. That is, the analysis tool 3
First, the emulation data of the instruction C is created by referring to the register record or the like, and the processing routine 42 in which the instruction including the emulation data and passing the processing to the instruction a is finally executed is created. Then, the processing routine 42 is written in a predetermined area of the correction memory space 32. In addition, the analysis tool 3 uses the basic memory space 3
Write the interrupt attribute command to the "gggg" address of 1. This interrupt attribute command is a command for calling the processing routine 42.

【0068】上述のようにして作成されたベンチマーク
プログラムをシミュレータ8に与えると、以下の動作が
実現される。すなわち、シミュレータ8において、上記
割込属性命令が実行されると、処理ルーチン42が呼び
出される。これにより、命令Cに対応する動作が実現さ
れる。続いて、処理ルーチン41に制御が渡る。処理ル
ーチン41が実行された後、処理は、命令Cの次の命令
に戻る。
When the benchmark program created as described above is given to the simulator 8, the following operations are realized. That is, when the interrupt attribute instruction is executed in the simulator 8, the processing routine 42 is called. As a result, the operation corresponding to the instruction C is realized. Then, the control is passed to the processing routine 41. After the processing routine 41 is executed, the processing returns to the instruction following the instruction C.

【0069】このように、シミュレータ8に上記ベンチ
マークプログラムを与えると、非同期割込を発生させる
ことなく、オリジナルプログラム実行マシン1において
非同期割込に起因して生じた動作と同等の動作が再現さ
れる。すなわち、シミュレータ8が非同期割込を受け付
ける機能を備えていなくても、オリジナルプログラム実
行マシン1において非同期割込が発生したときと同等の
動作がシミュレータ8上で再現される。
As described above, when the above-mentioned benchmark program is given to the simulator 8, the operation equivalent to the operation caused by the asynchronous interrupt in the original program execution machine 1 is reproduced without generating the asynchronous interrupt. . That is, even if the simulator 8 does not have a function of accepting an asynchronous interrupt, the same operation as when an asynchronous interrupt occurs in the original program execution machine 1 is reproduced on the simulator 8.

【0070】なお、上記実施例では割込命令が使用され
ているが、この割込命令は、命令シーケンスを切り替え
る命令の一例である。即ち、図11において、命令C
は、命令シーケンスを切り替える命令に置き換えられれ
ばよい。この場合、この命令シーケンスを切り替える命
令と、処理ルーチン42がリンクされる。
Although the interrupt instruction is used in the above embodiment, this interrupt instruction is an example of the instruction sequence switching instruction. That is, in FIG. 11, command C
May be replaced with an instruction for switching the instruction sequence. In this case, the processing routine 42 is linked with the instruction for switching the instruction sequence.

【0071】図12は、解析ツール3の動作を説明する
フローチャートである。解析ツール3は、上述したよう
に、実行履歴情報2の各レコードを順番に解析すること
により、ベンチマークプログラム7の元となる基本デー
タ4および補正データ5を作成する。なお、基本データ
4および補正データ5は、初期メモリスペース30に書
き込まれる。
FIG. 12 is a flow chart for explaining the operation of the analysis tool 3. As described above, the analysis tool 3 sequentially analyzes each record of the execution history information 2 to create the basic data 4 and the correction data 5 that are the basis of the benchmark program 7. The basic data 4 and the correction data 5 are written in the initial memory space 30.

【0072】ステップS21は、実行履歴情報2の各レ
コードを先頭から1つずつ抽出する処理である。ステッ
プS22〜S27では、抽出されたレコードの属性が調
べられる。ここで、レコードの属性は、図4に示したレ
コードタイプにより識別される。
Step S21 is a process for extracting each record of the execution history information 2 one by one from the beginning. In steps S22 to S27, the attribute of the extracted record is checked. Here, the attribute of the record is identified by the record type shown in FIG.

【0073】実行履歴情報2から抽出したレコードが命
令レコードであった場合は、ステップS31へ進む。ス
テップS31では、当該レコードに割込命令が登録され
ているか否かが調べられる。そして、割込命令が登録さ
れていた場合は、ステップS32において、その割込命
令に関連する情報を管理リストに登録する。管理リスト
は、図13(a) に示すように、各割込命令に係わる情報
をその登場順に登録する。なお、新たな割込命令がこの
管理リストに登録される際、その割込命令に対してシリ
アル番号が付与される。また、このとき、その割込命令
に対応するアドレス情報が図13(b)に示す割込管理テ
ーブルに追加される。割込管理テーブルは、各割込命令
に付与されているシリアル番号と、割込命令に起因して
実行される処理を記述した処理ルーチンプログラムを格
納するアドレスとの対応関係を管理している。
If the record extracted from the execution history information 2 is the instruction record, the process proceeds to step S31. In step S31, it is checked whether or not an interrupt command is registered in the record. Then, if the interrupt command is registered, in step S32, the information related to the interrupt command is registered in the management list. As shown in FIG. 13A, the management list registers information related to each interrupt command in the order of appearance. When a new interrupt command is registered in this management list, a serial number is given to the interrupt command. At this time, the address information corresponding to the interrupt instruction is added to the interrupt management table shown in FIG. 13 (b). The interrupt management table manages the correspondence relationship between the serial number assigned to each interrupt instruction and the address that stores the processing routine program that describes the processing executed due to the interrupt instruction.

【0074】抽出されたレコードに割込命令が登録され
ていなかった場合は、ステップS33へ進む。ステップ
S33では、抽出されたレコードに「他の命令に置き換
え可能な命令(割込を発生させるポイントの候補)」が
登録されているか否かが調べられる。「他の命令に置き
換え可能な命令」は、先の実施例では、例えば、図9に
示した動的情報参照命令に相当する。そして、当該レコ
ードにそのような命令が登録されていた場合には、ステ
ップS34において、置換え前の命令と置換え後の命令
との対応関係を登録する。具体的には、置換え候補を記
録するための変数に対応する命令IDを登録する。
If no interrupt command is registered in the extracted record, the process proceeds to step S33. In step S33, it is checked whether or not "an instruction that can be replaced with another instruction (a candidate for a point that causes an interrupt)" is registered in the extracted record. The "instruction that can be replaced with another instruction" corresponds to, for example, the dynamic information reference instruction shown in FIG. 9 in the above embodiment. Then, when such an instruction is registered in the record, in step S34, the correspondence between the instruction before replacement and the instruction after replacement is registered. Specifically, the instruction ID corresponding to the variable for recording the replacement candidate is registered.

【0075】抽出されたレコードに「他の命令に置き換
え可能な命令」が登録されていなかった場合は、ステッ
プS35へ進む。ステップS35では、抽出されたレコ
ードに実行不可能命令が登録されているか否かが調べら
れる。実行不可能命令とは、シミュレータ8が実行でき
ない命令であって、先の実施例では、例えば、図8に示
したI/O命令に相当する。そして、当該レコードに実
行不可能命令が登録されていた場合は、ステップS36
において、エミュレート処理(エミュレート処理のため
の処理ルーチンプログラム)を作成する。
If no "command that can be replaced by another command" is registered in the extracted record, the process proceeds to step S35. In step S35, it is checked whether or not an unexecutable instruction is registered in the extracted record. The non-executable instruction is an instruction that cannot be executed by the simulator 8 and corresponds to, for example, the I / O instruction shown in FIG. 8 in the above embodiment. Then, if the non-executable instruction is registered in the record, step S36.
In, the emulation processing (processing routine program for the emulation processing) is created.

【0076】なお、図8に示したように、実行不可能命
令が割込命令に置き換えられる場合には、その割込命令
も図13(a) に示した管理リストに登録される。そし
て、その割込命令のシリアル番号と、その割込命令に起
因して実行される処理を記述した処理ルーチンプログラ
ムを格納するアドレスとの対応関係が図13(b)に示す
割込管理テーブルに設定される。
As shown in FIG. 8, when the non-executable instruction is replaced with the interrupt instruction, the interrupt instruction is also registered in the management list shown in FIG. 13 (a). Then, the correspondence relationship between the serial number of the interrupt instruction and the address storing the processing routine program in which the processing executed due to the interrupt instruction is stored is shown in the interrupt management table shown in FIG. 13 (b). Is set.

【0077】抽出されたレコードに一般的な命令が格納
されていた場合(ステップS31、33、35において
「No」と判断された場合)は、ステップS37におい
て、初期メモリスペース30を更新する。この処理は、
例えば、図6に示した手順に相当する。また、ステップ
S36においてエミュレート処理が作成された場合もス
テップS37が実行される。この処理は、例えば、図8
において、割込属性命令およびデータBを初期メモリス
ペース30に書き込む手順に相当する。
When a general command is stored in the extracted record (when it is determined as "No" in steps S31, 33, 35), the initial memory space 30 is updated in step S37. This process
For example, it corresponds to the procedure shown in FIG. Also, when the emulation processing is created in step S36, step S37 is executed. This process is performed, for example, in FIG.
In, it corresponds to the procedure of writing the interrupt attribute command and the data B in the initial memory space 30.

【0078】実行履歴情報2から抽出したレコードがレ
ジスタレコードであった場合は、ステップS41へ進
む。ステップS41では、抽出されたレジスタレコード
の内容に従ってレジスタ(図5に示したレジスタ群3
3)を更新する。
If the record extracted from the execution history information 2 is a register record, the process proceeds to step S41. In step S41, the register (register group 3 shown in FIG.
3) is updated.

【0079】実行履歴情報2から抽出したレコードが割
込レコードであった場合は、ステップS42へ進む。ス
テップS42では、必要に応じて割込命令を生成し、そ
れを図13(a) に示す管理リストに登録する。例えば、
図10〜図11に示した例では、命令Cが割込属性命令
に置き換えられているので、その割込属性命令が管理リ
ストに登録される。この場合、対応する情報が図13
(b)に示す割込管理テーブルに設定される。
If the record extracted from the execution history information 2 is an interrupt record, the process proceeds to step S42. In step S42, an interrupt command is generated as necessary and registered in the management list shown in FIG. 13 (a). For example,
In the example shown in FIGS. 10 to 11, since the instruction C is replaced with the interrupt attribute instruction, the interrupt attribute instruction is registered in the management list. In this case, the corresponding information is shown in FIG.
It is set in the interrupt management table shown in (b).

【0080】実行履歴情報2から抽出したレコードがメ
モリデータレコードであった場合には、ステップS37
において、対応するデータを初期メモリスペース30に
書き込む。
If the record extracted from the execution history information 2 is a memory data record, step S37.
At, the corresponding data is written into the initial memory space 30.

【0081】実行履歴情報2から抽出したレコードがテ
ーブル参照レコードであった場合には、ステップS37
において、更新後のテーブルの内容をメモリスペース3
0に書き込む。なお、ここでは、論理アドレスを実アド
レスに変換するアドレス変換テーブルを想定する。ま
た、アドレス変換テーブルについては、後で別途説明を
する。
If the record extracted from the execution history information 2 is the table reference record, step S37.
In the memory space 3
Write to 0. Here, an address conversion table for converting a logical address into a real address is assumed. The address conversion table will be described later separately.

【0082】実行履歴情報2から抽出したレコードがキ
ー情報レコードであった場合は、ステップS43におい
て、対応するキー情報を登録する。なお、キー情報は、
補正用メモリスペース32に書き込まれる。
When the record extracted from the execution history information 2 is the key information record, the corresponding key information is registered in step S43. The key information is
It is written in the correction memory space 32.

【0083】実行履歴情報2を構成する全てのレコード
について上記ステップS21〜S43の処理が実行され
ると、ステップS51において、各割込命令から対応す
る処理ルーチンを呼び出すために必要は情報が設定され
る。このとき、図13(b) に示した割込管理テーブルが
参照され、置換え処理により生成された割込命令につい
ては、補正用メモリスペース32から対応する処理ルー
チンを呼び出すための情報(命令を含む)が設定され
る。
When the processes of steps S21 to S43 are executed for all the records constituting the execution history information 2, the information necessary for calling the corresponding processing routine from each interrupt instruction is set in step S51. It At this time, the interrupt management table shown in FIG. 13B is referred to, and for the interrupt instruction generated by the replacement processing, information (including the instruction) for calling the corresponding processing routine from the correction memory space 32 is included. ) Is set.

【0084】このように、本実施形態のベンチマークプ
ログラムは、基本メモリスペース31および補正用メモ
リスペース32から構成される初期メモリスペース30
に格納されている。そして、オリジナルプログラム実行
マシン1により実行された命令は、基本メモリスペース
31に書き込まれる。このとき、各命令は、オリジナル
プログラム実行マシン1のメモリ12に格納されていた
ときと同じアドレスに書き込まれる。また、オリジナル
プログラム実行マシン1においてメモリ更新またはメモ
リ参照が発生した場合は、対応するメモリデータが基本
メモリスペース31に書き込まれる。このとき、メモリ
データは、オリジナルプログラム実行マシン1のメモリ
12に格納されていたときと同じアドレスに書き込まれ
る。
As described above, the benchmark program of this embodiment has the initial memory space 30 including the basic memory space 31 and the correction memory space 32.
It is stored in. Then, the instructions executed by the original program execution machine 1 are written in the basic memory space 31. At this time, each instruction is written at the same address as when it was stored in the memory 12 of the original program execution machine 1. When a memory update or memory reference occurs in the original program execution machine 1, corresponding memory data is written in the basic memory space 31. At this time, the memory data is written at the same address as when it was stored in the memory 12 of the original program execution machine 1.

【0085】シミュレータ8において実施できない動作
については、補正用メモリスペース32を利用して同等
の動作が提供される。例えば、オリジナルプログラム実
行マシン1においてI/O命令が実行された場合は、そ
のI/O命令の代わりに割込命令が基本メモリスペース
31に書き込まれると共に、上記I/O命令に起因する
動作を実現するための情報(補正データ)が補正用メモ
リスペース32に書き込まれる。そして、上記割込命令
から補正用メモリスペース32に格納された補正データ
が呼び出されるように必要な情報が設定される。また、
オリジナルプログラム実行マシン1において非同期割込
が発生した場合は、その割込が発生したタイミングの近
傍で実行されるべき所定の命令が割込命令に置き換えら
れる。そして、同様の方法で補正用メモリスペース32
に格納された補正データが呼び出されるように必要な情
報が設定される。
For operations that cannot be performed in the simulator 8, equivalent operations are provided by using the correction memory space 32. For example, when an I / O instruction is executed in the original program execution machine 1, an interrupt instruction is written in the basic memory space 31 instead of the I / O instruction, and the operation resulting from the I / O instruction is executed. Information (correction data) for realizing is written in the correction memory space 32. Then, necessary information is set so that the correction data stored in the correction memory space 32 is called from the interrupt instruction. Also,
When an asynchronous interrupt occurs in the original program execution machine 1, a predetermined instruction to be executed near the timing when the interrupt occurs is replaced with the interrupt instruction. Then, in the same manner, the correction memory space 32
Necessary information is set so that the correction data stored in is called.

【0086】したがって、シミュレータ8に上記ベンチ
マークプログラムが与えられると、オリジナルプログラ
ム実行マシン1においてアプリケーションプログラムが
実行されたときと同じ命令シーケンスが実行されてゆ
く。このとき、オリジナルプログラム実行マシン1にお
いて実行された処理のうち、シミュレータ8が実行でき
ない処理については、そのシミュレータ8が実行できる
形式に書き換えられている。したがって、シミュレータ
8は、オリジナルプログラム実行マシン1と同等に機能
を備えていなくても、オリジナルプログラム実行マシン
1において実現された動作を忠実に再現できる。この結
果、シミュレータ8を用いて信頼性の高い評価を行うこ
とができる。
Therefore, when the simulator 8 is given the benchmark program, the same instruction sequence as when the application program is executed in the original program execution machine 1 is executed. At this time, of the processes executed by the original program execution machine 1, the processes that cannot be executed by the simulator 8 are rewritten in a format that can be executed by the simulator 8. Therefore, even if the simulator 8 does not have the same function as the original program execution machine 1, the simulator 8 can faithfully reproduce the operation realized in the original program execution machine 1. As a result, highly reliable evaluation can be performed using the simulator 8.

【0087】次に、アドレス変換テーブルについて説明
する。アドレス変換テーブルは、CPUが認識している
論理アドレスを実アドレスに変換する際に参照されるテ
ーブルであり、オリジナルプログラム実行マシン1にお
いてはメモリ12内の所定の領域に格納されている。た
だし、論理アドレスと実アドレスとの対応関係は、通
常、命令シーケンスが実行されていく際に、時々刻々と
変化していく。したがって、ベンチマークプログラムに
おいても、論理アドレスと実アドレスとの対応関係の変
化が記述されている必要がある。
Next, the address conversion table will be described. The address conversion table is a table referred to when converting a logical address recognized by the CPU into a real address, and is stored in a predetermined area in the memory 12 in the original program execution machine 1. However, the correspondence relationship between the logical address and the real address usually changes moment by moment as the instruction sequence is executed. Therefore, the benchmark program also needs to describe the change in the correspondence between the logical address and the real address.

【0088】このため、オリジナルプログラム実行マシ
ン1においてアプリケーションプログラムが実行されて
いる期間、トレーサ15は、アドレス変換テーブルが参
照されるごとに1セットの変換前アドレスおよび変換後
アドレスを含むテーブル参照レコードを順次作成してい
く。そして、解析ツール3は、作成されたテーブル参照
レコードに基づいて、オリジナルプログラム実行マシン
1において実際に参照されたアドレス変換テーブルを初
期メモリスペース30上に生成する。ここで、オリジナ
ルプログラム実行マシン1に設けられているアドレス変
換テーブルにおいて、命令の実行に際して実際に参照さ
れるのは、その一部のみである。すなわち、初期メモリ
スペース30に再現されるアドレス変換テーブルは、そ
の一部のみに有効な情報が格納されることになる。した
がって、初期メモリスペース30に再現されるアドレス
変換テーブルは、圧縮することができる。以下、図14
を参照しながらアドレス変換テーブルの圧縮について説
明する。
Therefore, while the application program is being executed in the original program execution machine 1, the tracer 15 creates a table reference record containing one set of pre-translation address and post-translation address every time the address translation table is referenced. Create one by one. Then, the analysis tool 3 generates the address conversion table actually referenced in the original program execution machine 1 on the initial memory space 30 based on the created table reference record. Here, in the address conversion table provided in the original program execution machine 1, only a part of the address conversion table is actually referred to when the instruction is executed. That is, the effective information is stored only in part of the address conversion table reproduced in the initial memory space 30. Therefore, the address conversion table reproduced in the initial memory space 30 can be compressed. Below, FIG.
The compression of the address conversion table will be described with reference to FIG.

【0089】ここでは、図14(a) および図14(b) に
示すように、テーブルAが論理アドレス空間の所定の領
域を実アドレス空間の1000〜2000番地に変換
し、テーブルBが論理アドレス空間の他の所定の領域を
実アドレス空間の3000〜4000番地に変換するも
のとする。また、テーブルAおよびテーブルBは、図1
4(b)に示すように、それぞれ斜線で示すエリアのみが
オリジナルプログラム実行マシン1において実際に参照
されたものとする。この場合、テーブルAおよびテーブ
ルBが初期メモリスペース30に再現されたとき、斜線
で示すエリアのみに有効な変換情報が格納されることに
なる。さらに、図14(b)に示すように、テーブルAお
よびテーブルBが管理する実アドレス空間が同一であっ
たと仮定したときに、それら2つのテーブルにおいて有
効な変換情報が格納されている実アドレスが重複してい
ないものとする。
Here, as shown in FIGS. 14A and 14B, table A converts a predetermined area of the logical address space into addresses 1000 to 2000 of the real address space, and table B converts the logical address. It is assumed that another predetermined area of the space is converted to addresses 3000 to 4000 of the real address space. Tables A and B are shown in FIG.
As shown in 4 (b), it is assumed that only the hatched areas are actually referenced in the original program execution machine 1. In this case, when the table A and the table B are reproduced in the initial memory space 30, the effective conversion information is stored only in the hatched area. Further, as shown in FIG. 14 (b), assuming that the real address spaces managed by the table A and the table B are the same, the real addresses storing valid translation information in these two tables are It does not overlap.

【0090】この場合、図14(b) に示すように、初期
メモリスペース30において、テーブルAおよびテーブ
ルBを互いにマージ(統合)することができる。そし
て、この結果、上記2つのテーブルにより管理されてい
た実アドレス空間も互いにマージすることができる。例
えば、テーブルAおよびテーブルBがマージされる前に
1000〜2000番地および3000〜4000番地
に格納されていたデータは、図15(c)に示すように、
1000〜2000番地のみに格納される。これによ
り、初期メモリスペース30を小さくできる。
In this case, as shown in FIG. 14B, in the initial memory space 30, the table A and the table B can be merged (integrated) with each other. As a result, the real address spaces managed by the above two tables can also be merged with each other. For example, the data stored in the addresses 1000 to 2000 and 3000 to 4000 before the table A and the table B are merged, as shown in FIG.
It is stored only at addresses 1000 to 2000. As a result, the initial memory space 30 can be reduced.

【0091】図15は、ベンチマークプログラム7を作
成および検証するシステムの構成図である。ここで、オ
リジナルプログラム実行マシン1、実行履歴情報2、解
析ツール3、基本データ4、補正データ5、ベンチマー
クプログラム7は、それぞれ図1おいて同一の符号が付
されているユニットに相当する。
FIG. 15 is a block diagram of a system for creating and verifying the benchmark program 7. Here, the original program execution machine 1, the execution history information 2, the analysis tool 3, the basic data 4, the correction data 5, and the benchmark program 7 correspond to the units denoted by the same reference numerals in FIG.

【0092】図15において、モニタソース51には、
補正データ5を加工するためのプログラム等が格納され
ている。これらのプログラムは、例えば、高水準言語で
記述されている。モニタソース51の中に格納されてい
るプログラムの1つを図16に示す。
In FIG. 15, the monitor source 51 is
A program or the like for processing the correction data 5 is stored. These programs are written in a high level language, for example. FIG. 16 shows one of the programs stored in the monitor source 51.

【0093】図16は、シミュレータ8においてベンチ
マークプログラムが実行されるときに、各割込命令に対
応する処理を決定する手順を示すフローチャートであ
る。ステップS61では、まず、割込み前処理が実行さ
れる。この処理では、例えば、レジスタのバックアップ
等が行われる。続いて、ステップS62では、発生した
割込みについて補正が必要か否かを調べる。そして、補
正が必要であれば、ステップS63において、制御変数
を検索キーとして図13(b) に示す割込管理テーブルを
サーチする。そして、その制御変数と一致するシリアル
番号を持ったエントリから対応するアドレスを抽出し、
そのアドレスに格納されている処理ルーチンプログラム
を実行する。ステップS64では、制御変数に「1」が
加えられる。ステップS65では、割込み後処理が実行
される。これにより、処理が、割込み元あるいは制御を
渡す命令に戻る。
FIG. 16 is a flow chart showing the procedure for determining the processing corresponding to each interrupt instruction when the benchmark program is executed in the simulator 8. In step S61, first, pre-interruption processing is executed. In this process, for example, a register backup or the like is performed. Succeedingly, in a step S62, it is checked whether or not the generated interrupt needs correction. Then, if the correction is necessary, in step S63, the control variable is used as a search key to search the interrupt management table shown in FIG. Then, extract the corresponding address from the entry with the serial number that matches the control variable,
The processing routine program stored at that address is executed. In step S64, "1" is added to the control variable. In step S65, post-interrupt processing is executed. As a result, the process returns to the interrupt source or the instruction to pass the control.

【0094】オブジェクト生成部52は、補正データ5
およびモニタソース51をコンパイルするコンパイラ、
およびリンカから構成される。なお、オブジェクト生成
部52の出力は、初期メモリスペース30の補正用メモ
リスペース32に格納すべきデータ列である。アドレス
解決部53は、基本メモリスペース31に格納されてい
るデータと、補正用メモリスペース32に格納すべきデ
ータとの連続性が確保されるようにアドレスを解決す
る。そして、解析ツール3により生成された基本データ
4およびアドレス解決部53によりアドレス解決された
データとを統合することにより、ベンチマークプログラ
ム7が得られる。
The object generator 52 uses the correction data 5
And a compiler for compiling the monitor source 51,
And a linker. The output of the object generation unit 52 is a data string to be stored in the correction memory space 32 of the initial memory space 30. The address resolution unit 53 resolves addresses so as to ensure continuity between the data stored in the basic memory space 31 and the data to be stored in the correction memory space 32. Then, the benchmark program 7 is obtained by integrating the basic data 4 generated by the analysis tool 3 and the data whose address is resolved by the address resolution unit 53.

【0095】なお、モニタソース51、オブジェクト生
成部52、およびアドレス解決部53は、図1に示した
補正ツール6に対応する。作成されたベンチマークプロ
グラム7は、アーキテクチャシミュレータ61により検
証される。このとき、動的解析ツール62は、実行履歴
情報2およびアーキテクチャシミュレータ61によるシ
ミュレーション結果に基づいて、トレーサ15または解
析ツール3の不具合等をチェックする。そして、そのチ
ェック結果は、必要に応じてトレーサ15および解析ツ
ール3にフィードバックされる。
The monitor source 51, the object generating section 52, and the address solving section 53 correspond to the correction tool 6 shown in FIG. The created benchmark program 7 is verified by the architecture simulator 61. At this time, the dynamic analysis tool 62 checks the tracer 15 or the analysis tool 3 for defects based on the execution history information 2 and the simulation result by the architecture simulator 61. Then, the check result is fed back to the tracer 15 and the analysis tool 3 as needed.

【0096】ところで、上述の実施例は、実行履歴情報
2が、オリジナルプログラム実行マシン1の動作に係わ
るすべての情報を含んでいることを前提としている。す
なわち、上述の実施例では、トレーサ15が、アプリケ
ーションプログラムの実行と並列に且つ継続的に動作し
ている。
By the way, the above-described embodiment is premised on that the execution history information 2 includes all information relating to the operation of the original program execution machine 1. That is, in the above-mentioned embodiment, the tracer 15 operates continuously in parallel with the execution of the application program.

【0097】しかし、アプリケーションによってはトレ
ーサ15の負荷が重くなることがある。この場合、トレ
ーサ15を継続的に動作させると、アプリケーションプ
ログラムの実行に悪影響を及ぼすおそれがある。このた
め、オリジナルプログラム実行マシン1は、トレーサ1
5を断続的に動作させることができる。
However, the load of the tracer 15 may be heavy depending on the application. In this case, if the tracer 15 is continuously operated, the execution of the application program may be adversely affected. Therefore, the original program execution machine 1 is
5 can be operated intermittently.

【0098】図17は、トレーサ15を断続的に動作さ
せた場合の処理を説明するための図である。ここでは、
トレーサ15が動作している期間と停止している期間と
から構成されるサイクルが繰り返されるものとする。
FIG. 17 is a diagram for explaining the processing when the tracer 15 is intermittently operated. here,
It is assumed that the cycle composed of the period in which the tracer 15 is operating and the period in which it is stopped is repeated.

【0099】トレーサ15は、動作期間中は実行履歴情
報を出力するが、停止時にはそれを出力しない。このた
め、オリジナルプログラム実行マシン1の動作を忠実に
再現するためのベンチマークプログラムを作成するため
には、解析ツール3は、トレーサ15が停止している期
間のオリジナルプログラム実行マシン1の動作を推定す
る必要がある。例えば、図17のサイクルnにおいて
は、時刻Ta 〜Tb の実行履歴情報は出力されるが、時
刻Tb 〜Tc の実行履歴情報は出力されない。この場
合、解析ツール3は、時刻Tb 〜Tc におけるオリジナ
ルプログラム実行マシン1の実行履歴を推定する必要が
ある。
The tracer 15 outputs the execution history information during the operation period, but does not output it when stopped. Therefore, in order to create a benchmark program for faithfully reproducing the operation of the original program execution machine 1, the analysis tool 3 estimates the operation of the original program execution machine 1 while the tracer 15 is stopped. There is a need. For example, in cycle n of FIG. 17, the execution history information of times Ta to Tb is output, but the execution history information of times Tb to Tc is not output. In this case, the analysis tool 3 needs to estimate the execution history of the original program execution machine 1 between times Tb and Tc.

【0100】解析ツール3は、以下のようにして、時刻
Tb 〜Tc におけるオリジナルプログラム実行マシン1
の動作を推定する。ただし、オリジナルプログラム実行
マシン1の動作を完全に求めることは困難なので、ここ
では、時刻Tb〜Tc におけるメモリ12の更新内容を
推定するものとする。時刻Tb 〜Tc におけるメモリ1
2の更新内容は、時刻Tb における動的メモリスペース
の内容と、時刻Tc以降の実行履歴情報に基づいて作成
されたメモリスペースの内容との差分により表される。
なお、動的メモリスペースは、メモリデータレコードの
内容を出願順にすべて反映させたメモリ空間であり、基
本的に、初期メモリスペース30と異なる空間に作成さ
れる。また、時刻Tc以降の実行履歴情報に基づいて作
成されるメモリスペースも、基本的に、初期メモリスペ
ース30と異なる空間に作成される。
The analysis tool 3 executes the original program execution machine 1 at times Tb to Tc as follows.
Estimate the behavior of. However, since it is difficult to completely obtain the operation of the original program execution machine 1, it is assumed here that the update contents of the memory 12 at times Tb to Tc are estimated. Memory 1 from time Tb to Tc
The update content of 2 is represented by the difference between the content of the dynamic memory space at time Tb and the content of the memory space created based on the execution history information after time Tc.
The dynamic memory space is a memory space in which the contents of the memory data record are all reflected in the order of application, and is basically created in a space different from the initial memory space 30. Further, the memory space created based on the execution history information after the time Tc is basically created in a space different from the initial memory space 30.

【0101】解析ツール3は、時刻Ta 〜Tb の実行履
歴情報に基づいて初期メモリスペース30に対応するデ
ータを書き込んだ後、時刻Tb〜Tc におけるメモリ1
2の更新内容を初期メモリスペース30に書き込む。以
降、解析ツール3は、後続のサイクルについても同様の
処理を繰り返す。これにより、トレーサ15が断続的に
動作する場合であっても、オリジナルプログラム実行マ
シン1の動作を忠実に再現するためのベンチマークプロ
グラムが作成される。
The analysis tool 3 writes the data corresponding to the initial memory space 30 based on the execution history information of the times Ta to Tb, and then the memory 1 at the times Tb to Tc.
The updated contents of No. 2 are written in the initial memory space 30. After that, the analysis tool 3 repeats the same processing for the subsequent cycles. Thus, even if the tracer 15 operates intermittently, a benchmark program for faithfully reproducing the operation of the original program execution machine 1 is created.

【0102】このように、本実施形態のベンチマークプ
ログラム7は、オリジナルプログラム実行マシン1にお
いてオリジナルプログラムが実行されたときの命令シー
ケンスを再現するロードモジュールである。このとき、
このベンチマークプログラム7は、上記オリジナルプロ
グラムの一部のみが実行されたときの命令シーケンスを
表すロードモジュールであってもよい。
As described above, the benchmark program 7 of this embodiment is a load module for reproducing the instruction sequence when the original program is executed in the original program execution machine 1. At this time,
The benchmark program 7 may be a load module that represents an instruction sequence when only a part of the original program is executed.

【0103】なお、ベンチマークプログラム(ロードモ
ジュール)7を作成する機能は、コンピュータを用いて
上述のシーケンスを記述したプログラムを実行すること
により実現される。そのプログラムを実行するコンピュ
ータ100の構成を図18に示す。
The function of creating the benchmark program (load module) 7 is realized by executing the program in which the above sequence is described using a computer. FIG. 18 shows the configuration of the computer 100 that executes the program.

【0104】CPU101は、上述のシーケンスに示し
た処理を記述したプログラムを記憶装置102からメモ
リ103にロードして実行する。記憶装置102は、大
容量記憶デバイスであり、上記プログラムを格納する。
一方、メモリ103は、例えば半導体メモリであり、C
PU101の作業領域として使用される。なお、初期メ
モリスペース30は、メモリ103を利用して実現する
ことができる。
The CPU 101 loads the program describing the processing shown in the above sequence from the storage device 102 into the memory 103 and executes it. The storage device 102 is a mass storage device, and stores the above program.
On the other hand, the memory 103 is, for example, a semiconductor memory, and has a C
It is used as a work area of the PU 101. The initial memory space 30 can be realized by using the memory 103.

【0105】記録媒体ドライバ104は、CPU101
の指示に従って可搬性記録媒体105にアクセスする。
可搬性記録媒体105は、例えば、半導体デバイス(P
Cカード等)、磁気的作用により情報が入出力される媒
体(フロッピー(登録商標)ディスク、磁気テープな
ど)、光学的作用により情報が入出力される媒体(光デ
ィスクなど)を含む。通信制御装置106は、CPU1
01の指示に従って網との間でデータを送受信する。
The recording medium driver 104 is the CPU 101.
The portable recording medium 105 is accessed in accordance with the instruction.
The portable recording medium 105 is, for example, a semiconductor device (P
C card), a medium for inputting / outputting information by magnetic action (a floppy (registered trademark) disk, a magnetic tape, etc.), and a medium for inputting / outputting information by optical action (optical disc, etc.). The communication control device 106 includes the CPU 1
Data is transmitted / received to / from the network according to the instruction 01.

【0106】ここで、ベンチマークプログラム7は、オ
リジナルプログラム実行マシン1から実行履歴情報2を
抽出するトレーサ15、および実行履歴情報2を解析す
る解析ツール3(ここでは、補正ツール6と含むものと
する)により作成される。そして、トレーサ15は、オ
リジナルプログラム実行マシン1において図3のフロー
チャートを実行することにより実現される。一方、解析
ツール3は、図18に示すコンピュータ100において
図12のフローチャート(図6〜図11に示したシーケ
ンスを含む)を実行することにより実現される。ただ
し、解析ツール3は、必ずしもオリジナルプログラム実
行マシン1と異なるコンピュータにより実現される必要
はなく、オリジナルプログラム実行マシン1により実現
されてもよい。
Here, the benchmark program 7 uses the tracer 15 for extracting the execution history information 2 from the original program execution machine 1 and the analysis tool 3 for analyzing the execution history information 2 (here, it is assumed to include the correction tool 6). Created. Then, the tracer 15 is realized by executing the flowchart of FIG. 3 in the original program execution machine 1. On the other hand, the analysis tool 3 is realized by executing the flowchart of FIG. 12 (including the sequence shown in FIGS. 6 to 11) in the computer 100 shown in FIG. However, the analysis tool 3 does not necessarily have to be implemented by a computer different from the original program execution machine 1 and may be implemented by the original program execution machine 1.

【0107】図19は、ベンチマークプログラムを作成
するためのプログラムの提供方法を説明する図である。
ベンチマークプログラムを作成するためのプログラム
は、例えば、以下の3つの方法の中の任意の方法により
提供される。
FIG. 19 is a diagram for explaining a method of providing a program for creating a benchmark program.
The program for creating the benchmark program is provided by, for example, any one of the following three methods.

【0108】(a) コンピュータにインストールされて提
供される。この場合、プログラム等は、例えば、出荷前
にプレインストールされる。 (b) 可搬性記録媒体に格納されて提供される。この場
合、可搬性記録媒体105に格納されているプログラム
等は、基本的に、記録媒体ドライバ104を介して記憶
装置102にインストールされる。
(A) It is provided by being installed in a computer. In this case, the program and the like are pre-installed before shipping, for example. (b) Provided by being stored in a portable recording medium. In this case, the programs and the like stored in the portable recording medium 105 are basically installed in the storage device 102 via the recording medium driver 104.

【0109】(c) 網上のサーバから提供される。この場
合、基本的には、コンピュータ100がサーバに格納さ
れているプログラム等をダウンロードすることによって
そのプログラム等を取得する。
(C) It is provided from a server on the network. In this case, basically, the computer 100 acquires a program or the like by downloading the program or the like stored in the server.

【0110】なお、作成されたベンチマークプログラム
は、CD−ROM等の可搬性記録媒体に格納してユーザ
に提供してもよいし、ネットワークを介してユーザ端末
へ送るようにしてもよい。
The created benchmark program may be stored in a portable recording medium such as a CD-ROM and provided to the user, or may be sent to the user terminal via the network.

【0111】(付記1)情報処理装置を評価するための
テストプログラムを作成する方法であって、プロセッサ
およびメモリを備えるコンピュータを用いてオリジナル
プログラムが実行されているときに、上記プロセッサに
より実行される命令および上記メモリへのアクセス内容
を検出し、検出された情報を実行履歴情報として時系列
に格納し、上記実行履歴情報に基づいて上記コンピュー
タにより実行された命令実行シーケンスを再現するロー
ドモジュール形式のプログラムを作成することを特徴と
するテストプログラム作成方法。
(Supplementary Note 1) A method for creating a test program for evaluating an information processing apparatus, which is executed by the processor when the original program is executed by using a computer having a processor and a memory. A load module format that detects instructions and access contents to the memory, stores the detected information as execution history information in time series, and reproduces the instruction execution sequence executed by the computer based on the execution history information. A test program creation method characterized by creating a program.

【0112】(付記2)情報処理装置を評価するための
テストプログラムを作成する方法であって、プロセッサ
およびメモリを備えるコンピュータを用いてオリジナル
プログラムが実行されているときに、上記プロセッサに
より実行された命令に対応する命令コード、その命令に
係わる命令情報、上記メモリに書き込まれる又はそのメ
モリから読み出されるバイナリデータ、および上記メモ
リへのアクセス内容を表すアクセス情報を検出し、検出
された情報を実行履歴情報として時系列に格納し、上記
実行履歴情報を時系列に解析し、予め用意されているメ
モリスペースに、上記命令情報に基づいて上記命令コー
ドを書き込むと共に上記アクセス情報に基づいて上記バ
イナリデータを書き込むことにより、ロードモジュール
形式のプログラムを作成することを特徴とするテストプ
ログラム作成方法。
(Supplementary Note 2) A method of creating a test program for evaluating an information processing apparatus, which is executed by the processor while the original program is executed using a computer having a processor and a memory. An instruction code corresponding to an instruction, instruction information related to the instruction, binary data written to or read from the memory, and access information indicating access contents to the memory are detected, and the detected information is an execution history. Information is stored in time series, the execution history information is analyzed in time series, the instruction code is written in a pre-prepared memory space based on the instruction information, and the binary data is written based on the access information. By writing, load module format program Test program creation method according to claim that you create.

【0113】(付記3)付記2に記載のテストプログラ
ム作成方法であって、上記メモリスペースは、上記コン
ピュータが備えるメモリと実質的に同じアドレス空間を
有する。
(Supplementary Note 3) In the test program creating method according to Supplementary Note 2, the memory space has substantially the same address space as the memory provided in the computer.

【0114】(付記4)付記2に記載のテストプログラ
ム作成方法であって、当該テストプログラムが与えられ
る装置が実行できない命令である第1の命令が上記コン
ピュータにより実行された場合は、上記第1の命令に起
因する上記コンピュータの動作を代替する処理ルーチン
プログラムを作成して上記メモリスペースに書き込み、
上記第1の命令の代わりに上記処理ルーチンプログラム
を呼び出す命令を上記メモリスペースに書き込む。
(Supplementary Note 4) In the test program creating method according to Supplementary Note 2, in the case where the computer executes the first instruction which is an instruction that cannot be executed by the apparatus to which the test program is given, the first instruction Create a processing routine program that substitutes the operation of the computer caused by the instruction of, and write in the memory space,
An instruction for calling the processing routine program is written in the memory space instead of the first instruction.

【0115】(付記5)付記4に記載のテストプログラ
ム作成方法であって、上記第1の命令は、I/O命令で
ある。 (付記6)付記2に記載のテストプログラム作成方法で
あって、上記コンピュータにより実行されたときと当該
テストプログラムが与えられる装置により実行されたと
きとで異なる動作を引き起こす可能性のある命令である
第2の命令が上記コンピュータにより実行された場合
に、上記コンピュータにおいて上記第2の命令が実行さ
れたときに上記プロセッサが参照した条件を上記メモリ
スペースに書き込み、上記第2の命令の代わりに上記条
件を呼び出す命令を上記メモリスペースに書き込む。
(Supplementary Note 5) In the test program creating method according to Supplementary Note 4, the first instruction is an I / O instruction. (Supplementary note 6) The test program creation method according to supplementary note 2, which is an instruction that may cause different operations when executed by the computer and when executed by a device to which the test program is given. When the second instruction is executed by the computer, the condition referred to by the processor when the second instruction is executed by the computer is written in the memory space, and the condition is replaced by the second instruction instead of the second instruction. Write the instruction to call the condition into the memory space.

【0116】(付記7)付記2に記載のテストプログラ
ム作成方法であって、当該テストプログラムが与えられ
る装置が実施できない動作である第1の動作が上記コン
ピュータにより実施された場合に、上記コンピュータに
おいて上記第1の動作が実施されたタイミングの近傍で
実行された命令である第3の命令を命令シーケンスを切
り替える命令に置き換えて上記メモリスペースに書き込
み、上記第1の動作を代替する処理ルーチンプログラム
を作成して上記メモリスペースに書き込み、上記命令シ
ーケンスを置き換える命令と上記処理ルーチンプログラ
ムとをリンクする。
(Supplementary Note 7) In the test program creating method according to Supplementary Note 2, in the case where the first operation, which is an operation that cannot be performed by the device to which the test program is given, is executed by the computer, A processing routine program that replaces the third operation, which is an instruction executed near the timing when the first operation is executed, with an instruction that switches the instruction sequence, writes the instruction in the memory space, and replaces the first operation An instruction that replaces the instruction sequence created and written in the memory space is linked with the processing routine program.

【0117】(付記8)付記7に記載のテストプログラ
ム作成方法であって、上記第1の動作は、非同期割込で
ある。 (付記9)付記7に記載のテストプログラム作成方法で
あって、上記処理ルーチンプログラムは、上記第3の命
令のエミュレーションを含む。
(Supplementary Note 8) In the test program creating method according to Supplementary Note 7, the first operation is an asynchronous interrupt. (Supplementary Note 9) In the test program creating method according to Supplementary Note 7, the processing routine program includes emulation of the third instruction.

【0118】(付記10)付記2に記載のテストプログ
ラム作成方法であって、上記コンピュータにおいて複数
のアドレス変換テーブルを用いて論理アドレスが実アド
レスに変換されている場合に、上記複数のアドレス変換
テーブルが参照されたときにその参照内容を表す参照情
報を時系列に格納し、格納された参照情報に基づいて、
上記複数のアドレス変換テーブルに対応する複数のテー
ブルを作成し、それらのテーブルをマージした結果を上
記メモリスペースに書き込む。
(Supplementary note 10) The test program creating method according to supplementary note 2, wherein the plurality of address conversion tables are used when a logical address is converted into a real address by using a plurality of address conversion tables in the computer. When the is referenced, the reference information indicating the reference content is stored in time series, and based on the stored reference information,
A plurality of tables corresponding to the plurality of address conversion tables are created, and the result of merging the tables is written in the memory space.

【0119】(付記11)付記2に記載のプログラム作
成方法であって、上記命令コード、命令情報、バイナリ
データ、アクセス情報が検出されない期間における上記
メモリの更新内容を推定し、推定された更新内容を上記
メモリスペースに書き込む。
(Supplementary note 11) The method for creating a program according to supplementary note 2, wherein the update content of the memory is estimated in a period in which the instruction code, instruction information, binary data, and access information are not detected, and the estimated update content is estimated. To the above memory space.

【0120】(付記12)情報処理装置を評価するため
のテストプログラムを作成するシステムであって、プロ
セッサおよびメモリを備えるコンピュータを用いてオリ
ジナルプログラムが実行されているときに、上記プロセ
ッサにより実行される命令および上記メモリへのアクセ
ス内容を検出する検出手段と、検出された情報を実行履
歴情報として時系列に格納する格納手段と、上記実行履
歴情報に基づいて上記コンピュータにより実行された命
令実行シーケンスを再現するロードモジュール形式のプ
ログラムを作成する作成手段とを有することを特徴とす
るテストプログラム作成システム。
(Supplementary Note 12) A system for creating a test program for evaluating an information processing apparatus, which is executed by the processor when the original program is executed by using a computer having a processor and a memory. A detection unit that detects an instruction and access contents to the memory; a storage unit that stores the detected information as execution history information in time series; and an instruction execution sequence executed by the computer based on the execution history information. A test program creating system comprising: a creating unit that creates a load module format program to be reproduced.

【0121】(付記13)情報処理装置を評価するため
のテストプログラムを作成するシステムであって、プロ
セッサおよびメモリを備えるコンピュータを用いてオリ
ジナルプログラムが実行されているときに、上記プロセ
ッサにより実行された命令に対応する命令コード、その
命令に係わる命令情報、上記メモリに書き込まれる又は
そのメモリから読み出されるバイナリデータ、および上
記メモリへのアクセス内容を表すアクセス情報を検出す
る検出手段と、検出された情報を実行履歴情報として時
系列に格納する格納手段と、上記実行履歴情報を時系列
に解析し、予め用意されているメモリスペースに、上記
命令情報に基づいて上記命令コードを書き込むと共に上
記アクセス情報に基づいて上記バイナリデータを書き込
むことにより、ロードモジュール形式のプログラムを作
成する作成手段とを有することを特徴とするテストプロ
グラム作成システム。
(Supplementary Note 13) A system for creating a test program for evaluating an information processing apparatus, which is executed by the processor while the original program is executed by using a computer having a processor and a memory. Detecting means for detecting an instruction code corresponding to the instruction, instruction information related to the instruction, binary data written to or read from the memory, and access information indicating access contents to the memory, and the detected information. And a storage means for storing the execution history information in time series, analyzing the execution history information in time series, and writing the instruction code based on the instruction information in a pre-prepared memory space to the access information. By writing the above binary data based on Test program generation system characterized by comprising a generating means for generating de modular program.

【0122】(付記14)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、プロセッサおよびメモリを備える他のコンピュータ
を用いてオリジナルプログラムが実行されているときに
検出された上記プロセッサにより実行される命令および
上記メモリへのアクセス内容に基づいて、上記他のコン
ピュータにより実行された命令実行シーケンスを再現す
るロードモジュール形式のプログラムを作成する作成手
段、として機能させるためのテストプログラム作成プロ
グラム。
(Supplementary Note 14) In order to create a test program for evaluating the information processing apparatus, the computer detected by the other program having a processor and a memory is used. Test program creation for functioning as a creation module for creating a load module format program that reproduces an instruction execution sequence executed by the other computer based on an instruction executed by a processor and access contents to the memory program.

【0123】(付記15)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、プロセッサおよびメモリを備えるコンピュータを用
いてオリジナルプログラムが実行されているときに検出
された上記プロセッサにより実行された命令に対応する
命令コード、その命令に係わる命令情報、上記メモリに
書き込まれる又はそのメモリから読み出されるバイナリ
データ、および上記メモリへのアクセス内容を表すアク
セス情報を解析する解析手段と、上記解析手段による解
析結果に基づいて、予め用意されているメモリスペース
に上記命令情報に基づいて上記命令コードを書き込むと
共に上記アクセス情報に基づいて上記バイナリデータを
書き込むことにより、ロードモジュール形式のプログラ
ムを作成する作成手段、として機能させるためのテスト
プログラム作成プログラム。
(Supplementary Note 15) In order to create a test program for evaluating an information processing apparatus, a computer is operated by the processor detected when the original program is executed using a computer having a processor and a memory. An analysis means for analyzing an instruction code corresponding to the executed instruction, instruction information related to the instruction, binary data written in or read from the memory, and access information indicating access contents to the memory; A load module format program is created by writing the above instruction code based on the above instruction information and the above binary data based on the above access information in a memory space prepared in advance based on the analysis result by the analyzing means. Creating hands , Test program generation program for functioning as a.

【0124】(付記16)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、当該コンピュータを用いてオリジナルプログラムが
実行されているときに、当該コンピュータのプロセッサ
により実行される命令および当該コンピュータのメモリ
へのアクセス内容を検出する検出手段と、上記検出手段
により検出された情報に基づいて当該コンピュータによ
り実行された命令実行シーケンスを再現するロードモジ
ュール形式のプログラムを作成する作成手段、として機
能させるためのテストプログラム作成プログラム。
(Supplementary Note 16) In order to create a test program for evaluating an information processing apparatus, an instruction to be executed by a processor of the computer when the original program is executed by the computer. And detecting means for detecting access contents to the memory of the computer, and creating means for creating a program in a load module format for reproducing the instruction execution sequence executed by the computer based on the information detected by the detecting means, Test program creation program to function as.

【0125】(付記17)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、当該コンピュータを用いてオリジナルプログラムが
実行されているときに、上記プロセッサにより実行され
た命令に対応する命令コード、その命令に係わる命令情
報、上記メモリに書き込まれる又はそのメモリから読み
出されるバイナリデータ、および上記メモリへのアクセ
ス内容を表すアクセス情報を検出する検出手段と、上記
検出手段により検出された情報を時系列に基づいて、予
め用意されているメモリスペースに上記命令情報に基づ
いて上記命令コードを書き込むと共に上記アクセス情報
に基づいて上記バイナリデータを書き込むことにより、
ロードモジュール形式のプログラムを作成する作成手
段、として機能させるためのテストプログラム作成プロ
グラム。
(Supplementary Note 17) In order to create a test program for evaluating an information processing apparatus, a computer is made to correspond to an instruction executed by the processor while the original program is being executed using the computer. Instruction code, instruction information relating to the instruction, binary data written to or read from the memory, and access information indicating access content to the memory, and detection means for detecting the access information. By writing the instruction code on the basis of the instruction information in the previously prepared memory space based on the information in time series and the binary data on the basis of the access information,
A test program creation program to function as a creation means for creating a load module format program.

【0126】(付記18)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、当該コンピュータを用いてオリジナルプログラムが
実行されているときに、当該コンピュータのプロセッサ
により実行される命令および当該コンピュータのメモリ
へのアクセス内容を検出する検出手段と、上記検出手段
により検出された情報に基づいて当該コンピュータによ
り実行された命令実行シーケンスを再現するロードモジ
ュール形式のプログラムを作成する作成手段、として機
能させるためのテストプログラム作成プログラムを記録
したコンピュータ読取り可能な記録媒体。
(Supplementary Note 18) In order to create a test program for evaluating an information processing apparatus, an instruction to be executed by a processor of the computer while the original program is being executed by the computer. And detecting means for detecting access contents to the memory of the computer, and creating means for creating a program in a load module format for reproducing the instruction execution sequence executed by the computer based on the information detected by the detecting means, A computer-readable recording medium in which a test program creation program for functioning as a computer is recorded.

【0127】(付記19)情報処理装置を評価するため
のテストプログラムを作成するために、コンピュータ
を、当該コンピュータを用いてオリジナルプログラムが
実行されているときに、上記プロセッサにより実行され
た命令に対応する命令コード、その命令に係わる命令情
報、上記メモリに書き込まれる又はそのメモリから読み
出されるバイナリデータ、および上記メモリへのアクセ
ス内容を表すアクセス情報を検出する検出手段と、上記
検出手段により検出された情報を時系列に基づいて、予
め用意されているメモリスペースに上記命令情報に基づ
いて上記命令コードを書き込むと共に上記アクセス情報
に基づいて上記バイナリデータを書き込むことにより、
ロードモジュール形式のプログラムを作成する作成手
段、として機能させるためのテストプログラム作成プロ
グラムを記録したコンピュータ読取り可能な記録媒体。
(Supplementary Note 19) In order to create a test program for evaluating the information processing apparatus, a computer is made to correspond to the instruction executed by the processor when the original program is executed using the computer. Instruction code, instruction information relating to the instruction, binary data written to or read from the memory, and access information indicating access content to the memory, and detection means for detecting the access information. By writing the instruction code on the basis of the instruction information in the previously prepared memory space based on the information in time series and the binary data on the basis of the access information,
A computer-readable recording medium recording a test program creating program for functioning as a creating means for creating a load module format program.

【0128】(付記20)情報処理装置を評価するため
のテストプログラムであって、プロセッサおよびメモリ
を備えるコンピュータを用いてオリジナルプログラムが
実行されているときに検出された上記プロセッサにより
実行される命令および上記メモリへのアクセス内容に基
づいて上記コンピュータにより実行された命令実行シー
ケンスを再現するロードモジュール形式のテストプログ
ラム。
(Supplementary Note 20) A test program for evaluating an information processing apparatus, comprising: an instruction executed by the processor detected when the original program is executed using a computer having a processor and a memory; A load module type test program that reproduces an instruction execution sequence executed by the computer based on access contents to the memory.

【0129】[0129]

【発明の効果】本発明によれば、情報処理装置が完成す
る前にその性能を正確に評価できる。このため、情報処
理装置の開発期間を短縮できる。また、目標特性に近づ
けるためのデザインの変更を効率的に行うことができ
る。
According to the present invention, the performance of an information processing apparatus can be accurately evaluated before it is completed. Therefore, the development period of the information processing device can be shortened. In addition, it is possible to efficiently change the design to bring it closer to the target characteristic.

【図面の簡単な説明】[Brief description of drawings]

【図1】本実施形態のプログラム作成方法の概観を説明
する図である。
FIG. 1 is a diagram illustrating an overview of a program creation method according to this embodiment.

【図2】オリジナルプログラム実行マシンの構成図であ
る。
FIG. 2 is a configuration diagram of an original program execution machine.

【図3】トレーサの動作を示すフローチャートである。FIG. 3 is a flowchart showing the operation of the tracer.

【図4】実行履歴情報の実施例である。FIG. 4 is an example of execution history information.

【図5】初期メモリスペースの構成図である。FIG. 5 is a configuration diagram of an initial memory space.

【図6】命令コードを初期メモリスペースに書き込む処
理の実施例である。
FIG. 6 is an example of a process of writing an instruction code in an initial memory space.

【図7】I/O割込によるメモリ更新が発生したときの
解析ツールの処理を説明する図である。
FIG. 7 is a diagram illustrating processing of an analysis tool when a memory update occurs due to an I / O interrupt.

【図8】I/O命令によるメモリ更新が発生したときの
解析ツールの処理を説明する図である。
FIG. 8 is a diagram illustrating a process of an analysis tool when a memory update is generated by an I / O instruction.

【図9】動的情報参照命令が実行されたときの解析ツー
ルの処理を説明する図である。
FIG. 9 is a diagram illustrating a process of an analysis tool when a dynamic information reference instruction is executed.

【図10】(a) は、オリジナルプログラム実行マシンに
おいて非同期割込みが発生した場合の命令シーケンスを
示す図であり、(b)は、(a) に示すシーケンスを実現す
るための方法を説明する図である。
10A is a diagram showing an instruction sequence when an asynchronous interrupt occurs in the original program execution machine, and FIG. 10B is a diagram explaining a method for realizing the sequence shown in FIG. 10A. Is.

【図11】非同期割込が発生したときの解析ツールの処
理を説明する図である。
FIG. 11 is a diagram illustrating processing of the analysis tool when an asynchronous interrupt occurs.

【図12】解析ツールの動作を説明するフローチャート
である。
FIG. 12 is a flowchart illustrating the operation of the analysis tool.

【図13】(a) は、割込命令を管理するリストの例、
(b) は、割込命令を識別する方法の一例を示す図であ
る。
FIG. 13A is an example of a list for managing interrupt instructions,
(b) is a diagram showing an example of a method of identifying an interrupt instruction.

【図14】アドレス変換テーブルの圧縮について説明す
る図である。
FIG. 14 is a diagram illustrating compression of an address conversion table.

【図15】ベンチマークプログラムを作成および検証す
るシステムの構成図である。
FIG. 15 is a configuration diagram of a system for creating and verifying a benchmark program.

【図16】ベンチマークプログラムが実行される際に各
割込命令に対応する処理を決定する手順を示すフローチ
ャートである。
FIG. 16 is a flowchart showing a procedure for determining a process corresponding to each interrupt instruction when the benchmark program is executed.

【図17】トレーサを断続的に動作させた場合の処理を
説明するための図である。
FIG. 17 is a diagram for explaining a process when the tracer is intermittently operated.

【図18】本発明の機能を記述したプログラムを実行す
るコンピュータのブロック図である。
FIG. 18 is a block diagram of a computer that executes a program describing the functions of the present invention.

【図19】本発明に係わるソフトウェアプログラムなど
の提供方法を説明する図である。
FIG. 19 is a diagram illustrating a method of providing a software program or the like according to the present invention.

【符号の説明】[Explanation of symbols]

1 オリジナルプログラム実行マシン 2 実行履歴情報 3 解析ツール 4 基本データ 5 補正データ 6 補正ツール 7 ベンチマークプログラム 11 CPU 12 メモリ 13 OS 14 アプリケーションプログラム 15 トレーサ 21 外部デバイス 30 初期メモリスペース 31 基本メモリスペース 32 補正用メモリスペース 1 Original program execution machine 2 Execution history information 3 analysis tools 4 basic data 5 Correction data 6 correction tools 7 Benchmark program 11 CPU 12 memories 13 OS 14 Application program 15 Tracer 21 External device 30 initial memory space 31 Basic memory space 32 correction memory space

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 情報処理装置を評価するためのテストプ
ログラムを作成する方法であって、 プロセッサおよびメモリを備えるコンピュータを用いて
オリジナルプログラムが実行されているときに、上記プ
ロセッサにより実行される命令および上記メモリへのア
クセス内容を検出し、 検出された情報を実行履歴情報として時系列に格納し、 上記実行履歴情報に基づいて上記コンピュータにより実
行された命令実行シーケンスを再現するロードモジュー
ル形式のプログラムを作成することを特徴とするテスト
プログラム作成方法。
1. A method for creating a test program for evaluating an information processing apparatus, comprising instructions and instructions executed by the processor when the original program is executed using a computer including a processor and a memory. A load module format program that detects the contents of access to the memory, stores the detected information as execution history information in time series, and reproduces the instruction execution sequence executed by the computer based on the execution history information. A test program creating method characterized by creating.
【請求項2】 情報処理装置を評価するためのテストプ
ログラムを作成する方法であって、 プロセッサおよびメモリを備えるコンピュータを用いて
オリジナルプログラムが実行されているときに、上記プ
ロセッサにより実行された命令に対応する命令コード、
その命令に係わる命令情報、上記メモリに書き込まれる
又はそのメモリから読み出されるバイナリデータ、およ
び上記メモリへのアクセス内容を表すアクセス情報を検
出し、 検出された情報を実行履歴情報として時系列に格納し、 上記実行履歴情報を時系列に解析し、予め用意されてい
るメモリスペースに、上記命令情報に基づいて上記命令
コードを書き込むと共に上記アクセス情報に基づいて上
記バイナリデータを書き込むことにより、ロードモジュ
ール形式のプログラムを作成することを特徴とするテス
トプログラム作成方法。
2. A method of creating a test program for evaluating an information processing apparatus, wherein the instructions executed by the processor are executed when the original program is executed using a computer including a processor and a memory. Corresponding instruction code,
Detects command information related to the command, binary data written to or read from the memory, and access information indicating access contents to the memory, and stores the detected information in time series as execution history information. By analyzing the execution history information in time series and writing the instruction code based on the instruction information and the binary data into the memory space prepared in advance, the load module format can be obtained. A method for creating a test program, which is characterized by creating the above program.
【請求項3】 請求項2に記載のテストプログラム作成
方法であって、 当該テストプログラムが与えられる装置が実行できない
命令である第1の命令が上記コンピュータにより実行さ
れた場合は、 上記第1の命令に起因する上記コンピュータの動作を代
替する処理ルーチンプログラムを作成して上記メモリス
ペースに書き込み、 上記第1の命令の代わりに上記処理ルーチンプログラム
を呼び出す命令を上記メモリスペースに書き込む。
3. The test program creating method according to claim 2, wherein the first instruction, which is an instruction that cannot be executed by a device to which the test program is given, is executed by the computer. A processing routine program for substituting the operation of the computer caused by the instruction is created and written in the memory space, and an instruction for calling the processing routine program is written in the memory space instead of the first instruction.
【請求項4】 請求項2に記載のテストプログラム作成
方法であって、 上記コンピュータにより実行されたときと当該テストプ
ログラムが与えられる装置により実行されたときとで異
なる動作を引き起こす可能性のある命令である第2の命
令が上記コンピュータにより実行された場合に、 上記コンピュータにおいて上記第2の命令が実行された
ときに上記プロセッサが参照した条件を上記メモリスペ
ースに書き込み、 上記第2の命令の代わりに上記条件を呼び出す命令を上
記メモリスペースに書き込む。
4. The test program creating method according to claim 2, wherein an instruction that may cause a different operation when executed by the computer and when executed by a device to which the test program is given. When the second instruction is executed by the computer, the condition referred to by the processor when the second instruction is executed by the computer is written into the memory space, and the second instruction is replaced by the second instruction instead of the second instruction. Write an instruction to call the above condition in the memory space.
【請求項5】 請求項2に記載のテストプログラム作成
方法であって、 当該テストプログラムが与えられる装置が実施できない
動作である第1の動作が上記コンピュータにより実施さ
れた場合に、 上記コンピュータにおいて上記第1の動作が実施された
タイミングの近傍で実行された命令である第3の命令を
命令シーケンスを切り替える命令に置き換えて上記メモ
リスペースに書き込み、 上記第1の動作を代替する処理ルーチンプログラムを作
成して上記メモリスペースに書き込み、 上記命令シーケンスを切り替える命令と上記処理ルーチ
ンプログラムとをリンクする。
5. The method for creating a test program according to claim 2, wherein the first operation, which is an operation that cannot be performed by the device to which the test program is given, is executed by the computer. Create a processing routine program that replaces the first operation by replacing the third instruction, which is an instruction executed near the timing at which the first operation is performed, with an instruction that switches the instruction sequence, and writing it in the memory space. Then, the instruction is written in the memory space, and the instruction for switching the instruction sequence and the processing routine program are linked.
【請求項6】 情報処理装置を評価するためのテストプ
ログラムを作成するシステムであって、 プロセッサおよびメモリを備えるコンピュータを用いて
オリジナルプログラムが実行されているときに、上記プ
ロセッサにより実行される命令および上記メモリへのア
クセス内容を検出する検出手段と、 検出された情報を実行履歴情報として時系列に格納する
格納手段と、 上記実行履歴情報に基づいて上記コンピュータにより実
行された命令実行シーケンスを再現するロードモジュー
ル形式のプログラムを作成する作成手段とを有すること
を特徴とするテストプログラム作成システム。
6. A system for creating a test program for evaluating an information processing apparatus, comprising: an instruction executed by the processor when the original program is executed using a computer having a processor and a memory; Detecting means for detecting access contents to the memory, storage means for storing the detected information as execution history information in time series, and reproducing instruction execution sequence executed by the computer based on the execution history information A test program creating system comprising: a creating module for creating a program in a load module format.
【請求項7】 情報処理装置を評価するためのテストプ
ログラムを作成するシステムであって、 プロセッサおよびメモリを備えるコンピュータを用いて
オリジナルプログラムが実行されているときに、上記プ
ロセッサにより実行された命令に対応する命令コード、
その命令に係わる命令情報、上記メモリに書き込まれる
又はそのメモリから読み出されるバイナリデータ、およ
び上記メモリへのアクセス内容を表すアクセス情報を検
出する検出手段と、 検出された情報を実行履歴情報として時系列に格納する
格納手段と、 上記実行履歴情報を時系列に解析し、予め用意されてい
るメモリスペースに、上記命令情報に基づいて上記命令
コードを書き込むと共に上記アクセス情報に基づいて上
記バイナリデータを書き込むことにより、ロードモジュ
ール形式のプログラムを作成する作成手段とを有するこ
とを特徴とするテストプログラム作成システム。
7. A system for creating a test program for evaluating an information processing apparatus, wherein the instruction executed by the processor is executed when the original program is executed by using a computer including a processor and a memory. Corresponding instruction code,
Detection means for detecting instruction information related to the instruction, binary data written in or read from the memory, and access information indicating access contents to the memory, and the detected information in time series as execution history information. And a storage means for storing the execution history information in time series, and writing the instruction code based on the instruction information and the binary data into the prepared memory space based on the access information. A test program creating system comprising: a creating module for creating a program in a load module format.
【請求項8】 情報処理装置を評価するためのテストプ
ログラムを作成するために、コンピュータを、 プロセッサおよびメモリを備える他のコンピュータを用
いてオリジナルプログラムが実行されているときに検出
された上記プロセッサにより実行される命令および上記
メモリへのアクセス内容に基づいて、上記他のコンピュ
ータにより実行された命令実行シーケンスを再現するロ
ードモジュール形式のプログラムを作成する作成手段、 として機能させるためのテストプログラム作成プログラ
ム。
8. A computer, in order to create a test program for evaluating an information processing apparatus, by the processor detected when the original program is executed using another computer having a processor and a memory. A test program creation program for functioning as a creation means for creating a load module format program that reproduces an instruction execution sequence executed by another computer based on an instruction to be executed and access contents to the memory.
【請求項9】 情報処理装置を評価するためのテストプ
ログラムを作成するために、コンピュータを、 当該コンピュータを用いてオリジナルプログラムが実行
されているときに、当該コンピュータのプロセッサによ
り実行される命令および当該コンピュータのメモリへの
アクセス内容を検出する検出手段と、 上記検出手段により検出された情報に基づいて当該コン
ピュータにより実行された命令実行シーケンスを再現す
るロードモジュール形式のプログラムを作成する作成手
段、 として機能させるためのテストプログラム作成プログラ
ム。
9. In order to create a test program for evaluating an information processing apparatus, a computer is provided with instructions executed by a processor of the computer when the original program is being executed using the computer, and Functions as detecting means for detecting the contents of access to the memory of the computer, and creating means for creating a load module format program for reproducing the instruction execution sequence executed by the computer based on the information detected by the detecting means. A test program creation program to let you do.
【請求項10】 情報処理装置を評価するためのテスト
プログラムであって、 プロセッサおよびメモリを備えるコンピュータを用いて
オリジナルプログラムが実行されているときに検出され
た上記プロセッサにより実行される命令および上記メモ
リへのアクセス内容に基づいて上記コンピュータにより
実行された命令実行シーケンスを再現するロードモジュ
ール形式のテストプログラム。
10. A test program for evaluating an information processing apparatus, the instruction executed by the processor and the memory detected when the original program is executed using a computer including a processor and a memory. A load module format test program that reproduces an instruction execution sequence executed by the computer based on access contents to the computer.
JP2001202323A 2001-07-03 2001-07-03 Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same Expired - Fee Related JP4503203B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001202323A JP4503203B2 (en) 2001-07-03 2001-07-03 Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001202323A JP4503203B2 (en) 2001-07-03 2001-07-03 Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same

Publications (2)

Publication Number Publication Date
JP2003015914A true JP2003015914A (en) 2003-01-17
JP4503203B2 JP4503203B2 (en) 2010-07-14

Family

ID=19039145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001202323A Expired - Fee Related JP4503203B2 (en) 2001-07-03 2001-07-03 Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same

Country Status (1)

Country Link
JP (1) JP4503203B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087085A (en) * 2007-09-28 2009-04-23 Toshiba Corp Content emulation device and content emulation method
JP2009301231A (en) * 2008-06-11 2009-12-24 Fujitsu Ltd Simulation apparatus, simulation method, simulation program, and computer-readable recording medium with the program recorded thereon
JP2010211316A (en) * 2009-03-06 2010-09-24 Fujitsu Ltd Verification support program, information processing apparatus, and verification support method
WO2011018828A1 (en) * 2009-08-14 2011-02-17 富士通株式会社 Device for creating program and method for creating program
US8428927B2 (en) 2007-10-15 2013-04-23 Fujitsu Limited Simulation method and simulation apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305583A (en) * 1995-05-08 1996-11-22 N Ii C Joho Syst:Kk Method for simulating cpu
JPH10320246A (en) * 1997-05-20 1998-12-04 Hitachi Ltd Method for measuring system performance of processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305583A (en) * 1995-05-08 1996-11-22 N Ii C Joho Syst:Kk Method for simulating cpu
JPH10320246A (en) * 1997-05-20 1998-12-04 Hitachi Ltd Method for measuring system performance of processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087085A (en) * 2007-09-28 2009-04-23 Toshiba Corp Content emulation device and content emulation method
US8428927B2 (en) 2007-10-15 2013-04-23 Fujitsu Limited Simulation method and simulation apparatus
JP2009301231A (en) * 2008-06-11 2009-12-24 Fujitsu Ltd Simulation apparatus, simulation method, simulation program, and computer-readable recording medium with the program recorded thereon
JP2010211316A (en) * 2009-03-06 2010-09-24 Fujitsu Ltd Verification support program, information processing apparatus, and verification support method
WO2011018828A1 (en) * 2009-08-14 2011-02-17 富士通株式会社 Device for creating program and method for creating program
JP5354017B2 (en) * 2009-08-14 2013-11-27 富士通株式会社 Program creation apparatus and program creation method

Also Published As

Publication number Publication date
JP4503203B2 (en) 2010-07-14

Similar Documents

Publication Publication Date Title
US5987250A (en) Transparent instrumentation for computer program behavior analysis
US6941546B2 (en) Method and apparatus for testing a software component using an abstraction matrix
US20100115494A1 (en) System for dynamic program profiling
US20070011664A1 (en) Device and method for generating an instruction set simulator
JP5396979B2 (en) Software development support device, system, software development support device function expansion method, and program
JP2006185211A (en) Program analysis system, test execution device, and analysis method and program thereof
US20160124795A1 (en) Evaluation method and apparatus
WO2019118691A1 (en) Method and system for identifying functional attributes that change the intended operation of a compiled binary extracted from a target system
JP2020119348A (en) Analysis program, analysis method, and analysis device
CN112882718A (en) Compiling processing method, device, equipment and storage medium
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
CN111428233A (en) Security analysis method for embedded equipment firmware
US7624381B1 (en) Portable detection of start and completion of object construction
JP6890557B2 (en) Analytical model creation system, programming device and analytical model creation method
JP5504960B2 (en) Simulation apparatus and simulation method
JP4503203B2 (en) Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same
US20030070117A1 (en) Simulation apparatus and simulation method
GB2397905A (en) Method for automatically generating and ordering test scripts
Andrzejak et al. Confguru-A system for fully automated debugging of configuration errors
KR101225577B1 (en) Apparatus and method for analyzing assembly language code
JP2009064125A (en) Server device and program thereof
US20060048012A1 (en) Context sensitive debug streams with output throttling controls
JP2004326237A (en) Test case creation device, test case creation method, test case, and test method
JP3531728B2 (en) Apparatus and method for managing configuration relation of program described in object-oriented programming language, and storage medium
JP2000207226A (en) Code optimizing device, language processor, and code optimization method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100326

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: 20100420

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: 20100421

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees