JP7401751B2 - Information processing program, information processing method, and information processing system - Google Patents

Information processing program, information processing method, and information processing system Download PDF

Info

Publication number
JP7401751B2
JP7401751B2 JP2020000797A JP2020000797A JP7401751B2 JP 7401751 B2 JP7401751 B2 JP 7401751B2 JP 2020000797 A JP2020000797 A JP 2020000797A JP 2020000797 A JP2020000797 A JP 2020000797A JP 7401751 B2 JP7401751 B2 JP 7401751B2
Authority
JP
Japan
Prior art keywords
information
debugging
data
instruction
register
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.)
Active
Application number
JP2020000797A
Other languages
Japanese (ja)
Other versions
JP2021111004A (en
Inventor
宣幸 松井
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 JP2020000797A priority Critical patent/JP7401751B2/en
Publication of JP2021111004A publication Critical patent/JP2021111004A/en
Application granted granted Critical
Publication of JP7401751B2 publication Critical patent/JP7401751B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理プログラム、情報処理方法及び情報処理システムに関する。 The present invention relates to an information processing program, an information processing method, and an information processing system.

サーバシステムの開発及び運用時の、性能解析、電力評価、動作試験またはフィールド調査の各フェーズにおいて、テストプログラムを用いたサーバシステムの動作解析が行われることがある。テストプログラムの実行にてエラーが検出された際に、ハードウェア内部の動作解析が行われる。そして、その結果をもとにエラー原因の推測、シミュレーションモデルの作成、及びシミュレーションモデルを用いたデバッグが行われる。 During the development and operation of a server system, an operation analysis of the server system using a test program may be performed in each phase of performance analysis, power evaluation, operation test, or field investigation. When an error is detected during execution of a test program, an analysis of the internal operation of the hardware is performed. Then, based on the results, the cause of the error is estimated, a simulation model is created, and debugging is performed using the simulation model.

ハードウェア内部の動作解析方法として、シミュレーションにより波形データや各種バスの通信履歴などを取得して表示する手法や、実機のメモリに残された命令実行履歴などを取得して表示する手法がある。 As methods for analyzing the internal behavior of hardware, there are methods that use simulation to obtain and display waveform data and communication history of various buses, and methods that obtain and display the instruction execution history left in the memory of the actual device.

なお、従来、インオーダ実行型のプロセッサをもつ情報処理装置において、パイプライン制御に関する動作情報を監視・解析・記録し、さらに、表示する機能をもつ技術があった(たとえば、特許文献1参照)。 Note that there has conventionally been a technology that has a function of monitoring, analyzing, recording, and displaying operation information related to pipeline control in an information processing apparatus having an in-order execution type processor (see, for example, Patent Document 1).

また、プログラムに記述された命令の順序に関係なく、処理に必要なデータが揃った命令から実行するアウトオブオーダと呼ばれる機構を備えたプロセッサが知られている。 Furthermore, processors are known that are equipped with a mechanism called out-of-order, which executes instructions that have all the data necessary for processing, regardless of the order of instructions written in a program.

特開平9-244912号公報Japanese Patent Application Publication No. 9-244912

サーバシステムは大規模化及び複雑化が進んでおり、動作解析にかかる工数が増大している。システム動作解析作業の中で、プロセッサなどのハードウェア内部の動作解析作業が最も観測性が悪く難易度が高い。近年、プロセッサに含まれるハードウェアモジュールの数及び種類の増加やアウトオブオーダの採用などにより複雑化が進んでおり、テストプログラム実行時のエラー原因の推測がより困難になっている。このため、デバッグ時間が長くなってしまうという問題があった。 Server systems are becoming larger and more complex, and the number of man-hours required for operation analysis is increasing. Among system behavior analysis tasks, analyzing the internal behavior of hardware such as processors is the most difficult and difficult to observe. In recent years, processors have become more complex due to increases in the number and types of hardware modules included in processors and the adoption of out-of-order technology, making it more difficult to predict the cause of errors when executing test programs. For this reason, there was a problem in that debugging time became long.

1つの側面では、本発明は、デバッグ時間の短縮が可能な情報処理プログラム、情報処理方法及び情報処理システムを提供することを目的とする。 In one aspect, the present invention aims to provide an information processing program, an information processing method, and an information processing system that can reduce debugging time.

1つの実施態様では、プロセッサによるテストプログラムの実行時の所定の発生イベントごとの、前記プロセッサ内の複数のハードウェアモジュールの動作に関する動作情報を取得し、前記動作情報に基づいて、前記テストプログラムに記述されたソフトウェア動作と、前記テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示す情報を含むデバッグ用情報を生成し、前記デバッグ用情報を出力する、処理をコンピュータに実行させる情報処理プログラムが提供される。 In one embodiment, operational information regarding the operation of a plurality of hardware modules in the processor is obtained for each predetermined occurrence event when the test program is executed by the processor, and based on the operational information, the test program is executed. Generating debugging information including information indicating a correspondence relationship between the described software operation and the hardware operation by the hardware used when executing the test program, and outputting the debugging information to a computer. An information processing program to be executed is provided.

また、1つの実施態様では、情報処理方法が提供される。
また、1つの実施態様では、情報処理システムが提供される。
In one embodiment, an information processing method is also provided.
Also, in one embodiment, an information processing system is provided.

1つの側面では、本発明は、デバッグ時間を短縮できる。 In one aspect, the present invention can reduce debugging time.

第1の実施の形態の情報処理システムの一例を示す図である。FIG. 1 is a diagram illustrating an example of an information processing system according to a first embodiment. 第2の実施の形態の情報処理システムの一例を示す図である。FIG. 3 is a diagram illustrating an example of an information processing system according to a second embodiment. コアとトレーサモジュールの内部構成例を示す図である。FIG. 3 is a diagram showing an example of the internal configuration of a core and a tracer module. パイプライン処理の各ステージの例を示す図である。FIG. 3 is a diagram showing an example of each stage of pipeline processing. 動作情報の取得処理の一例の流れを示すフローチャートである。3 is a flowchart illustrating an example of an operation information acquisition process. 各命令実行サイクルにおいて取得された動作情報の一例を示す図である。FIG. 3 is a diagram illustrating an example of operation information acquired in each instruction execution cycle. デバッグ作業実行サーバのハードウェア例を示す図である。FIG. 3 is a diagram illustrating an example of hardware of a debugging work execution server. デバッグ作業実行サーバの機能例を示すブロック図である。FIG. 2 is a block diagram illustrating a functional example of a debugging work execution server. デバッグ用情報の生成及び表示処理の一例の流れを示すフローチャートである。3 is a flowchart illustrating an example of a process for generating and displaying debugging information. データ登録処理の一例の流れを示すフローチャートである。3 is a flowchart illustrating an example of a data registration process. データテーブルの登録例を示す図である。It is a figure which shows the example of registration of a data table. ライトデータ登録用のデータテーブルの一例を示す図である。FIG. 3 is a diagram showing an example of a data table for registering write data. 実行完了命令と関連情報の表示処理の一例の流れを示すフローチャートである。7 is a flowchart illustrating an example of a process for displaying an execution completion command and related information. 即時データ表示処理の一例の流れを示すフローチャートである。3 is a flowchart illustrating an example of the flow of instant data display processing. パイプラインフラッシュ処理の一例の流れを示すフローチャートである。3 is a flowchart illustrating an example of a pipeline flush process. デバッグ用情報のディスプレイへの表示例を示す図である。FIG. 6 is a diagram illustrating an example of how debugging information is displayed on a display. デバッグ作業の一例の処理の流れを示す図である。FIG. 3 is a diagram showing a processing flow of an example of debugging work.

以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理システムの一例を示す図である。
Hereinafter, embodiments for carrying out the invention will be described with reference to the drawings.
(First embodiment)
FIG. 1 is a diagram showing an example of an information processing system according to the first embodiment.

情報処理システム10は、プロセッサ11、記憶装置12、デバッグ装置13、表示装置14を有する。
プロセッサ11は、たとえば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などの演算処理装置である。プロセッサ11は、複数のプロセッサコアを含んでいてもよい。プロセッサ11は、記憶装置12に記憶されたテストプログラムを実行する。プロセッサ11は、アウトオブオーダ実行やパイプライン処理を行う演算処理装置であってもよいし、スーパースカラ処理機構を有する演算処理装置であってもよいし、これらを組み合わせた処理を行う演算処理装置であってもよい。
The information processing system 10 includes a processor 11, a storage device 12, a debug device 13, and a display device 14.
The processor 11 is, for example, an arithmetic processing device such as a CPU (Central Processing Unit) or a DSP (Digital Signal Processor). Processor 11 may include multiple processor cores. Processor 11 executes a test program stored in storage device 12. The processor 11 may be an arithmetic processing device that performs out-of-order execution or pipeline processing, may be an arithmetic processing device that has a superscalar processing mechanism, or may be an arithmetic processing device that performs processing that is a combination of these. It may be.

また、プロセッサ11は、テストプログラムを実行する複数のハードウェアモジュール11a1,11a2,…,11anと、取得回路11bを有する。
ハードウェアモジュール11a1~11anは、テストプログラムに応じた動作を行う。
The processor 11 also includes a plurality of hardware modules 11a1, 11a2, . . . , 11an that execute test programs, and an acquisition circuit 11b.
The hardware modules 11a1 to 11an perform operations according to the test program.

取得回路11bは、ハードウェアモジュール11a1~11anの動作に関する動作情報を、テストプログラムの実行時の所定の発生イベントごとに取得する。所定の発生イベントとして、たとえば、命令デコード処理、レジスタへのライト処理、仮想アドレスから物理アドレスへのアドレス変換処理などがある。動作情報として、たとえば、デコードされた命令データ、ライトが行われたレジスタ(以下物理汎用レジスタという)の番号、ライトデータ、テストプログラムに記述されているレジスタ(以下論理汎用レジスタという)の番号などがある。 The acquisition circuit 11b acquires operational information regarding the operations of the hardware modules 11a1 to 11an for each predetermined event that occurs during execution of the test program. The predetermined events include, for example, instruction decoding processing, register write processing, and address translation processing from virtual addresses to physical addresses. Examples of operation information include decoded instruction data, numbers of registers written (hereinafter referred to as physical general-purpose registers), write data, and numbers of registers written in the test program (hereinafter referred to as logical general-purpose registers). be.

なお、パイプライン処理が行われる場合、これらの動作情報は、その動作情報を発生させた命令に割り当てられたパイプライン番号(以下パイプラインID(IDentification)という)とともに取得される。 Note that when pipeline processing is performed, these pieces of operation information are acquired together with a pipeline number (hereinafter referred to as pipeline ID (IDentification)) assigned to the instruction that generated the operation information.

取得回路11bは、たとえば、RAM(Random Access Memory)を有し、取得した動作情報をそのRAMに保持しておく。取得回路11bは、テストプログラムの実行が終了した場合に、保持しておいた動作情報を出力して、記憶装置12に記憶させてもよい。なお、取得回路11bは、毎サイクル、動作情報を取得するのではなく、所定の発生イベントごとに動作情報を取得するため、RAMに保持するデータ量を削減できる。 The acquisition circuit 11b has, for example, a RAM (Random Access Memory), and holds the acquired operation information in the RAM. The acquisition circuit 11b may output the retained operation information and store it in the storage device 12 when the execution of the test program is completed. Note that the acquisition circuit 11b does not acquire operational information every cycle, but acquires operational information for each predetermined event that occurs, so that the amount of data held in the RAM can be reduced.

ハードウェアモジュール11a1~11anと取得回路11bは、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでいてもよい。 The hardware modules 11a1 to 11an and the acquisition circuit 11b may include, for example, an electronic circuit for a specific purpose such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

記憶装置12は、RAMなどの揮発性の記憶装置、またはフラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)などの不揮発性の記憶装置である。 The storage device 12 is a volatile storage device such as a RAM, or a nonvolatile storage device such as a flash memory, an EEPROM (Electrically Erasable Programmable Read Only Memory), or an HDD (Hard Disk Drive).

