JP7401751B2 - Information processing program, information processing method, and information processing system - Google Patents
Information processing program, information processing method, and information processing system Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 36
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000012545 processing Methods 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 39
- 238000012360 testing method Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 21
- 230000006399 behavior Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 12
- 239000000700 radioactive tracer Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 229910052739 hydrogen Inorganic materials 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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.
サーバシステムは大規模化及び複雑化が進んでおり、動作解析にかかる工数が増大している。システム動作解析作業の中で、プロセッサなどのハードウェア内部の動作解析作業が最も観測性が悪く難易度が高い。近年、プロセッサに含まれるハードウェアモジュールの数及び種類の増加やアウトオブオーダの採用などにより複雑化が進んでおり、テストプログラム実行時のエラー原因の推測がより困難になっている。このため、デバッグ時間が長くなってしまうという問題があった。 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の実施の形態)
図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
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
また、プロセッサ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
The hardware modules 11a1 to 11an perform operations according to the test program.
取得回路11bは、ハードウェアモジュール11a1~11anの動作に関する動作情報を、テストプログラムの実行時の所定の発生イベントごとに取得する。所定の発生イベントとして、たとえば、命令デコード処理、レジスタへのライト処理、仮想アドレスから物理アドレスへのアドレス変換処理などがある。動作情報として、たとえば、デコードされた命令データ、ライトが行われたレジスタ(以下物理汎用レジスタという)の番号、ライトデータ、テストプログラムに記述されているレジスタ(以下論理汎用レジスタという)の番号などがある。
The
なお、パイプライン処理が行われる場合、これらの動作情報は、その動作情報を発生させた命令に割り当てられたパイプライン番号(以下パイプライン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
ハードウェアモジュール11a1~11anと取得回路11bは、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでいてもよい。
The hardware modules 11a1 to 11an and the
記憶装置12は、RAMなどの揮発性の記憶装置、またはフラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)などの不揮発性の記憶装置である。
The
デバッグ装置13は、処理部13aと記憶部13bを有する。
処理部13aは、たとえば、CPU、DSPなどの演算処理装置としてのプロセッサである。処理部13aは、複数のプロセッサを含んでいてもよいし複数のプロセッサコアを含んでいてもよい。また、処理部13aは、ASICやFPGAなどの特定用途の電子回路を含んでいてもよい。
The
The
処理部13aは、記憶部13bに記憶されたプログラムを実行する。たとえば、処理部13aは、後述するような情報処理プログラムを実行する。
記憶部13bは、RAMなどの揮発性の記憶装置、またはフラッシュメモリ、EEPROMやHDDなどの不揮発性の記憶装置である。
The
The
記憶部13bは、各種プログラムを記憶するとともに処理部13aがプログラムを実行する際に用いる各種データを記憶する。また、記憶部13bはプロセッサ11が実行したテストプログラムを記憶していてもよい。
The
処理部13aが情報処理プログラムの実行を開始すると、処理部13aは、まず、取得回路11bが出力した動作情報を取得する(ステップS1)。取得回路11bが出力した動作情報が記憶装置12に記憶されている場合、処理部13aは、記憶装置12から動作情報を取得する(読み出す)。なお、取得回路11bが出力する動作情報は、図示しない通信装置によってデバッグ装置13に送信されてもよい。また処理部13aは、取得した動作情報を、一旦、記憶部13bに記憶してもよい。
When the
処理部13aは、取得した動作情報に基づいて、テストプログラムに記述されたソフトウェア動作と、テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示す情報を含むデバッグ用情報を生成する(ステップS2)。たとえば、テストプログラムに記述されたソフトウェア動作が、ある論理汎用レジスタを用いた加算処理である場合、その加算処理の際に用いられた物理汎用レジスタの番号やライトデータがデバッグ用情報に含まれる。
Based on the acquired operation information, the
そして、処理部13aは生成したデバッグ用情報を出力する(ステップS3)。処理部13aは、たとえば、表示装置14にデバッグ用情報を出力して表示させる。図1にはデバッグ用情報の表示例が示されている。
Then, the
図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
Although not shown in FIG. 1, the
上記の方法で得られたデバッグ用情報は、ソフトウェア動作と実際に用いられたハードウェアの動作との対応関係を示す情報を含むため、両者の対応関係の把握が容易となり、問題発生箇所の特定が容易になる。これにより、デバッグ作業効率が上がりデバッグ時間を短縮できる。このため、プロセッサ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
(第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
プロセッサ31は、たとえば、CPU、DSPなどの演算処理装置であり、図1に示したプロセッサ11と同様の機能を有する。ただし、第2の実施の形態の情報処理システム20において、プロセッサ31は、複数の(m個の)プロセッサコア(以下単にコアと呼ぶ)31a1,31a2,…,31amと、トレーサモジュール31bを有する。
The
コア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
主記憶装置32は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、外部記憶装置33は、たとえば、フラッシュメモリ、EEPROM、HDDなどの不揮発性の記憶装置である。
The
なお、試験対象サーバシステム21には、通信インタフェースや入出力インタフェースなどが含まれていてもよいが、図2では図示が省略されている。
デバッグ作業実行サーバ22は、図1に示したデバッグ装置13と同様の機能を有する。デバッグ作業実行サーバ22のハードウェア例については後述する。
Note that the test
The debugging
図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
図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
FIG. 5 is a flowchart illustrating an example of the operation information acquisition process.
First, the
そして、コントローラ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 (
なお、上記の処理の順序は一例であり、適宜順序が入れ替えられてもよい。また、動作情報は、主記憶装置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
図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
FIG. 7 is a diagram illustrating an example of hardware of a debug work execution server.
The debugging
CPU51は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU51は、HDD53に記憶されたプログラムやデータの少なくとも一部をRAM52にロードし、プログラムを実行する。なお、CPU51は複数のプロセッサコアを備えてもよく、デバッグ作業実行サーバ22は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
The
RAM52は、CPU51が実行するプログラムやCPU51が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、デバッグ作業実行サーバ22は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD53は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、デバッグ用情報の生成などを行う情報処理方法をデバッグ作業実行サーバ22に実行させる情報処理プログラムが含まれる。なお、デバッグ作業実行サーバ22は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
画像信号処理部54は、CPU51からの命令にしたがって、デバッグ作業実行サーバ22に接続されたディスプレイ54aに画像を出力する。ディスプレイ54aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
The image
入力信号処理部55は、デバッグ作業実行サーバ22に接続された入力デバイス55aから入力信号を取得し、CPU51に出力する。入力デバイス55aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、デバッグ作業実行サーバ22に、複数の種類の入力デバイスが接続されていてもよい。
The input
媒体リーダ56は、記録媒体56aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体56aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)、Blu-ray(登録商標)などが含まれる。
The
媒体リーダ56は、たとえば、記録媒体56aから読み取ったプログラムやデータを、RAM52やHDD53などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU51によって実行される。なお、記録媒体56aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体56aやHDD53を、コンピュータ読み取り可能な記録媒体ということがある。
For example, the
通信インタフェース57は、ネットワーク57aに接続され、ネットワーク57aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース57は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
The
なお、通信インタフェース57は、ネットワーク57aを介して、試験対象サーバシステム21に接続されてもよいし、試験対象サーバシステム21に直接接続されていてもよい。
Note that the
図2に示した試験対象サーバシステム21についても上記と同様のハードウェア構成にて実現できるが、その場合、CPU51に、図2に示したようなトレーサモジュール31bが含まれることになる。
The test
次に、デバッグ作業実行サーバ22の機能及び処理手順を説明する。
図8は、デバッグ作業実行サーバの機能例を示すブロック図である。
デバッグ作業実行サーバ22は、動作情報取得部60、デバッグ用情報生成部61、デバッグ用情報出力部62、デバッグ作業実行部63、記憶部64を有する。
Next, the functions and processing procedures of the debugging
FIG. 8 is a block diagram showing a functional example of the debugging work execution server.
The debug
動作情報取得部60、デバッグ用情報生成部61、デバッグ用情報出力部62、デバッグ作業実行部63は、たとえば、CPU51が実行するプログラムモジュールを用いて実装できる。記憶部64は、たとえば、RAM52またはHDD53に確保した記憶領域を用いて実装できる。
The operation
動作情報取得部60は、動作情報を取得する。動作情報取得部60は、試験対象サーバシステム21の外部記憶装置33に直接アクセス可能であれば、外部記憶装置33に記憶された動作情報を読み出すことで取得する。試験対象サーバシステム21が動作情報をデバッグ作業実行サーバ22に送信する場合、動作情報取得部60は、通信インタフェース57を用いて動作情報を受信することによって取得する。動作情報取得部60は、取得した動作情報を一旦、記憶部64に記憶する。
The motion
デバッグ用情報生成部61は、記憶部64に記憶された動作情報に基づいてデバッグ用情報を生成する。
デバッグ用情報出力部62は、デバッグ用情報をディスプレイ54aに表示させる。
The debugging
The debugging
デバッグ作業実行部63は、たとえば、シミュレータなどにより、テストプログラムによる期待動作を表す期待動作情報を生成し、ディスプレイ54aに表示させる。デバッグ作業実行部63は、デバッグ用情報と期待動作情報に基づいて、プロセッサ31の問題動作を特定し、その結果をディスプレイ54aに表示させるようにしてもよい。
The debugging
記憶部64は、取得された動作情報、生成された(または生成途中の)デバッグ用情報などを記憶する。
図9は、デバッグ用情報の生成及び表示処理の一例の流れを示すフローチャートである。なお、以下では、図6に示した動作情報を以下の種別A~Jに分けて説明する。
The
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
そして、デバッグ用情報生成部61は、読み込んだ動作情報に、上記の種別B,E,F,Gの動作情報があるか否かを判定する(ステップS22)。デバッグ用情報生成部61は、種別B,E,F,Gの動作情報があると判定した場合、後述のデータ登録処理を行う(ステップS23)。
Then, the debug
ステップ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
ステップ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
ステップ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
ステップ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
ステップ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
デバッグ用情報生成部61は、シミュレーション時刻tが終了シミュレーション時刻tendに達していないと判定した場合、シミュレーション時刻tを+1し(ステップS33)、ステップS21からの処理を繰り返す。デバッグ用情報生成部61は、シミュレーション時刻tが終了シミュレーション時刻tendに達していると判定した場合、デバッグ用情報の生成及び表示処理を終了する。
If the debugging
なお、図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
ステップS41の処理後、または、命令データがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報に物理・論理汎用レジスタ番号の変換データがあるか否かを判定する(ステップS42)。物理・論理汎用レジスタ番号の変換データの有無は、たとえば、図6に示した動作情報のうち、完了物理汎用レジスタ番号と、完了論理汎用レジスタ番号とから判別できる。図6の例では、完了物理汎用レジスタ番号と、完了論理汎用レジスタ番号とが異なるため、変換データがある(レジスタリネーミングが行われた)ものと判定される。
After the processing in step S41, or when it is determined that there is no instruction data, the debugging
デバッグ用情報生成部61は、変換データがあると判定した場合、物理・論理汎用レジスタ番号(図6では完了物理汎用レジスタ番号及び完了論理汎用レジスタ番号)を、上記データテーブルに登録する(ステップS43)。物理・論理汎用レジスタ番号は、データテーブルにおいて、対象命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、物理・論理汎用レジスタ番号の書き込み用フィールドに書き込まれる。
When the debugging
ステップ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
ステップ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
ステップS47の処理後、または、ロードデータがないと判定した場合、デバッグ用情報生成部61は、読み込んだ動作情報にアドレス変換データがあるか否かを判定する(ステップS48)。アドレス変換データの有無は、たとえば、図6に示した動作情報に仮想アドレスと物理アドレスとが含まれているか否かにより判別できる。仮想アドレスと物理アドレスとが含まれている場合、アドレス変換データがある(アドレス変換が行われた)ものと判定される。
After the processing in step S47, or when it is determined that there is no load data, the debugging
デバッグ用情報生成部61は、アドレス変換データがあると判定した場合、仮想アドレスと物理アドレスを、上記データテーブルに登録する(ステップS49)。物理・論理汎用レジスタ番号は、データテーブルにおいて、ロード・ストア命令パイプラインIDに紐付けられた動作情報が書き込まれる領域のうち、仮想アドレスと物理アドレスの書き込み用フィールドに書き込まれる。
If the debugging
ステップS49の処理後、または、アドレス変換データがないと判定した場合、デバッグ用情報生成部61は、データ登録処理を終える。
なお、上記の処理の順序は一例であり、適宜順序が入れ替えられてもよい。
After the process in step S49, or when it is determined that there is no address translation data, the debug
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
図9のライトデータ登録処理では、デバッグ用情報生成部61は、ライトデータを、記憶部64に構築されたライトデータ登録用のデータテーブルに登録する。
図12は、ライトデータ登録用のデータテーブルの一例を示す図である。
In the write data registration process of FIG. 9, the debugging
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
その後、デバッグ用情報生成部61は、実行完了命令パイプラインIDに紐付けられた物理汎用レジスタ番号が図11に示したようなデータテーブルに登録済であるか否かを判定する(ステップS52)。物理汎用レジスタ番号が登録済であると判定した場合、デバッグ用情報出力部62は、その物理汎用レジスタ番号とともにデータテーブルに登録されている論理汎用レジスタ番号を、記憶部64から読み出してディスプレイ54aに表示させる(ステップS53)。また、デバッグ用情報出力部62は、その物理汎用レジスタ番号と、図12に示したライトデータ登録用のデータテーブルに登録されているライトデータを、記憶部64から読み出してディスプレイ54aに表示させる(ステップS54)。
After that, the debugging
ステップ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
ステップ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
ステップ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
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
ステップ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
ステップ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
ステップS65の処理後、または例外発生得情報がないと判定した場合、デバッグ用情報出力部62は、即時データ表示処理を終了する。
なお、上記の処理の順序は一例であり、即時データ表示対象の各種動作情報の表示順序などについては適宜入れ替えられてもよい。
After the processing in step S65, or when it is determined that there is no exception occurrence information, the debugging
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
そして、デバッグ用情報生成部61は、図11に示したようなデータテーブルに登録されている情報を全て削除し(ステップS71)、パイプラインフラッシュ処理を終了する。
Then, the debug
図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
さらに、同じ時刻に完了したロード命令についての情報として、権限レベル“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
シミュレーション時刻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
シミュレーション時刻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
デバッグ用情報の表示後、デバッグ作業実行部63は、たとえば、シミュレータなどによりテストプログラムを実行させたときに得られる期待動作を表す期待動作情報を生成して、ディスプレイ54aに表示させる。たとえば、ユーザは、表示される期待動作情報と上記デバッグ用情報とを比較してデバッグ作業を行う。
After displaying the debugging information, the debugging
たとえば、主記憶装置32に記憶されるデータが期待動作情報に含まれる期待値と異なるというエラーが発生した場合、ユーザは、デバッグ用情報と期待動作情報とを比較しながら問題発生箇所の特定を行う。
For example, if an error occurs in which the data stored in the
たとえば、まず、データロード時に、データやアドレスが期待値と異なるものとなったのかが検証される。データロード時にデータやアドレスが期待値と異なるものとなっていれば、さらに、その前のデータストア時に、データやアドレスが期待値と異なるものとなったのかが検証される。データストア時にデータやアドレスが期待値と異なるものとなっていれば、さらに、その前のストアデータ作成時の演算処理にて期待値と異なるデータが生成されたのかが検証される。演算処理にて期待値と異なるデータが生成されていれば、さらに、その前のアーキテクチャレジスタの読み出し時に、期待と異なるデータが読み出されたのかが検証される。以上のように、動作を順に追っていくことにより、問題発生箇所の特定を行うことができる。 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
図17は、デバッグ作業の一例の処理の流れを示す図である。
デバッグ作業実行部63は、シミュレータなどによりテストプログラムを実行させたときに得られる期待動作を表す期待動作情報を生成する(ステップS80)。そして、デバッグ作業実行部63は、デバッグ用情報と期待動作情報に基づいて、上記のような検証処理を行って問題動作(問題発生箇所)の特定を行う(ステップS81)。なお、デバッグ作業実行部63は、特定結果をディスプレイ54aに表示させるようにしてもよい。
FIG. 17 is a diagram showing a processing flow of an example of debugging work.
The debugging
デバッグ用情報出力部62は、上記のようなソフトウェア動作と実際に用いられたハードウェアの動作との対応関係を示す情報を含むデバッグ用情報をディスプレイ54aに表示させることで、両者の対応関係の把握が容易となり問題発生箇所の特定が容易になる。
The debugging
これにより、デバッグ作業効率が上がりデバッグ時間を短縮できる。このため、試験対象サーバシステム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
Note that, as described above, the above processing contents can be realized by causing the debugging
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体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
以上、実施の形態に基づき、本発明の情報処理プログラム、情報処理方法及び情報処理システムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。 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
Claims (6)
前記動作情報に基づいて、前記テストプログラムに記述されたソフトウェア動作と、前記テストプログラムの実行時に用いられたハードウェアによるハードウェア動作との対応関係を示し、前記第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に記載の情報処理プログラム。 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の命令において指定される第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
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)
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 |
-
2020
- 2020-01-07 JP JP2020000797A patent/JP7401751B2/en active Active
Patent Citations (5)
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 |