デバッグ装置13は、処理部13aと記憶部13bを有する。
処理部13aは、たとえば、CPU、DSPなどの演算処理装置としてのプロセッサである。処理部13aは、複数のプロセッサを含んでいてもよいし複数のプロセッサコアを含んでいてもよい。また、処理部13aは、ASICやFPGAなどの特定用途の電子回路を含んでいてもよい。
The debug device 13 includes a processing section 13a and a storage section 13b.
The processing unit 13a is, for example, a processor such as a CPU or a DSP as an arithmetic processing device. The processing unit 13a may include multiple processors or multiple processor cores. Further, the processing unit 13a may include an electronic circuit for a specific purpose such as an ASIC or an FPGA.

処理部13aは、記憶部13bに記憶されたプログラムを実行する。たとえば、処理部13aは、後述するような情報処理プログラムを実行する。
記憶部13bは、RAMなどの揮発性の記憶装置、またはフラッシュメモリ、EEPROMやHDDなどの不揮発性の記憶装置である。
The processing unit 13a executes the program stored in the storage unit 13b. For example, the processing unit 13a executes an information processing program as described below.
The storage unit 13b is a volatile storage device such as a RAM, or a nonvolatile storage device such as a flash memory, EEPROM, or HDD.

記憶部13bは、各種プログラムを記憶するとともに処理部13aがプログラムを実行する際に用いる各種データを記憶する。また、記憶部13bはプロセッサ11が実行したテストプログラムを記憶していてもよい。 The storage unit 13b stores various programs and also stores various data used when the processing unit 13a executes the programs. Further, the storage unit 13b may store a test program executed by the processor 11.

処理部13aが情報処理プログラムの実行を開始すると、処理部13aは、まず、取得回路11bが出力した動作情報を取得する(ステップS1)。取得回路11bが出力した動作情報が記憶装置12に記憶されている場合、処理部13aは、記憶装置12から動作情報を取得する(読み出す)。なお、取得回路11bが出力する動作情報は、図示しない通信装置によってデバッグ装置13に送信されてもよい。また処理部13aは、取得した動作情報を、一旦、記憶部13bに記憶してもよい。 When the processing unit 13a starts executing the information processing program, the processing unit 13a first obtains the operation information output by the acquisition circuit 11b (step S1). If the operational information output by the acquisition circuit 11b is stored in the storage device 12, the processing unit 13a acquires (reads) the operational information from the storage device 12. Note that the operation information output by the acquisition circuit 11b may be transmitted to the debug device 13 by a communication device (not shown). Further, the processing unit 13a may temporarily store the acquired motion information in the storage unit 13b.

処理部13aは、取得した動作情報に基づいて、テストプログラムに記述されたソフトウェア動作と、テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示す情報を含むデバッグ用情報を生成する(ステップS2)。たとえば、テストプログラムに記述されたソフトウェア動作が、ある論理汎用レジスタを用いた加算処理である場合、その加算処理の際に用いられた物理汎用レジスタの番号やライトデータがデバッグ用情報に含まれる。 Based on the acquired operation information, the processing unit 13a generates debugging information including information indicating the correspondence between the software operation described in the test program and the hardware operation by the hardware used when executing the test program. Generate (step S2). For example, if the software operation described in the test program is an addition process using a certain logical general-purpose register, the debug information includes the number and write data of the physical general-purpose register used in the addition process.

そして、処理部13aは生成したデバッグ用情報を出力する(ステップS3)。処理部13aは、たとえば、表示装置14にデバッグ用情報を出力して表示させる。図1にはデバッグ用情報の表示例が示されている。 Then, the processing unit 13a outputs the generated debugging information (step S3). For example, the processing unit 13a outputs debugging information to the display device 14 for display. FIG. 1 shows a display example of debugging information.

図1の例では、命令実行完了時刻や、その時刻に完了した命令についての情報として、SW(ソフトウェア)動作情報と使用HW(ハードウェア)動作情報が示されている。SW動作情報と使用HW動作情報は、ソフトウェア動作とハードウェア動作との対応関係を示している。図1の例では、SW動作情報として、加算処理を示す“add”と、用いる論理汎用レジスタの番号を表す“r1”と、加算する2つの値“0x10”、“0x10”が指定されている。また、使用HW動作情報として、用いる物理汎用レジスタの番号を表す“r1”と、加算処理の結果として書き込まれるライトデータ“0x20”が示されている。この例では論理汎用レジスタと物理汎用レジスタの番号は同じであるため両者は一致する。しかし、プロセッサ11がアウトオブオーダ実行の際に、レジスタリネーミングを行う場合、論理汎用レジスタと物理汎用レジスタの番号は異なる番号となり、両者は一致しない。 In the example of FIG. 1, SW (software) operation information and used HW (hardware) operation information are shown as information about the instruction execution completion time and the instructions completed at that time. The SW operation information and the used HW operation information indicate the correspondence between software operations and hardware operations. In the example of FIG. 1, the SW operation information specifies "add" indicating addition processing, "r1" indicating the number of the logical general-purpose register to be used, and two values to be added, "0x10" and "0x10". . Further, as used HW operation information, "r1" representing the number of the physical general-purpose register to be used and write data "0x20" written as a result of the addition process are shown. In this example, the numbers of the logical general-purpose register and the physical general-purpose register are the same, so they match. However, when the processor 11 performs register renaming during out-of-order execution, the logical general-purpose register and the physical general-purpose register have different numbers and do not match.

なお、処理部13aは、記憶部13bにデバッグ用情報を出力して記憶させてもよい。
図1では図示が省略されているが、その後、処理部13aは、たとえば、シミュレータ(シミュレーションソフトウェア)などにより、テストプログラムによる期待動作を表す期待動作情報を生成し、表示装置14に表示させる。そして、ユーザは、たとえば、表示装置14に表示される期待動作情報と上記デバッグ用情報とを比較してデバッグ作業を行う。デバッグ作業による問題発生箇所の特定後は、特定した問題発生箇所に関連するハードウェアモジュールに絞って調査が行われる。
Note that the processing unit 13a may output debugging information to the storage unit 13b and store it.
Although not shown in FIG. 1, the processing unit 13a then uses, for example, a simulator (simulation software) to generate expected behavior information representing the expected behavior by the test program, and causes the display device 14 to display the generated expected behavior information. Then, the user performs debugging work by comparing, for example, the expected operation information displayed on the display device 14 with the debugging information. After identifying the problem location through debugging, the investigation is focused on the hardware module related to the identified problem location.

上記の方法で得られたデバッグ用情報は、ソフトウェア動作と実際に用いられたハードウェアの動作との対応関係を示す情報を含むため、両者の対応関係の把握が容易となり、問題発生箇所の特定が容易になる。これにより、デバッグ作業効率が上がりデバッグ時間を短縮できる。このため、プロセッサ11を含むシステムの動作解析作業の効率化、短TAT(Turn Around Time)化が実現できる。 The debugging information obtained by the above method includes information that shows the correspondence between software operations and the operations of the hardware actually used, so it is easy to understand the correspondence between the two and identify the location where the problem occurs. becomes easier. This increases debugging efficiency and reduces debugging time. Therefore, it is possible to improve the efficiency of the operation analysis work of the system including the processor 11 and shorten TAT (Turn Around Time).

なお、デバッグ装置13の処理部13aの処理内容を、取得回路11bによる動作情報取得後に、プロセッサ11が行うようにしてもよい。その場合、上記の情報処理プログラムは、プロセッサ11によって実行されることになる。 Note that the processing content of the processing unit 13a of the debug device 13 may be performed by the processor 11 after the acquisition circuit 11b acquires the operation information. In that case, the above information processing program will be executed by the processor 11.

(第2の実施の形態)
図2は、第2の実施の形態の情報処理システムの一例を示す図である。
第2の実施の形態の情報処理システム20は、試験対象サーバシステム21とデバッグ作業実行サーバ22とを有する。試験対象サーバシステム21は、プロセッサ31、主記憶装置32、外部記憶装置33を有する。
(Second embodiment)
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
The information processing system 20 of the second embodiment includes a test target server system 21 and a debugging work execution server 22. The test target server system 21 includes a processor 31, a main storage device 32, and an external storage device 33.

プロセッサ31は、たとえば、CPU、DSPなどの演算処理装置であり、図1に示したプロセッサ11と同様の機能を有する。ただし、第2の実施の形態の情報処理システム20において、プロセッサ31は、複数の(m個の)プロセッサコア(以下単にコアと呼ぶ)31a1,31a2,…,31amと、トレーサモジュール31bを有する。 The processor 31 is, for example, an arithmetic processing device such as a CPU or a DSP, and has the same functions as the processor 11 shown in FIG. However, in the information processing system 20 of the second embodiment, the processor 31 includes a plurality of (m) processor cores (hereinafter simply referred to as cores) 31a1, 31a2, . . . , 31am, and a tracer module 31b.

コア31a1~31amのそれぞれは、アウトオブオーダ実行を行う機能、スーパースカラ処理を行う機能、及びパイプライン処理を行う機能を有する。
トレーサモジュール31bは、図1に示した取得回路11bと同様の機能を有する。トレーサモジュール31bの内部構成例については後述する。
Each of the cores 31a1 to 31am has a function of performing out-of-order execution, a function of performing superscalar processing, and a function of performing pipeline processing.
The tracer module 31b has the same function as the acquisition circuit 11b shown in FIG. An example of the internal configuration of the tracer module 31b will be described later.

主記憶装置32は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、外部記憶装置33は、たとえば、フラッシュメモリ、EEPROM、HDDなどの不揮発性の記憶装置である。 The main storage device 32 is a volatile storage device such as a DRAM (Dynamic Random Access Memory), and the external storage device 33 is a nonvolatile storage device such as a flash memory, EEPROM, or HDD.

なお、試験対象サーバシステム21には、通信インタフェースや入出力インタフェースなどが含まれていてもよいが、図2では図示が省略されている。
デバッグ作業実行サーバ22は、図1に示したデバッグ装置13と同様の機能を有する。デバッグ作業実行サーバ22のハードウェア例については後述する。
Note that the test target server system 21 may include a communication interface, an input/output interface, etc., but illustration thereof is omitted in FIG. 2.
The debugging work execution server 22 has the same functions as the debugging device 13 shown in FIG. A hardware example of the debugging work execution server 22 will be described later.

図3は、コアとトレーサモジュールの内部構成例を示す図である。
コア31a1~31amのそれぞれは複数のハードウェアモジュールを有する。たとえば、図3のようにコア31a1は、複数の(n個の)ハードウェアモジュール41a1,41a2,…,41anを有する。コア31a2~31amのそれぞれも同様にn個のハードウェアモジュールを有する。
FIG. 3 is a diagram showing an example of the internal configuration of the core and tracer module.
Each of the cores 31a1 to 31am has a plurality of hardware modules. For example, as shown in FIG. 3, the core 31a1 includes a plurality of (n) hardware modules 41a1, 41a2, . . . , 41an. Each of the cores 31a2 to 31am similarly has n hardware modules.

ハードウェアモジュール41a1~41anのそれぞれは、たとえば、後述するパイプライン処理の各ステージの処理を行う回路である。ハードウェアモジュール41a1~41anのそれぞれは、たとえば、図示しないフリップフロップを介して、ハードウェアモジュール41a1~41anのうちの他のハードウェアモジュールに接続されている。 Each of the hardware modules 41a1 to 41an is, for example, a circuit that performs processing at each stage of pipeline processing, which will be described later. Each of the hardware modules 41a1 to 41an is connected to another one of the hardware modules 41a1 to 41an, for example, via a flip-flop (not shown).

トレーサモジュール31bは、コントローラ31b1とRAM31b2を有する。コントローラ31b1は、コア31a1~31amの各ハードウェアモジュールと接続されており、各ハードウェアモジュールが出力する信号に基づいて、所定の発生イベントが生じたか否かを判定する。コントローラ31b1は、所定の発生イベントが生じたと判定した場合、その発生イベントに関連するハードウェアモジュールの動作を示す動作情報を取得し、RAM31b2に書き込む。 The tracer module 31b has a controller 31b1 and a RAM 31b2. The controller 31b1 is connected to each of the hardware modules of the cores 31a1 to 31am, and determines whether a predetermined event has occurred based on signals output from each hardware module. When the controller 31b1 determines that a predetermined event has occurred, the controller 31b1 acquires operation information indicating the operation of the hardware module related to the event and writes it into the RAM 31b2.

図4は、パイプライン処理の各ステージの例を示す図である。
パイプライン処理のステージ(以下パイプラインステージという)は、分岐予測を行うステージST1、命令フェッチを行うステージST2、命令のデコードを行うステージST3を有する。さらに、パイプラインステージは、固定小数点演算を行うステージST4、浮動小数点演算を行うステージST5、メモリアクセスを行うステージST6、分岐処理を行うステージST7、コミット(終了処理)を行うステージST8がある。
FIG. 4 is a diagram showing an example of each stage of pipeline processing.
The stages of pipeline processing (hereinafter referred to as pipeline stages) include a stage ST1 that performs branch prediction, a stage ST2 that performs instruction fetch, and a stage ST3 that performs instruction decoding. Furthermore, the pipeline stages include a stage ST4 that performs fixed-point calculations, a stage ST5 that performs floating-point calculations, a stage ST6 that performs memory access, a stage ST7 that performs branch processing, and a stage ST8 that performs commit (termination processing).

ステージST4は、固定小数点演算命令を優先度順に発行するステージST4aと、固定小数点演算を実行するステージST4bを含む。ステージST5は、浮動小数点演算命令を優先度順に発行するステージST5aと、浮動小数点演算を実行するステージST5bを含む。ステージST6は、メモリアクセス命令を優先度順に発行するステージST6aと、アドレス計算(変換)を行うステージST6bと、メモリアクセスを実行するステージST6cを含む。ステージST7は、分岐命令を優先度順に発行するステージST7aと、分岐命令に応じた分岐制御を行うステージST7bを含む。 Stage ST4 includes a stage ST4a that issues fixed-point arithmetic instructions in order of priority, and a stage ST4b that executes fixed-point arithmetic. Stage ST5 includes a stage ST5a that issues floating point arithmetic instructions in order of priority, and a stage ST5b that executes floating point arithmetic. Stage ST6 includes a stage ST6a that issues memory access commands in priority order, a stage ST6b that performs address calculation (conversion), and a stage ST6c that executes memory access. Stage ST7 includes a stage ST7a that issues branch instructions in order of priority, and a stage ST7b that performs branch control according to the branch instructions.

以下、試験対象サーバシステム21による動作情報の取得処理の例を説明する。
図5は、動作情報の取得処理の一例の流れを示すフローチャートである。
まず、プロセッサ31は、たとえば、外部記憶装置33に記憶されているテストプログラムを読み出してテストプログラムの実行を開始する(ステップS10)。トレーサモジュール31bのコントローラ31b1は、状態を確認するハードウェアモジュールの番号を示すモジュール番号iを0に設定する(ステップS11)。そして、コントローラ31b1は、モジュール番号iのハードウェアモジュールの状態(モジュール状態)を確認する(ステップS12)。
An example of the operation information acquisition process by the test target server system 21 will be described below.
FIG. 5 is a flowchart illustrating an example of the operation information acquisition process.
First, the processor 31 reads, for example, a test program stored in the external storage device 33 and starts executing the test program (step S10). The controller 31b1 of the tracer module 31b sets the module number i, which indicates the number of the hardware module whose state is to be checked, to 0 (step S11). Then, the controller 31b1 checks the state (module state) of the hardware module with module number i (step S12).

そして、コントローラ31b1は、モジュール番号iのハードウェアモジュールが、たとえば、図4に示したパイプラインステージにおいて、以下のようなイベントを発生した場合、以下のような動作情報を取得する(ステップS13:YES)。 Then, when the hardware module with module number i generates the following event in the pipeline stage shown in FIG. 4, the controller 31b1 acquires the following operation information (step S13: YES).

モジュール番号iのハードウェアモジュールがステージST1において分岐予測を失敗した場合、コントローラ31b1は、そのハードウェアモジュールが出力する分岐予測の失敗を示す情報を動作情報として取得する。 When the hardware module with module number i fails in branch prediction at stage ST1, the controller 31b1 acquires information indicating the failure in branch prediction outputted by the hardware module as operation information.

モジュール番号iのハードウェアモジュールがステージST3において命令のデコードを行った場合、コントローラ31b1は、そのハードウェアモジュールが出力するデコード結果である命令データを取得する。また、コントローラ31b1は、デコードされた命令に割り当てられたパイプラインIDを取得する。複数の命令がデコードされる場合、コントローラ31b1はそれぞれの命令についてのパイプラインIDを取得する。 When the hardware module with module number i decodes an instruction in stage ST3, the controller 31b1 acquires instruction data that is the decoding result output by the hardware module. The controller 31b1 also obtains the pipeline ID assigned to the decoded instruction. When multiple instructions are decoded, the controller 31b1 obtains a pipeline ID for each instruction.

モジュール番号iのハードウェアモジュールがステージST4~ST7において物理汎用レジスタへのライトを行った場合、コントローラ31b1は、そのハードウェアモジュールが出力する物理汎用レジスタの番号とライトデータを取得する。 When the hardware module with module number i writes to a physical general-purpose register in stages ST4 to ST7, the controller 31b1 acquires the physical general-purpose register number and write data output by the hardware module.

モジュール番号iのハードウェアモジュールがステージST4b,ST5bにおいてストアデータを生成した場合、コントローラ31b1は、そのハードウェアモジュールが出力するストアデータとストア命令に割り当てられたパイプラインIDを取得する。 When the hardware module with module number i generates store data in stages ST4b and ST5b, the controller 31b1 acquires the store data output by the hardware module and the pipeline ID assigned to the store instruction.

モジュール番号iのハードウェアモジュールがステージST6cにおいてロード命令を完了した場合、コントローラ31b1は、そのハードウェアモジュールが出力するロードデータとロード命令に割り当てられたパイプラインIDを取得する。 When the hardware module with module number i completes the load instruction in stage ST6c, the controller 31b1 acquires the load data output by the hardware module and the pipeline ID assigned to the load instruction.

モジュール番号iのハードウェアモジュールがステージST6bにおいてアドレス変換を完了した場合、コントローラ31b1は、そのハードウェアモジュールが出力する仮想アドレス、物理アドレスを取得する。さらにコントローラ31b1は、メモリアクセス命令(ロード命令またはストア命令)に割り当てられたパイプラインIDを取得する。 When the hardware module with module number i completes address translation in stage ST6b, the controller 31b1 acquires the virtual address and physical address output by that hardware module. Further, the controller 31b1 obtains the pipeline ID assigned to the memory access instruction (load instruction or store instruction).

モジュール番号iのハードウェアモジュールがステージST8の処理を完了した場合、コントローラ31b1は、そのハードウェアモジュールが出力する以下の動作情報を取得する。コントローラ31b1は、現在のプログラムカウンタの値、実行完了した命令数、実行完了した命令に割り当てられたパイプラインIDを取得する。さらにコントローラ31b1は、実行完了した命令に関してテストプログラムに記述されていた論理汎用レジスタの番号、実際にその命令の実行時に用いた物理汎用レジスタの番号を取得する。また、コントローラ31b1は、物理汎用レジスタへのライトを発生させた命令に割り当てられたパイプラインID、命令実行完了時点での権限レベルを取得する。 When the hardware module with module number i completes the processing of stage ST8, the controller 31b1 acquires the following operation information output by that hardware module. The controller 31b1 acquires the current program counter value, the number of instructions that have completed execution, and the pipeline ID assigned to the instructions that have completed execution. Furthermore, the controller 31b1 acquires the number of the logical general-purpose register written in the test program regarding the instruction that has completed execution, and the number of the physical general-purpose register actually used when executing the instruction. The controller 31b1 also acquires the pipeline ID assigned to the instruction that caused the write to the physical general-purpose register and the authority level at the time of completion of the instruction execution.

モジュール番号iのハードウェアモジュールがステージST1~ST8の処理において、アーキテクチャレジスタへのリードまたはライトを行った場合、コントローラ31b1は、そのハードウェアモジュールが出力するアーキテクチャレジスタの番号を取得する。
また、コントローラ31b1は、そのハードウェアモジュールが出力する、リードまたはライトが行われたことを示すフラグ情報と、リードデータまたはライトデータを取得する。
When the hardware module with module number i reads or writes to an architecture register in the processing of stages ST1 to ST8, the controller 31b1 acquires the number of the architecture register output by that hardware module.
The controller 31b1 also acquires flag information indicating that a read or write has been performed, and read data or write data output by the hardware module.

モジュール番号iのハードウェアモジュールにおいて、ステージST1~ST8の処理についての例外(異常)が発生した場合、コントローラ31b1は、そのハードウェアモジュールが出力する例外が発生した旨を示す情報を取得する。 When an exception (abnormality) occurs in the processing of stages ST1 to ST8 in the hardware module with module number i, the controller 31b1 acquires information output by the hardware module indicating that an exception has occurred.

モジュール番号iのハードウェアモジュールにおいて、ステージST1~ST8の処理時にパイプラインフラッシュが発生した場合、コントローラ31b1は、そのハードウェアモジュールが出力するパイプラインフラッシュが発生した旨を示す情報を取得する。 When a pipeline flush occurs in the hardware module with module number i during the processing of stages ST1 to ST8, the controller 31b1 acquires information indicating that a pipeline flush has occurred that is output by the hardware module.

コントローラ31b1は、モジュール番号iのハードウェアモジュールが上記の何れかのイベントの発生を示す情報を出力している場合、そのイベントに関連する動作情報を取得し、RAM31b2に書き込む(ステップS14)。コントローラ31b1は、ステップS14の処理後、または、動作情報を取得しない場合(ステップS13:NO)、i<N(全観測対象ハードウェアモジュール数)である間(ステップS15:NO)、i=i+1とする(ステップS16)。ステップS16の処理後、ステップS12からの処理が繰り返される。 When the hardware module with module number i outputs information indicating the occurrence of any of the above events, the controller 31b1 acquires operational information related to the event and writes it into the RAM 31b2 (step S14). After the process in step S14, or when the operation information is not acquired (step S13: NO), while i<N (the total number of observation target hardware modules) (step S15: NO), the controller 31b1 calculates i=i+1. (Step S16). After the processing in step S16, the processing from step S12 is repeated.

i=Nとなった場合(ステップS15:YES)、テストプログラムの実行が終了していなければ(ステップS17:NO)、テストプログラムを実行するコア31a1~31amによって、命令実行サイクルが進められる(ステップS18)。ステップS18の処理後、ステップS11からの処理が繰り返される。 When i=N (step S15: YES), if the execution of the test program has not finished (step S17: NO), the instruction execution cycle is advanced by the cores 31a1 to 31am that execute the test program (step S18). After the processing in step S18, the processing from step S11 is repeated.

テストプログラムの実行が終了した場合(ステップS17:YES)、コントローラ31b1は、RAM31b2に記憶されている動作情報を出力させ、記憶装置(主記憶装置32または外部記憶装置33)に記憶させる(ステップS19)。以上で、動作情報の取得処理が終了する。 When the execution of the test program is completed (step S17: YES), the controller 31b1 outputs the operation information stored in the RAM 31b2 and stores it in the storage device (main storage device 32 or external storage device 33) (step S19). ). This completes the operation information acquisition process.

なお、上記の処理の順序は一例であり、適宜順序が入れ替えられてもよい。また、動作情報は、主記憶装置32または外部記憶装置33に記憶されなくてもよく、たとえば、図示しない通信インタフェースによって、デバッグ作業実行サーバ22に送信されるようにしてもよい。 Note that the order of the above processing is an example, and the order may be changed as appropriate. Further, the operation information does not need to be stored in the main storage device 32 or the external storage device 33, and may be transmitted to the debugging work execution server 22 through a communication interface (not shown), for example.

図6は、各命令実行サイクルにおいて取得された動作情報の一例を示す図である。図6において、“N/A”は該当する動作情報が取得されていないことを示す。
命令実行サイクルが980サイクルのとき、命令のデコードにより、2つの命令についてのデコード結果である命令データ“DATA”と、各命令に割り当てられたパイプラインID(デコード命令パイプラインID)“0,1”が取得されている。
FIG. 6 is a diagram illustrating an example of operation information acquired in each instruction execution cycle. In FIG. 6, "N/A" indicates that the corresponding operation information has not been acquired.
When the instruction execution cycle is 980 cycles, by decoding the instruction, the instruction data "DATA" which is the decoding result of two instructions and the pipeline ID (decoded instruction pipeline ID) assigned to each instruction "0, 1" ” has been obtained.

命令実行サイクルが990サイクルのとき、物理汎用レジスタへのライトにより、その物理汎用レジスタの番号“0”とライトデータ(物理汎用レジスタライトデータ)“20”が取得されている。 When the instruction execution cycle is 990 cycles, the physical general-purpose register number "0" and write data (physical general-purpose register write data) "20" are acquired by writing to the physical general-purpose register.

命令実行サイクルが995サイクルのときも、物理汎用レジスタへのライトにより、その物理汎用レジスタの番号“3”とライトデータ“30”が取得されている。
命令実行サイクルが1000サイクルのとき、2つの命令の実行が完了されたことによりプログラムカウンタ値“100”、実行完了命令数“2”、実行完了した命令に割り当てられたパイプラインID(実行完了命令パイプラインID)“0”が取得されている。
Even when the instruction execution cycle is 995 cycles, the physical general-purpose register number "3" and write data "30" are acquired by writing to the physical general-purpose register.
When the instruction execution cycle is 1000 cycles, the execution of two instructions is completed, so the program counter value is "100", the number of executed instructions is "2", and the pipeline ID assigned to the executed instruction (execution completed instruction Pipeline ID) “0” has been acquired.

さらに、実行完了した命令に関してテストプログラムに記述されていた論理汎用レジスタの番号“1,2”と、実際にその命令の実行時に用いた物理汎用レジスタの番号“0,2”が取得されている。この例では、論理汎用レジスタの番号と、物理汎用レジスタの番号が異なるため、たとえば、アウトオブオーダ実行の結果、レジスタリネーミングが行われたことが分かる。また、上記の番号の物理汎用レジスタへのライトを指示した命令に割り当てられたパイプラインID(対象命令パイプラインID)“0,1”と、命令実行完了時点での権限レベル“N”が取得されている。“N”はノーマルを表す。 Furthermore, the logical general-purpose register numbers "1, 2" written in the test program regarding the executed instruction and the physical general-purpose register numbers "0, 2" actually used when executing that instruction are obtained. . In this example, since the numbers of the logical general-purpose registers and the numbers of the physical general-purpose registers are different, it can be seen that register renaming was performed as a result of out-of-order execution, for example. In addition, the pipeline ID (target instruction pipeline ID) “0, 1” assigned to the instruction that instructed the write to the physical general-purpose register with the above number and the authority level “N” at the time of instruction execution completion are obtained. has been done. "N" represents normal.

次に、デバッグ作業実行サーバ22のハードウェア例を示す。
図7は、デバッグ作業実行サーバのハードウェア例を示す図である。
デバッグ作業実行サーバ22は、CPU51、RAM52、HDD53、画像信号処理部54、入力信号処理部55、媒体リーダ56及び通信インタフェース57を有する。上記ユニットは、バスに接続されている。
Next, an example of the hardware of the debugging work execution server 22 will be shown.
FIG. 7 is a diagram illustrating an example of hardware of a debug work execution server.
The debugging work execution server 22 includes a CPU 51 , a RAM 52 , an HDD 53 , an image signal processing section 54 , an input signal processing section 55 , a medium reader 56 , and a communication interface 57 . The above units are connected to a bus.

CPU51は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU51は、HDD53に記憶されたプログラムやデータの少なくとも一部をRAM52にロードし、プログラムを実行する。なお、CPU51は複数のプロセッサコアを備えてもよく、デバッグ作業実行サーバ22は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。 The CPU 51 is a processor that includes an arithmetic circuit that executes program instructions. The CPU 51 loads at least part of the program and data stored in the HDD 53 into the RAM 52, and executes the program. Note that the CPU 51 may include multiple processor cores, the debug work execution server 22 may include multiple processors, and the processes described below may be executed in parallel using multiple processors or processor cores. good. Furthermore, a set of multiple processors (multiprocessor) may be referred to as a "processor."

RAM52は、CPU51が実行するプログラムやCPU51が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、デバッグ作業実行サーバ22は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。 The RAM 52 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 51 and data used for calculations by the CPU 51. Note that the debugging work execution server 22 may include a type of memory other than RAM, or may include a plurality of memories.

HDD53は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、デバッグ用情報の生成などを行う情報処理方法をデバッグ作業実行サーバ22に実行させる情報処理プログラムが含まれる。なお、デバッグ作業実行サーバ22は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。 The HDD 53 is a nonvolatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, and data. The program includes, for example, an information processing program that causes the debugging work execution server 22 to execute an information processing method for generating debugging information. Note that the debugging work execution server 22 may include other types of storage devices such as flash memory and SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.

画像信号処理部54は、CPU51からの命令にしたがって、デバッグ作業実行サーバ22に接続されたディスプレイ54aに画像を出力する。ディスプレイ54aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。 The image signal processing unit 54 outputs an image to a display 54a connected to the debugging work execution server 22 in accordance with instructions from the CPU 51. As the display 54a, a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display (PDP), an organic electro-luminescence (OEL) display, etc. can be used. .

入力信号処理部55は、デバッグ作業実行サーバ22に接続された入力デバイス55aから入力信号を取得し、CPU51に出力する。入力デバイス55aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、デバッグ作業実行サーバ22に、複数の種類の入力デバイスが接続されていてもよい。 The input signal processing unit 55 acquires an input signal from an input device 55a connected to the debugging work execution server 22, and outputs it to the CPU 51. As the input device 55a, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like can be used. Further, a plurality of types of input devices may be connected to the debugging work execution server 22.

媒体リーダ56は、記録媒体56aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体56aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)、Blu-ray(登録商標)などが含まれる。 The medium reader 56 is a reading device that reads programs and data recorded on the recording medium 56a. As the recording medium 56a, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), a semiconductor memory, etc. can be used. Magnetic disks include flexible disks (FDs) and HDDs. Optical discs include CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray (registered trademark), and the like.

媒体リーダ56は、たとえば、記録媒体56aから読み取ったプログラムやデータを、RAM52やHDD53などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU51によって実行される。なお、記録媒体56aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体56aやHDD53を、コンピュータ読み取り可能な記録媒体ということがある。 For example, the media reader 56 copies programs and data read from the recording medium 56a to other recording media such as the RAM 52 and the HDD 53. The read program is executed by the CPU 51, for example. Note that the recording medium 56a may be a portable recording medium, and may be used for distributing programs and data. Furthermore, the recording medium 56a and the HDD 53 are sometimes referred to as computer-readable recording media.

通信インタフェース57は、ネットワーク57aに接続され、ネットワーク57aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース57は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。 The communication interface 57 is an interface that is connected to the network 57a and communicates with other information processing devices via the network 57a. The communication interface 57 may be a wired communication interface connected to a communication device such as a switch via a cable, or a wireless communication interface connected to a base station via a wireless link.

なお、通信インタフェース57は、ネットワーク57aを介して、試験対象サーバシステム21に接続されてもよいし、試験対象サーバシステム21に直接接続されていてもよい。 Note that the communication interface 57 may be connected to the server system under test 21 via the network 57a, or may be directly connected to the server system under test 21.

図2に示した試験対象サーバシステム21についても上記と同様のハードウェア構成にて実現できるが、その場合、CPU51に、図2に示したようなトレーサモジュール31bが含まれることになる。 The test target server system 21 shown in FIG. 2 can also be realized with the same hardware configuration as above, but in that case, the CPU 51 would include the tracer module 31b as shown in FIG.

次に、デバッグ作業実行サーバ22の機能及び処理手順を説明する。
図8は、デバッグ作業実行サーバの機能例を示すブロック図である。
デバッグ作業実行サーバ22は、動作情報取得部60、デバッグ用情報生成部61、デバッグ用情報出力部62、デバッグ作業実行部63、記憶部64を有する。
Next, the functions and processing procedures of the debugging work execution server 22 will be explained.
FIG. 8 is a block diagram showing a functional example of the debugging work execution server.
The debug work execution server 22 includes an operation information acquisition section 60 , a debug information generation section 61 , a debug information output section 62 , a debug work execution section 63 , and a storage section 64 .

動作情報取得部60、デバッグ用情報生成部61、デバッグ用情報出力部62、デバッグ作業実行部63は、たとえば、CPU51が実行するプログラムモジュールを用いて実装できる。記憶部64は、たとえば、RAM52またはHDD53に確保した記憶領域を用いて実装できる。 The operation information acquisition section 60, the debug information generation section 61, the debug information output section 62, and the debug work execution section 63 can be implemented using, for example, a program module executed by the CPU 51. The storage unit 64 can be implemented using, for example, a storage area secured in the RAM 52 or the HDD 53.

動作情報取得部60は、動作情報を取得する。動作情報取得部60は、試験対象サーバシステム21の外部記憶装置33に直接アクセス可能であれば、外部記憶装置33に記憶された動作情報を読み出すことで取得する。試験対象サーバシステム21が動作情報をデバッグ作業実行サーバ22に送信する場合、動作情報取得部60は、通信インタフェース57を用いて動作情報を受信することによって取得する。動作情報取得部60は、取得した動作情報を一旦、記憶部64に記憶する。 The motion information acquisition unit 60 acquires motion information. If the operational information acquisition unit 60 can directly access the external storage device 33 of the test target server system 21, the operational information acquisition unit 60 acquires the operational information stored in the external storage device 33 by reading it. When the test target server system 21 transmits operational information to the debugging work execution server 22 , the operational information acquisition unit 60 acquires the operational information by receiving the operational information using the communication interface 57 . The motion information acquisition unit 60 temporarily stores the acquired motion information in the storage unit 64.

デバッグ用情報生成部61は、記憶部64に記憶された動作情報に基づいてデバッグ用情報を生成する。
デバッグ用情報出力部62は、デバッグ用情報をディスプレイ54aに表示させる。
The debugging information generation unit 61 generates debugging information based on the operation information stored in the storage unit 64.
The debugging information output unit 62 displays debugging information on the display 54a.

デバッグ作業実行部63は、たとえば、シミュレータなどにより、テストプログラムによる期待動作を表す期待動作情報を生成し、ディスプレイ54aに表示させる。デバッグ作業実行部63は、デバッグ用情報と期待動作情報に基づいて、プロセッサ31の問題動作を特定し、その結果をディスプレイ54aに表示させるようにしてもよい。 The debugging work execution unit 63 uses, for example, a simulator to generate expected behavior information representing the expected behavior of the test program, and causes the display 54a to display the generated expected behavior information. The debugging work execution unit 63 may identify the problematic operation of the processor 31 based on the debugging information and the expected operation information, and display the result on the display 54a.

記憶部64は、取得された動作情報、生成された(または生成途中の)デバッグ用情報などを記憶する。
図9は、デバッグ用情報の生成及び表示処理の一例の流れを示すフローチャートである。なお、以下では、図6に示した動作情報を以下の種別A~Jに分けて説明する。
The storage unit 64 stores acquired operational information, generated (or in the process of being generated) debugging information, and the like.
FIG. 9 is a flowchart showing an example of the process of generating and displaying debugging information. In addition, below, the operation information shown in FIG. 6 will be explained by dividing it into the following types A to J.

種別Aの動作情報は、プログラムカウンタ値、実行完了命令数、実行完了命令パイプラインIDである。
種別Bの動作情報は、命令データ、デコード命令パイプラインIDである。
The operation information of type A is the program counter value, the number of executed instructions, and the executed instruction pipeline ID.
Type B operation information is instruction data and decode instruction pipeline ID.

種別Cの動作情報は、権限レベルである。
種別Dの動作情報は、アーキテクチャレジスタ番号、アーキテクチャレジスタライトデータ、アーキテクチャレジスタリードデータである。
The operation information of type C is the authority level.
Type D operation information is architecture register number, architecture register write data, and architecture register read data.

種別Eの動作情報は、物理汎用レジスタ番号、物理汎用レジスタライトデータ、完了物理汎用レジスタ番号、完了論理汎用レジスタ番号、対象命令パイプラインIDである。
種別Fの動作情報は、ストアデータ、ストア命令パイプラインID、ロードデータ、ロード命令パイプラインIDである。
The operation information of type E is a physical general-purpose register number, physical general-purpose register write data, completed physical general-purpose register number, completed logical general-purpose register number, and target instruction pipeline ID.
The operation information of type F is store data, store instruction pipeline ID, load data, and load instruction pipeline ID.

種別Gの動作情報は、仮想アドレス、物理アドレス、ロード・ストア命令パイプラインIDである。
種別Hの動作情報は、分岐予測失敗情報である。
The operation information of type G is a virtual address, a physical address, and a load/store instruction pipeline ID.
The operation information of type H is branch prediction failure information.

種別Iの動作情報は、例外発生情報である。
種別Jの動作情報は、パイプラインフラッシュ情報である。
また、以下では、前述の命令実行サイクルをシミュレーション時刻と呼ぶ。
Type I operation information is exception occurrence information.
The operation information of type J is pipeline flush information.
Furthermore, hereinafter, the above-mentioned instruction execution cycle will be referred to as simulation time.

デバッグ用情報生成部61は、シミュレーション時刻tをシミュレーション開始時刻tstartに設定する(ステップS20)。デバッグ用情報生成部61は、記憶部64に記憶されている動作情報のうち、シミュレーション時刻tにトレーサモジュール31bによって取得された動作情報を読み込む(ステップS21)。 The debug information generation unit 61 sets the simulation time t to the simulation start time t start (step S20). The debugging information generating unit 61 reads the operational information acquired by the tracer module 31b at the simulation time t from among the operational information stored in the storage unit 64 (step S21).

そして、デバッグ用情報生成部61は、読み込んだ動作情報に、上記の種別B,E,F,Gの動作情報があるか否かを判定する(ステップS22)。デバッグ用情報生成部61は、種別B,E,F,Gの動作情報があると判定した場合、後述のデータ登録処理を行う(ステップS23)。 Then, the debug information generation unit 61 determines whether or not the read operation information includes operation information of types B, E, F, and G (step S22). When the debugging information generation unit 61 determines that there is operation information of types B, E, F, and G, it performs a data registration process to be described later (step S23).

ステップS23の処理後、または、種別B,E,F,Gの動作情報がないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に基づいて、物理汎用レジスタへのライトがあるか否かを判定する(ステップS24)。デバッグ用情報生成部61は、物理汎用レジスタへのライトがあると判定した場合、後述のライトデータ登録処理を行う(ステップS25)。 After the processing in step S23, or when it is determined that there is no operation information of type B, E, F, or G, the debugging information generation unit 61 determines whether to write to the physical general-purpose register based on the read operation information. It is determined whether or not (step S24). When the debugging information generation unit 61 determines that there is a write to the physical general-purpose register, it performs a write data registration process to be described later (step S25).

ステップS25の処理後、または、物理汎用レジスタへのライトがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に基づいて、実行完了命令があるか否かを判定する(ステップS26)。実行完了命令があると判定された場合、デバッグ用情報出力部62は、後述の実行完了命令と関連情報の表示処理を行う(ステップS27)。 After the processing in step S25, or when it is determined that there is no write to the physical general-purpose register, the debugging information generation unit 61 determines whether or not there is an execution completion instruction based on the read operation information (step S26). If it is determined that there is an execution completion instruction, the debugging information output unit 62 performs a process of displaying the execution completion instruction and related information, which will be described later (step S27).

ステップS27の処理後、または、実行完了命令がないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に、種別D,H,Iのデータがあるか否かを判定する(ステップS28)。種別D,H,Iのデータがあると判定された場合、デバッグ用情報出力部62は、後述の即時データ表示処理を行う(ステップS29)。 After the processing in step S27, or when it is determined that there is no execution completion instruction, the debugging information generation unit 61 determines whether or not the read operation information includes data of types D, H, and I (step S28). If it is determined that there is data of type D, H, or I, the debugging information output unit 62 performs an immediate data display process to be described later (step S29).

ステップS29の処理後、または、種別D,H,Iのデータがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に基づいて、パイプラインフラッシュがあるか否かを判定する(ステップS30)。パイプラインフラッシュがあると判定された場合、デバッグ用情報生成部61とデバッグ用情報出力部62は、後述のパイプラインフラッシュ処理を行う(ステップS31)。 After the process in step S29, or when it is determined that there is no data of type D, H, or I, the debugging information generation unit 61 determines whether or not there is a pipeline flush based on the read operation information. (Step S30). If it is determined that there is a pipeline flush, the debug information generation unit 61 and the debug information output unit 62 perform pipeline flush processing, which will be described later (step S31).

ステップS31の処理後、または、パイプラインフラッシュがないと判定した場合、デバッグ用情報生成部61は、シミュレーション時刻tが終了シミュレーション時刻tendに達したか否かを判定する(ステップS32)。終了シミュレーション時刻tendは、プロセッサ31において動作情報の取得が行われた最後のシミュレーション時刻(命令実行サイクル)を表す。 After the processing in step S31, or when it is determined that there is no pipeline flush, the debugging information generation unit 61 determines whether the simulation time t has reached the end simulation time t end (step S32). The end simulation time t end represents the last simulation time (instruction execution cycle) at which the processor 31 acquires the operation information.

デバッグ用情報生成部61は、シミュレーション時刻tが終了シミュレーション時刻tendに達していないと判定した場合、シミュレーション時刻tを+1し(ステップS33)、ステップS21からの処理を繰り返す。デバッグ用情報生成部61は、シミュレーション時刻tが終了シミュレーション時刻tendに達していると判定した場合、デバッグ用情報の生成及び表示処理を終了する。 If the debugging information generation unit 61 determines that the simulation time t has not reached the end simulation time t end , it increments the simulation time t by 1 (step S33), and repeats the processing from step S21. If the debugging information generation unit 61 determines that the simulation time t has reached the end simulation time tend, it ends the debugging information generation and display processing.

なお、図9に示した処理の順序は一例であり、適宜順序が入れ替えられてもよい。たとえば、ステップS28,S29の処理は、ステップS22,S23の処理の前に行ってもよい。 Note that the order of processing shown in FIG. 9 is an example, and the order may be changed as appropriate. For example, the processes in steps S28 and S29 may be performed before the processes in steps S22 and S23.

図10は、データ登録処理の一例の流れを示すフローチャートである。
データ登録処理が開始されると、デバッグ用情報生成部61は、読み込んだ動作情報にデコードされた命令データがあるか否かを判定する(ステップS40)。デバッグ用情報生成部61は、命令データがあると判定した場合、命令データを、記憶部64に構築されたデータテーブルに登録する(ステップS41)。命令データは、データテーブルにおいて、デコード命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、命令データの書き込み用フィールドに書き込まれる。
FIG. 10 is a flowchart showing an example of the flow of data registration processing.
When the data registration process is started, the debug information generation unit 61 determines whether or not the read operation information includes decoded instruction data (step S40). If the debugging information generation unit 61 determines that there is instruction data, it registers the instruction data in the data table constructed in the storage unit 64 (step S41). The instruction data is written in a write field for instruction data in an area in which operation information linked to the decode instruction pipeline ID is written in the data table.

ステップS41の処理後、または、命令データがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に物理・論理汎用レジスタ番号の変換データがあるか否かを判定する(ステップS42)。物理・論理汎用レジスタ番号の変換データの有無は、たとえば、図6に示した動作情報のうち、完了物理汎用レジスタ番号と、完了論理汎用レジスタ番号とから判別できる。図6の例では、完了物理汎用レジスタ番号と、完了論理汎用レジスタ番号とが異なるため、変換データがある(レジスタリネーミングが行われた)ものと判定される。 After the processing in step S41, or when it is determined that there is no instruction data, the debugging information generation unit 61 determines whether or not the read operation information includes conversion data of physical/logical general-purpose register numbers (step S42). ). The presence or absence of physical/logical general-purpose register number conversion data can be determined from, for example, the completed physical general-purpose register number and the completed logical general-purpose register number among the operation information shown in FIG. In the example of FIG. 6, since the completed physical general-purpose register number and the completed logical general-purpose register number are different, it is determined that conversion data exists (register renaming has been performed).

デバッグ用情報生成部61は、変換データがあると判定した場合、物理・論理汎用レジスタ番号(図6では完了物理汎用レジスタ番号及び完了論理汎用レジスタ番号)を、上記データテーブルに登録する(ステップS43)。物理・論理汎用レジスタ番号は、データテーブルにおいて、対象命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、物理・論理汎用レジスタ番号の書き込み用フィールドに書き込まれる。 When the debugging information generation unit 61 determines that there is conversion data, it registers the physical/logical general-purpose register numbers (in FIG. 6, the completion physical general-purpose register number and the completion logical general-purpose register number) in the data table (step S43). ). The physical/logical general-purpose register number is written in the write field for the physical/logical general-purpose register number in the area in which the operation information linked to the target instruction pipeline ID is written in the data table.

ステップS43の処理後、または、変換データがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報にストアデータがあるか否かを判定する(ステップS44)。ストアデータがあると判定した場合、デバッグ用情報生成部61は、ストアデータを、上記データテーブルに登録する(ステップS45)。ストアデータは、データテーブルにおいて、ストア命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、ストアデータの書き込み用フィールドに書き込まれる。 After the processing in step S43, or when it is determined that there is no conversion data, the debugging information generation unit 61 determines whether or not there is store data in the read operation information (step S44). If it is determined that there is store data, the debug information generation unit 61 registers the store data in the data table (step S45). The store data is written in a write field for store data among the areas in the data table where the operation information linked to the store instruction pipeline ID is written.

ステップS45の処理後、または、ストアデータがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報にロードデータがあるか否かを判定する(ステップS46)。ロードデータがあると判定した場合、デバッグ用情報生成部61は、ロードデータを、上記データテーブルに登録する(ステップS47)。ロードデータは、データテーブルにおいて、ロード命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、ロードデータの書き込み用フィールドに書き込まれる。 After the processing in step S45, or when it is determined that there is no store data, the debugging information generation unit 61 determines whether or not the read operation information includes load data (step S46). If it is determined that there is load data, the debug information generation unit 61 registers the load data in the data table (step S47). The load data is written in a field for writing load data in an area in which operation information linked to the load instruction pipeline ID is written in the data table.

ステップS47の処理後、または、ロードデータがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報にアドレス変換データがあるか否かを判定する(ステップS48)。アドレス変換データの有無は、たとえば、図6に示した動作情報に仮想アドレスと物理アドレスとが含まれているか否かにより判別できる。仮想アドレスと物理アドレスとが含まれている場合、アドレス変換データがある(アドレス変換が行われた)ものと判定される。 After the processing in step S47, or when it is determined that there is no load data, the debugging information generation unit 61 determines whether or not the read operation information includes address conversion data (step S48). The presence or absence of address translation data can be determined, for example, by whether or not the operation information shown in FIG. 6 includes a virtual address and a physical address. If a virtual address and a physical address are included, it is determined that address translation data exists (address translation has been performed).

デバッグ用情報生成部61は、アドレス変換データがあると判定した場合、仮想アドレスと物理アドレスを、上記データテーブルに登録する(ステップS49)。物理・論理汎用レジスタ番号は、データテーブルにおいて、ロード・ストア命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、仮想アドレスと物理アドレスの書き込み用フィールドに書き込まれる。 If the debugging information generation unit 61 determines that there is address translation data, it registers the virtual address and physical address in the data table (step S49). The physical/logical general-purpose register number is written in the virtual address and physical address write fields in the data table where the operation information linked to the load/store instruction pipeline ID is written.

ステップS49の処理後、または、アドレス変換データがないと判定した場合、デバッグ用情報生成部61は、データ登録処理を終える。
なお、上記の処理の順序は一例であり、適宜順序が入れ替えられてもよい。
After the process in step S49, or when it is determined that there is no address translation data, the debug information generation unit 61 ends the data registration process.
Note that the order of the above processing is an example, and the order may be changed as appropriate.

図11は、データテーブルの登録例を示す図である。
図11の例のデータテーブルでは、パイプラインID(0,1,2,…,MAX(最大値))と紐付けられた動作情報の格納位置がポインタで指定されている。このパイプラインIDは、前述の実行完了命令パイプラインID、デコード命令パイプラインID、対象命令パイプラインID、ストア命令パイプラインID、ロード命令パイプラインID、またはロード・ストア命令パイプラインIDとして用いられている。
FIG. 11 is a diagram showing an example of registration of a data table.
In the data table in the example of FIG. 11, the storage position of the motion information associated with the pipeline ID (0, 1, 2, . . . , MAX (maximum value)) is specified by a pointer. This pipeline ID is used as the above-mentioned execution completion instruction pipeline ID, decode instruction pipeline ID, target instruction pipeline ID, store instruction pipeline ID, load instruction pipeline ID, or load/store instruction pipeline ID. ing.

たとえば、図11に示すように、パイプラインID=0に紐付けられた動作情報として、命令データ“0x2a0803e0”、物理汎用レジスタ番号“0”、論理汎用レジスタ番号“1”などが登録されている。また、パイプラインID=2に紐付けられた動作情報として、命令データ“0x9b084ee8”、ストアデータ“0x20”、ロードデータ“N/A”、仮想アドレス“0x1000”、物理アドレス“0x1000”などが登録されている。 For example, as shown in FIG. 11, instruction data "0x2a0803e0", physical general-purpose register number "0", logical general-purpose register number "1", etc. are registered as operation information linked to pipeline ID = 0. . In addition, instruction data “0x9b084ee8”, store data “0x20”, load data “N/A”, virtual address “0x1000”, physical address “0x1000”, etc. are registered as operation information linked to pipeline ID = 2. has been done.

このように、デバッグ用情報生成部61は、パイプラインIDごとに動作情報を収集していくことで、デバッグ用情報を生成している。これにより、パイプライン処理を用いた複雑な処理を行うプロセッサ31についても適切なデバッグ用情報を生成可能である。また、動作情報から、論理汎用レジスタ番号と物理汎用レジスタ番号とを対応付けて収集することで、レジスタリネーミングが生じた場合にも適切なデバッグ用情報を生成可能である。 In this way, the debugging information generation unit 61 generates debugging information by collecting operation information for each pipeline ID. Thereby, appropriate debugging information can be generated even for the processor 31 that performs complex processing using pipeline processing. Furthermore, by collecting logical general-purpose register numbers and physical general-purpose register numbers in association with each other from operation information, it is possible to generate appropriate debugging information even when register renaming occurs.

図9のライトデータ登録処理では、デバッグ用情報生成部61は、ライトデータを、記憶部64に構築されたライトデータ登録用のデータテーブルに登録する。
図12は、ライトデータ登録用のデータテーブルの一例を示す図である。
In the write data registration process of FIG. 9, the debugging information generation unit 61 registers write data in the data table for write data registration built in the storage unit 64.
FIG. 12 is a diagram showing an example of a data table for registering write data.

ライトデータ登録用のデータテーブルには、ライトが行われた物理汎用レジスタを示す物理汎用レジスタ番号とライトデータが書き込まれる。ライトデータ登録用のデータテーブルに既に同じ物理汎用レジスタ番号が登録されている場合、ライトデータが上書きされる。 In the data table for registering write data, the physical general-purpose register number indicating the physical general-purpose register to which the write was performed and the write data are written. If the same physical general-purpose register number is already registered in the data table for write data registration, the write data will be overwritten.

図13は、実行完了命令と関連情報の表示処理の一例の流れを示すフローチャートである。
まず、デバッグ用情報出力部62は、読み込まれた動作情報に含まれるシミュレーション時刻t、権限レベル、プログラムカウンタ値をディスプレイ54aに表示させる(ステップS50)。さらに、デバッグ用情報出力部62は、実行完了命令パイプラインIDに紐付けられ、データテーブルに登録された命令データを、記憶部64から読み出してディスプレイ54aに表示させる(ステップS51)。
FIG. 13 is a flowchart illustrating an example of a process for displaying execution completion commands and related information.
First, the debugging information output unit 62 causes the display 54a to display the simulation time t, authority level, and program counter value included in the read operation information (step S50). Furthermore, the debugging information output unit 62 reads out the instruction data linked to the execution completion instruction pipeline ID and registered in the data table from the storage unit 64 and displays it on the display 54a (step S51).

その後、デバッグ用情報生成部61は、実行完了命令パイプラインIDに紐付けられた物理汎用レジスタ番号が図11に示したようなデータテーブルに登録済であるか否かを判定する(ステップS52)。物理汎用レジスタ番号が登録済であると判定した場合、デバッグ用情報出力部62は、その物理汎用レジスタ番号とともにデータテーブルに登録されている論理汎用レジスタ番号を、記憶部64から読み出してディスプレイ54aに表示させる(ステップS53)。また、デバッグ用情報出力部62は、その物理汎用レジスタ番号と、図12に示したライトデータ登録用のデータテーブルに登録されているライトデータを、記憶部64から読み出してディスプレイ54aに表示させる(ステップS54)。 After that, the debugging information generation unit 61 determines whether the physical general-purpose register number linked to the execution completion instruction pipeline ID has been registered in the data table as shown in FIG. 11 (step S52). . If it is determined that the physical general-purpose register number has been registered, the debugging information output unit 62 reads out the logical general-purpose register number registered in the data table together with the physical general-purpose register number from the storage unit 64 and displays it on the display 54a. It is displayed (step S53). Further, the debugging information output unit 62 reads out the physical general-purpose register number and the write data registered in the data table for write data registration shown in FIG. 12 from the storage unit 64 and displays them on the display 54a. Step S54).

ステップS54の処理後、または物理汎用レジスタ番号が登録済でないと判定した場合、デバッグ用情報出力部62は、実行完了命令パイプラインIDに紐付けられたストアデータがデータテーブルに登録済であるか否かを判定する(ステップS55)。ストアデータが登録済であると判定した場合、デバッグ用情報出力部62は、ストアデータとそのストアデータとともにデータテーブルに登録されている仮想アドレス及び物理アドレスを、記憶部64から読み出してディスプレイ54aに表示させる(ステップS56)。 After the processing in step S54, or if it is determined that the physical general-purpose register number has not been registered, the debugging information output unit 62 determines whether the store data linked to the execution completed instruction pipeline ID has been registered in the data table. It is determined whether or not (step S55). If it is determined that the store data has been registered, the debugging information output unit 62 reads the store data and the virtual address and physical address registered in the data table together with the store data from the storage unit 64 and displays them on the display 54a. It is displayed (step S56).

ステップS56の処理後、またはストアデータが登録済でないと判定した場合、デバッグ用情報出力部62は、実行完了命令パイプラインIDに紐付けられたロードデータがデータテーブルに登録済であるか否かを判定する(ステップS57)。ロードデータが登録済であると判定した場合、デバッグ用情報出力部62は、ロードデータとそのロードデータとともにデータテーブルに登録されている仮想アドレス及び物理アドレスを、記憶部64から読み出してディスプレイ54aに表示させる(ステップS58)。 After the process of step S56 or when it is determined that the store data has not been registered, the debugging information output unit 62 determines whether the load data linked to the execution completion instruction pipeline ID has been registered in the data table. is determined (step S57). If it is determined that the load data has been registered, the debugging information output unit 62 reads the load data and the virtual address and physical address registered in the data table together with the load data from the storage unit 64 and displays them on the display 54a. It is displayed (step S58).

ステップS58の処理後、またはロードデータが登録済みでないと判定した場合、デバッグ用情報出力部62(またはデバッグ用情報生成部61)は実行完了命令パイプラインIDに紐付けられた動作情報をデータテーブルから削除する(ステップS59)。 After the process of step S58 or when it is determined that the load data has not been registered, the debugging information output unit 62 (or the debugging information generating unit 61) outputs the operation information linked to the execution completion instruction pipeline ID into a data table. (Step S59).

その後、デバッグ用情報出力部62は、実行完了命令と関連情報の表示処理を終える。
なお、上記の処理の順序は一例であり、各種動作情報の表示順序などについては適宜入れ替えられてもよい。
Thereafter, the debugging information output unit 62 finishes displaying the execution completion instruction and related information.
Note that the above processing order is an example, and the display order of various types of operation information may be changed as appropriate.

図14は、即時データ表示処理の一例の流れを示すフローチャートである。
デバッグ用情報出力部62は、読み込まれた動作情報にアーキテクチャレジスタリード・ライトデータ(リードデータまたはライトデータ)があるか否かを判定する(ステップS60)。アーキテクチャレジスタリード・ライトデータがあると判定した場合、デバッグ用情報出力部62は、読み込まれた動作情報に含まれるシミュレーション時刻t、アーキテクチャレジスタリード・ライト情報をディスプレイ54aに表示させる(ステップS61)。アーキテクチャレジスタリード・ライト情報には、アーキテクチャレジスタ番号、アーキテクチャリード・ライトデータが含まれる。
FIG. 14 is a flowchart showing an example of the flow of the instant data display process.
The debug information output unit 62 determines whether the read operation information includes architecture register read/write data (read data or write data) (step S60). If it is determined that there is architecture register read/write data, the debugging information output unit 62 causes the display 54a to display the simulation time t and the architecture register read/write information included in the read operation information (step S61). The architecture register read/write information includes an architecture register number and architecture read/write data.

ステップS61の処理後、またはアーキテクチャレジスタリード・ライトデータがないと判定した場合、デバッグ用情報出力部62は、読み込まれた動作情報に分岐予測失敗情報があるか否かを判定する(ステップS62)。分岐予測失敗情報があると判定した場合、デバッグ用情報出力部62は、読み込まれた動作情報に含まれるシミュレーション時刻tと分岐予測失敗情報をディスプレイ54aに表示させる(ステップS63)。 After the processing in step S61, or when it is determined that there is no architecture register read/write data, the debugging information output unit 62 determines whether or not the read operation information includes branch prediction failure information (step S62). . If it is determined that there is branch prediction failure information, the debugging information output unit 62 causes the display 54a to display the simulation time t and the branch prediction failure information included in the read operation information (step S63).

ステップS63の処理後、または分岐予測失敗情報がないと判定した場合、デバッグ用情報出力部62は、読み込まれた動作情報に例外発生情報があるか否かを判定する(ステップS64)。例外発生情報があると判定した場合、デバッグ用情報出力部62は、読み込まれた動作情報に含まれるシミュレーション時刻tと例外発生情報をディスプレイ54aに表示させる(ステップS65)。 After the processing in step S63, or when it is determined that there is no branch prediction failure information, the debugging information output unit 62 determines whether or not the read operation information includes exception occurrence information (step S64). If it is determined that there is exception occurrence information, the debugging information output unit 62 causes the display 54a to display the simulation time t and the exception occurrence information included in the read operation information (step S65).

ステップS65の処理後、または例外発生得情報がないと判定した場合、デバッグ用情報出力部62は、即時データ表示処理を終了する。
なお、上記の処理の順序は一例であり、即時データ表示対象の各種動作情報の表示順序などについては適宜入れ替えられてもよい。
After the processing in step S65, or when it is determined that there is no exception occurrence information, the debugging information output unit 62 ends the immediate data display processing.
Note that the above processing order is an example, and the display order of various types of operation information to be immediately displayed may be changed as appropriate.

図15は、パイプラインフラッシュ処理の一例の流れを示すフローチャートである。
デバッグ用情報出力部62は、読み込まれた動作情報に含まれるシミュレーション時刻tとパイプラインフラッシュ情報をディスプレイ54aに表示させる(ステップS70)。
FIG. 15 is a flowchart showing an example of the flow of pipeline flush processing.
The debugging information output unit 62 causes the display 54a to display the simulation time t and pipeline flush information included in the read operation information (step S70).

そして、デバッグ用情報生成部61は、図11に示したようなデータテーブルに登録されている情報を全て削除し(ステップS71)、パイプラインフラッシュ処理を終了する。 Then, the debug information generation unit 61 deletes all information registered in the data table as shown in FIG. 11 (step S71), and ends the pipeline flush process.

図16は、デバッグ用情報のディスプレイへの表示例を示す図である。
図16の例では、シミュレーション時刻tが“1000”のとき完了した加算命令についての情報として、権限レベル“N”(ノーマル)、プログラムカウンタ値“00000100”、命令データ“2a0803e0”が示されている。また、“add r1,0x10,0x10”は、r1=0x10+0x10を表している。“r1”は論理汎用レジスタ番号が“1”であることを示す。“r1 write:0x20”は、物理汎用レジスタ番号“1”の物理汎用レジスタにライトデータ“0x20”が書き込まれたことを示す。
FIG. 16 is a diagram showing an example of how debugging information is displayed on the display.
In the example of FIG. 16, the authority level "N" (normal), the program counter value "00000100", and the instruction data "2a0803e0" are shown as information about the addition instruction completed when the simulation time t is "1000". . Further, "add r1, 0x10, 0x10" represents r1=0x10+0x10. “r1” indicates that the logical general-purpose register number is “1”. “r1 write:0x20” indicates that write data “0x20” has been written to the physical general-purpose register with physical general-purpose register number “1”.

さらに、同じ時刻に完了した加算命令についての情報として、権限レベル“N”、プログラムカウンタ値“00000104”、命令データ“2a0803e2”が示されている。また、“add r2,r1,0x10”は、r2=r1+0x10を表している。“r2”は論理汎用レジスタ番号が“2”であることを示す。“r2 write:0x30”は、物理汎用レジスタ番号“2”の物理汎用レジスタにライトデータ“0x30”が書き込まれたことを示す。 Further, as information about the addition instruction completed at the same time, authority level "N", program counter value "00000104", and instruction data "2a0803e2" are shown. Furthermore, "add r2, r1, 0x10" represents r2=r1+0x10. "r2" indicates that the logical general-purpose register number is "2". “r2 write:0x30” indicates that write data “0x30” has been written to the physical general-purpose register with physical general-purpose register number “2”.

また、シミュレーション時刻tが“1020”のとき完了したストア命令についての情報として、権限レベル“N”、プログラムカウンタ値“00000108”、命令データ“9b084ee8”が示されている。また、“store r1,0x1000”は、論理汎用レジスタ番号“1”の論理汎用レジスタのデータを、図2の主記憶装置32のアドレス“0x1000”にストアすることを示す。“store:VA=0x1000,PA=0x1000,data=0x20”は、仮想アドレス(VA)“0x1000”、物理アドレス(PA)“0x1000”に、ストアデータ“0x20”がストアされたことを示す。 Further, as information about the store instruction completed when the simulation time t is "1020", authority level "N", program counter value "00000108", and instruction data "9b084ee8" are shown. Further, "store r1,0x1000" indicates that the data of the logical general-purpose register with the logical general-purpose register number "1" is stored at the address "0x1000" of the main storage device 32 in FIG. “store: VA=0x1000, PA=0x1000, data=0x20” indicates that store data “0x20” is stored at virtual address (VA) “0x1000” and physical address (PA) “0x1000”.

さらに、同じ時刻に完了したロード命令についての情報として、権限レベル“N”、プログラムカウンタ値“0000010c”、命令データ“8b084ee8”が示されている。また、“load r1,0x1000”は、論理汎用レジスタ番号“1”の論理汎用レジスタに、図2の主記憶装置32のアドレス“0x1000”のデータをロードすることを示す。“r1 write:0x20”は、物理汎用レジスタ番号“1”の物理汎用レジスタにロードデータ“0x20”が書き込まれたことを示す。“load:VA=0x1000,PA=0x1000,data=0x20”は、仮想アドレス(VA)“0x1000”、物理アドレス(PA)“0x1000”から、ロードデータ“0x20”がロードされたことを示す。 Further, as information about the load instructions completed at the same time, authority level "N", program counter value "0000010c", and instruction data "8b084ee8" are shown. Moreover, "load r1,0x1000" indicates that data at address "0x1000" of the main storage device 32 in FIG. 2 is loaded into the logical general-purpose register with the logical general-purpose register number "1". “r1 write:0x20” indicates that load data “0x20” has been written to the physical general-purpose register with physical general-purpose register number “1”. “load: VA=0x1000, PA=0x1000, data=0x20” indicates that the load data “0x20” was loaded from the virtual address (VA) “0x1000” and the physical address (PA) “0x1000”.

シミュレーション時刻tが“1036”のとき完了したストア命令についての情報として、権限レベル“N”、プログラムカウンタ値“00000110”、命令データ“8b080ee8”が示されている。また、“store r1,0x0”は、論理汎用レジスタ番号“1”の論理汎用レジスタのデータを、図2の主記憶装置32のアドレス“0x0”にストアすることを示す。 As information about the store instruction completed when the simulation time t is "1036", authority level "N", program counter value "00000110", and instruction data "8b080ee8" are shown. Further, "store r1,0x0" indicates that the data of the logical general-purpose register with the logical general-purpose register number "1" is stored at the address "0x0" of the main storage device 32 in FIG.

シミュレーション時刻tが“1068”のとき、例外が発生したことが示されている。また、同じ時刻において、パイプラインフラッシュが発生したことが示されている。
シミュレーション時刻tが“1080”のとき完了した分岐(ジャンプ)命令についての情報として、権限レベル“H”(ハイ)、プログラムカウンタ値“00000000”、命令データ“f940d661”が示されている。“jump 0x1000”は、アドレス“0x1000”にある命令への分岐を行うことを示している。
It is shown that an exception has occurred when the simulation time t is "1068". It is also shown that a pipeline flush occurred at the same time.
As information about the branch (jump) instruction completed when the simulation time t is "1080", authority level "H" (high), program counter value "00000000", and instruction data "f940d661" are shown. “jump 0x1000” indicates that a branch is to be made to the instruction at address “0x1000”.

シミュレーション時刻tが“1132”のとき、分岐予測の失敗が発生したことが示されている。また、同じ時刻において、パイプラインフラッシュが発生したことが示されている。 It is shown that a failure in branch prediction has occurred when the simulation time t is "1132". It is also shown that a pipeline flush occurred at the same time.

シミュレーション時刻tが“1150”のとき、アーキテクチャレジスタ番号“arch_reg1”のアーキテクチャレジスタにライトデータ“0x10”の書き込みが行われたことが示されている。 It is shown that when the simulation time t is "1150", write data "0x10" is written to the architecture register with the architecture register number "arch_reg1".

また、同時刻に完了したアーキテクチャレジスタへのライト命令についての情報として、権限レベル“H”、プログラムカウンタ値“00001000”、命令データ“3944014a”が示されている。また、“write arch_reg1,0x10”は、アーキテクチャレジスタ番号“arch_reg1”のアーキテクチャレジスタにライトデータ“0x10”の書き込みを行うことが示されている。 Further, as information about the write instruction to the architecture register completed at the same time, authority level "H", program counter value "00001000", and instruction data "3944014a" are shown. Further, “write arch_reg1,0x10” indicates that write data “0x10” is written to the architecture register with the architecture register number “arch_reg1”.

上記の表示例のうち、“add r1,0x10,0x10”などの演算内容は、前述のように生成されるデバッグ用情報には含まれないが、デコードされた命令データと、テストプログラムに基づいて、デバッグ用情報出力部62によって生成可能である。 In the display example above, the operation contents such as "add r1, 0x10, 0x10" are not included in the debugging information generated as described above, but are calculated based on the decoded instruction data and the test program. , can be generated by the debug information output unit 62.

デバッグ用情報の表示後、デバッグ作業実行部63は、たとえば、シミュレータなどによりテストプログラムを実行させたときに得られる期待動作を表す期待動作情報を生成して、ディスプレイ54aに表示させる。たとえば、ユーザは、表示される期待動作情報と上記デバッグ用情報とを比較してデバッグ作業を行う。 After displaying the debugging information, the debugging work execution unit 63 generates expected behavior information representing the expected behavior obtained when the test program is executed by, for example, a simulator, and displays it on the display 54a. For example, the user performs debugging work by comparing the displayed expected operation information with the debugging information.

たとえば、主記憶装置32に記憶されるデータが期待動作情報に含まれる期待値と異なるというエラーが発生した場合、ユーザは、デバッグ用情報と期待動作情報とを比較しながら問題発生箇所の特定を行う。 For example, if an error occurs in which the data stored in the main storage device 32 differs from the expected value included in the expected operation information, the user can identify the location of the problem by comparing the debugging information and the expected operation information. conduct.

たとえば、まず、データロード時に、データやアドレスが期待値と異なるものとなったのかが検証される。データロード時にデータやアドレスが期待値と異なるものとなっていれば、さらに、その前のデータストア時に、データやアドレスが期待値と異なるものとなったのかが検証される。データストア時にデータやアドレスが期待値と異なるものとなっていれば、さらに、その前のストアデータ作成時の演算処理にて期待値と異なるデータが生成されたのかが検証される。演算処理にて期待値と異なるデータが生成されていれば、さらに、その前のアーキテクチャレジスタの読み出し時に、期待と異なるデータが読み出されたのかが検証される。以上のように、動作を順に追っていくことにより、問題発生箇所の特定を行うことができる。 For example, first, when loading data, it is verified whether the data or address differs from the expected value. If the data or address differs from the expected value when the data is loaded, it is further verified whether the data or address differed from the expected value during the previous data store. If the data or address differs from the expected value at the time of data storage, it is further verified whether data different from the expected value was generated in the previous arithmetic processing when creating the store data. If data different from the expected value is generated in the arithmetic processing, it is further verified whether data different from the expected value was read when the previous architectural register was read. As described above, by following the operations in order, it is possible to identify the location where the problem occurs.

デバッグ作業による問題発生箇所の特定後は、特定した問題発生箇所に関連するハードウェアモジュールに絞って調査が行われる。
なお、デバッグ作業実行部63が、デバッグ用情報と期待動作情報に基づいて問題発生箇所の特定を行ってもよい。
After identifying the problem location through debugging, the investigation is focused on the hardware module related to the identified problem location.
Note that the debugging work execution unit 63 may identify the location where the problem occurs based on the debugging information and the expected operation information.

図17は、デバッグ作業の一例の処理の流れを示す図である。
デバッグ作業実行部63は、シミュレータなどによりテストプログラムを実行させたときに得られる期待動作を表す期待動作情報を生成する(ステップS80)。そして、デバッグ作業実行部63は、デバッグ用情報と期待動作情報に基づいて、上記のような検証処理を行って問題動作(問題発生箇所)の特定を行う(ステップS81)。なお、デバッグ作業実行部63は、特定結果をディスプレイ54aに表示させるようにしてもよい。
FIG. 17 is a diagram showing a processing flow of an example of debugging work.
The debugging work execution unit 63 generates expected behavior information representing the expected behavior obtained when the test program is executed by a simulator or the like (step S80). Then, the debugging work execution unit 63 performs the above-described verification processing based on the debugging information and the expected behavior information to identify the problem behavior (problem occurrence location) (step S81). Note that the debugging work execution unit 63 may display the identification result on the display 54a.

デバッグ用情報出力部62は、上記のようなソフトウェア動作と実際に用いられたハードウェアの動作との対応関係を示す情報を含むデバッグ用情報をディスプレイ54aに表示させることで、両者の対応関係の把握が容易となり問題発生箇所の特定が容易になる。 The debugging information output unit 62 displays debugging information including information indicating the correspondence between the software operation and the actually used hardware operation on the display 54a, thereby confirming the correspondence between the two. It becomes easier to understand and identify the location where the problem occurs.

これにより、デバッグ作業効率が上がりデバッグ時間を短縮できる。このため、試験対象サーバシステム21に対しての動作解析作業の効率化、短TAT化が実現できる。
なお、前述のように、上記の処理内容は、コンピュータであるデバッグ作業実行サーバ22にプログラムを実行させることで実現できる。
This increases debugging efficiency and reduces debugging time. Therefore, it is possible to improve the efficiency of the operation analysis work for the server system under test 21 and shorten the TAT.
Note that, as described above, the above processing contents can be realized by causing the debugging work execution server 22, which is a computer, to execute a program.

プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体56a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD53)にプログラムをコピーして実行してもよい。 The program can be recorded on a computer-readable recording medium (for example, the recording medium 56a). As the recording medium, for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. can be used. Magnetic disks include FDs and HDDs. Optical discs include CDs, CD-Rs (recordables)/RWs (rewritables), DVDs, and DVD-Rs/RWs. A program may be recorded on a portable recording medium and distributed. In that case, the program may be copied from the portable recording medium to another recording medium (for example, HDD 53) and executed.

以上、実施の形態に基づき、本発明の情報処理プログラム、情報処理方法及び情報処理システムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。 Although one aspect of the information processing program, information processing method, and information processing system of the present invention has been described above based on the embodiments, these are only examples, and the present invention is not limited to the above description.

10 情報処理システム
11 プロセッサ
11a1~11an ハードウェアモジュール
11b 取得回路
12 記憶装置
13 デバッグ装置
13a 処理部
13b 記憶部
14 表示装置
10 Information Processing System 11 Processor 11a1 to 11an Hardware Module 11b Acquisition Circuit 12 Storage Device 13 Debugging Device 13a Processing Unit 13b Storage Unit 14 Display Device

Claims (6)

プロセッサによるテストプログラムの実行時の所定の発生イベントごとの、前記プロセッサ内の複数のハードウェアモジュールの動作に関する情報であって、前記テストプログラムの第1の命令において指定される第1のレジスタの番号と、前記第1の命令を実行する際に用いられた第2のレジスタの番号とを含む、動作情報を取得し、
前記動作情報に基づいて、前記テストプログラムに記述されたソフトウェア動作と、前記テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示し、前記第1のレジスタの番号と前記第2のレジスタの番号とが対応付けられている情報を含むデバッグ用情報を生成し、
前記デバッグ用情報を出力する、
処理をコンピュータ、に実行させる情報処理プログラム。
Information regarding the operation of a plurality of hardware modules in the processor for each predetermined occurrence event when a test program is executed by the processor, the number of a first register specified in a first instruction of the test program. and a number of a second register used when executing the first instruction,
Based on the operation information, the correspondence relationship between the software operation described in the test program and the hardware operation by the hardware used when executing the test program is shown, and the number of the first register and the Generate debugging information including information associated with the number of the second register ,
outputting the debugging information;
An information processing program that causes a computer to perform processing.
前記動作情報は、前記テストプログラムの複数の命令のそれぞれのデコード時に前記複数の命令のそれぞれに割当てられたパイプライン番号に紐付けされており、
前記パイプライン番号ごとに紐付けられた前記動作情報を収集していくことで、前記デバッグ用情報を生成する、処理を前記コンピュータに実行させる請求項1に記載の情報処理プログラム。
The operation information is linked to a pipeline number assigned to each of the plurality of instructions when each of the plurality of instructions of the test program is decoded,
2. The information processing program according to claim 1, which causes the computer to execute a process of generating the debug information by collecting the operation information linked to each pipeline number.
記第1のレジスタは、前記第2のレジスタとは異な
前記動作情報から、前記第1のレジスタの番号と前記第2のレジスタの番号とを対応づけて収集することで前記デバッグ用情報を生成する、処理を前記コンピュータに実行させる請求項1または2に記載の情報処理プログラム。
The first register is different from the second register ,
3. The computer according to claim 1 or 2, wherein the computer executes a process of generating the debugging information by correlating and collecting the first register number and the second register number from the operation information. The information processing program described.
前記テストプログラムによる期待動作を表す期待動作情報を生成し、生成した前記期待動作情報と前記デバッグ用情報とに基づいて、前記プロセッサの問題動作を特定する、処理を前記コンピュータに実行させる請求項1乃至3の何れか一項に記載の情報処理プログラム。 Claim 1: Generating expected behavior information representing expected behavior by the test program, and causing the computer to execute a process of identifying problematic behavior of the processor based on the generated expected behavior information and the debugging information. The information processing program according to any one of items 3 to 3. コンピュータが、
プロセッサによるテストプログラムの実行時の所定の発生イベントごとの、前記プロセッサ内の複数のハードウェアモジュールの動作に関する情報であって、前記テストプログラムの第1の命令において指定される第1のレジスタの番号と、前記第1の命令を実行する際に用いられた第2のレジスタの番号とを含む、動作情報を取得し、
前記動作情報に基づいて、前記テストプログラムに記述されたソフトウェア動作と、前記テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示し、前記第1のレジスタの番号と前記第2のレジスタの番号とが対応付けられている情報を含むデバッグ用情報を生成し、
前記デバッグ用情報を出力する、
情報処理方法。
The computer is
Information regarding the operation of a plurality of hardware modules in the processor for each predetermined occurrence event when a test program is executed by the processor, the number of a first register specified in a first instruction of the test program. and a number of a second register used when executing the first instruction,
Based on the operation information, the correspondence relationship between the software operation described in the test program and the hardware operation by the hardware used when executing the test program is shown, and the number of the first register and the Generate debugging information including information associated with the number of the second register ,
outputting the debugging information;
Information processing method.
テストプログラムを実行する複数のハードウェアモジュールと、前記テストプログラムの実行時の所定の発生イベントごとに、前記複数のハードウェアモジュールの動作に関する動作情報を取得し、前記動作情報を出力する取得回路と、を備えたプロセッサと、
前記取得回路が出力した前記動作情報を取得し、前記動作情報に基づいて、前記テストプログラムに記述されたソフトウェア動作と、前記テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示す情報を含むデバッグ用情報を生成し、前記デバッグ用情報を出力するデバッグ装置と、
を有する情報処理システム。
a plurality of hardware modules that execute test programs; and an acquisition circuit that acquires operational information regarding the operations of the plurality of hardware modules and outputs the operational information for each predetermined event that occurs during execution of the test program. , a processor comprising:
The operation information outputted by the acquisition circuit is acquired, and based on the operation information, the correspondence relationship between the software operation described in the test program and the hardware operation by the hardware used when executing the test program. a debug device that generates debug information including information indicating and outputs the debug information;
An information processing system with
JP2020000797A 2020-01-07 2020-01-07 Information processing program, information processing method, and information processing system Active JP7401751B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020000797A JP7401751B2 (en) 2020-01-07 2020-01-07 Information processing program, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020000797A JP7401751B2 (en) 2020-01-07 2020-01-07 Information processing program, information processing method, and information processing system

Publications (2)

Publication Number Publication Date
JP2021111004A JP2021111004A (en) 2021-08-02
JP7401751B2 true JP7401751B2 (en) 2023-12-20

Family

ID=77059835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020000797A Active JP7401751B2 (en) 2020-01-07 2020-01-07 Information processing program, information processing method, and information processing system

Country Status (1)

Country Link
JP (1) JP7401751B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222243A (en) 1999-02-03 2000-08-11 Nec Corp Device and method for debugging
JP2001067243A (en) 1999-08-27 2001-03-16 Nec Corp Information processor
JP2008257405A (en) 2007-04-03 2008-10-23 Toshiba Corp Computer operation information recording device
US20170052876A1 (en) 2015-08-18 2017-02-23 Telefonaktiebolaget L M Ericsson (Publ) Method for observing software execution, debug host and debug target
JP2019008526A (en) 2017-06-23 2019-01-17 ルネサスエレクトロニクス株式会社 Semiconductor device and trace data storing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222243A (en) 1999-02-03 2000-08-11 Nec Corp Device and method for debugging
JP2001067243A (en) 1999-08-27 2001-03-16 Nec Corp Information processor
JP2008257405A (en) 2007-04-03 2008-10-23 Toshiba Corp Computer operation information recording device
US20170052876A1 (en) 2015-08-18 2017-02-23 Telefonaktiebolaget L M Ericsson (Publ) Method for observing software execution, debug host and debug target
JP2019008526A (en) 2017-06-23 2019-01-17 ルネサスエレクトロニクス株式会社 Semiconductor device and trace data storing method

Also Published As

Publication number Publication date
JP2021111004A (en) 2021-08-02

Similar Documents

Publication Publication Date Title
US20070250820A1 (en) Instruction level execution analysis for debugging software
US8769504B2 (en) Method and apparatus for dynamically instrumenting a program
TWI544410B (en) Diagnosing code using single step execution
JPH04251339A (en) Dynamic method for generating biased pseudo- random test pattern for verifying function of hardware
JP6119535B2 (en) Trace method, processing program, and information processing apparatus
US20110154110A1 (en) Verifying a Register-Transfer Level Design of an Execution Unit
US7908596B2 (en) Automatic inspection of compiled code
US20200226050A1 (en) Checksum generation
US10496405B2 (en) Generating and verifying hardware instruction traces including memory data contents
US9405664B2 (en) Automating software testing
JP6963552B2 (en) Replay of partially executed instruction blocks in processor-based systems that utilize the block atomic execution model
EP2962180A1 (en) Determining event and input coverage metrics for a graphical user interface control instance
JP7401751B2 (en) Information processing program, information processing method, and information processing system
JP5551828B2 (en) Replay architecture execution with probeless trace collection
US20140245074A1 (en) Testing of run-time instrumentation
CN114780409A (en) Breakpoint setting method based on program running process, electronic device and storage medium
US10339229B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
JP5550578B2 (en) Entry rewriting device and entry rewriting program
KR101225577B1 (en) Apparatus and method for analyzing assembly language code
JP5937530B2 (en) Software error analysis device, error information creation device
JP2793396B2 (en) Computer status holding device
US7917739B2 (en) Storage medium storing calculation processing visualization program, calculation processing visualization apparatus, and calculation processing visualization method
JP2004145670A (en) Method and device for generating test bench, and computer program
JP3151811B2 (en) Failure processing verification method and method for information processing device
JP2011164730A (en) Information controller, failure analysis method and failure analysis program for cause investigation of memory access error occurring asynchronously with instruction execution in cpu

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231013

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231120

R150 Certificate of patent or registration of utility model

Ref document number: 7401751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150