Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6451989B2 - Information processing apparatus, information processing method, and information processing program - Google Patents
[go: Go Back, main page]

JP6451989B2 - Information processing apparatus, information processing method, and information processing program - Google Patents

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

Info

Publication number
JP6451989B2
JP6451989B2 JP2015072952A JP2015072952A JP6451989B2 JP 6451989 B2 JP6451989 B2 JP 6451989B2 JP 2015072952 A JP2015072952 A JP 2015072952A JP 2015072952 A JP2015072952 A JP 2015072952A JP 6451989 B2 JP6451989 B2 JP 6451989B2
Authority
JP
Japan
Prior art keywords
instruction
test
instruction sequence
information processing
access target
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
JP2015072952A
Other languages
Japanese (ja)
Other versions
JP2016192168A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2015072952A priority Critical patent/JP6451989B2/en
Publication of JP2016192168A publication Critical patent/JP2016192168A/en
Application granted granted Critical
Publication of JP6451989B2 publication Critical patent/JP6451989B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

近年、LSI(Large Scale Integration)の高集積化に伴い、LSIの製造コストが高くなり、リードタイムも長くなってきている。このような状況下で、LSIの品質が悪いと、リワークによるコスト増や製造TAT(Turn Around Time)の延びにより、計画通りの出荷が行えず、顧客に迷惑をかけすることになり、メーカとしての信頼も失ってしまう。このため、LSIの製造前に品質を上げることはますます重要になってきている。LSIの品質確保のためには、設計者が自らチェックすることも必要だが、第3者が確認することも重要になり、代表的な方法としてシミュレーションによる評価が上げられ、そこで使用されるテストプログラムの重要性が増してきている。   In recent years, with the high integration of LSI (Large Scale Integration), the manufacturing cost of LSI has increased and the lead time has also increased. Under these circumstances, if the quality of the LSI is poor, it will not be possible to ship as planned due to increased costs due to rework and an increase in manufacturing TAT (Turn Around Time), which will inconvenience the customer. Will lose their trust. For this reason, it is becoming increasingly important to improve the quality before manufacturing the LSI. In order to ensure the quality of the LSI, it is necessary for the designer to check by himself / herself, but it is also important for the third party to confirm, and the evaluation by simulation is given as a representative method, and the test program used there The importance of is increasing.

このため、各メーカは、従来から、LSIの製造前にはテストプログラム等を用いて、十分に品質を高めているが、それでもLSIリワークが発生してしまうことも多々あるのが、現実である。これは、LSIリリース前にシミュレーションで使用するテストプログラムが、人手で作成した命令列や自動生成したランダム命令列となっているために、実際にお客様のところで実行される命令列とは異なることが要因の1つでもある。しかし、コンパイラが出力する命令列をテストプログラムとして使用するためには、システムコールの処理やメモリ容量の制限等から困難なものであった。   For this reason, each manufacturer has traditionally used a test program or the like to sufficiently improve the quality before manufacturing the LSI, but in reality, there are still many cases where LSI rework occurs. . This may be different from the instruction sequence that is actually executed at the customer site because the test program used in the simulation before the LSI release is an instruction sequence created manually or an automatically generated random instruction sequence. It is also one of the factors. However, in order to use the instruction sequence output by the compiler as a test program, it has been difficult due to system call processing, memory capacity limitations, and the like.

これらの課題を解決するために、特許文献1には、各マシン命令の出現頻度を命令出現頻度表に登録して、命令の出現頻度が反映された命令選択テーブルを作成し、この命令選択テーブルから乱数によりランダムに命令を選択してテスト命令列を生成する技術が開示されている。また、特許文献2には、ログ情報集計結果テーブルから命令重みテーブルと試験エリアアドレステーブルを作成し、命令重みテーブルおよび試験エリアアドレステーブルをもとに試験命令列テーブルの試験命令列を作成する技術が開示されている。   In order to solve these problems, Patent Document 1 registers the appearance frequency of each machine instruction in the instruction appearance frequency table, creates an instruction selection table reflecting the appearance frequency of the instruction, and this instruction selection table. A technique for generating a test instruction sequence by randomly selecting an instruction from a random number is disclosed. Japanese Patent Application Laid-Open No. 2004-151867 discloses a technique for creating an instruction weight table and a test area address table from a log information tabulation result table, and creating a test instruction string of a test instruction string table based on the instruction weight table and the test area address table. Is disclosed.

特許第3089121号公報Japanese Patent No. 3089121 特開平11−265298号公報Japanese Patent Laid-Open No. 11-265298

しかしながら、上記特許文献1に記載の技術では、命令の順番しか考慮されていない。例えば、LSI開発において、命令列を実行する際に発生しやすい問題は、命令の順番だけでなく、レジスタやメモリアドレスの依存関係が原因となることが多いため、命令の順番を再現させるだけでは、不十分であった。一方、特許文献2は、試験エリアアドレステーブルを作成して、テスト命令列生成にメモリアドレスも参照するが、かかるメモリアドレスはあくまで故障発生箇所を示すアドレスであって、実行命令列におけるレジスタやメモリアドレスの依存関係を反映させるものではない。   However, the technique described in Patent Document 1 only considers the order of instructions. For example, in LSI development, problems that are likely to occur when executing instruction sequences are often caused not only by the order of instructions, but also by the dependency of registers and memory addresses. It was inadequate. On the other hand, Patent Document 2 creates a test area address table and refers to a memory address when generating a test instruction sequence. However, such a memory address is an address indicating a location where a failure has occurred. It does not reflect address dependencies.

本発明の目的は、上述の課題を解決する技術を提供することにある。   The objective of this invention is providing the technique which solves the above-mentioned subject.

上記目的を達成するため、本発明に係る情報処理装置は、
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出手段と、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定手段と、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成手段と、
を備える。
In order to achieve the above object, an information processing apparatus according to the present invention provides:
Appearance frequency calculating means for calculating the appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determining unit that determines a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
Test instruction sequence generation means for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
Is provided.

上記目的を達成するため、本発明に係る情報処理装置の情報処理方法は、
出現頻度算出手段が、コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
アクセス対象関連判定手段が、前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
テスト命令列生成手段が、前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
を含む。
In order to achieve the above object, an information processing method of an information processing apparatus according to the present invention includes:
An appearance frequency calculating means for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determining unit that determines a relation between an access target of the predetermined instruction and an access target of the at least two preceding and following instructions in the execution instruction sequence;
A test instruction sequence generation means uses, as a test instruction sequence for testing the predetermined instruction, an instruction sequence including the predetermined instruction and maintaining the association of the access target, based on the appearance frequency of the instruction and the relationship of the access target A test instruction sequence generation step to be generated;
including.

上記目的を達成するため、本発明に係る情報処理プログラムは、
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
をコンピュータに実行させる。
In order to achieve the above object, an information processing program according to the present invention provides:
An appearance frequency calculating step for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determination step for determining a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
A test instruction sequence generation step for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
Is executed on the computer.

本発明によれば、コンパイラで生成した実行命令列の特徴を有するテスト命令列が生成でき、容易にLSIなどの設計における製造前の品質確保をすることができる。   According to the present invention, a test instruction sequence having the characteristics of an execution instruction sequence generated by a compiler can be generated, and quality before manufacture in designing LSIs can be easily ensured.

本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置を含むテスト命令列処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the test instruction sequence processing system containing the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る命令コードテーブル、命令出現頻度テーブル、レジスタ関連テーブルおよびメモリ領域関連テーブルの構成を示す図である。It is a figure which shows the structure of the instruction code table which concerns on 2nd Embodiment of this invention, an instruction appearance frequency table, a register related table, and a memory area related table. 本発明の第2実施形態に係る頻度別命令テーブルの構成を示す図である。It is a figure which shows the structure of the instruction table classified by frequency concerning 2nd Embodiment of this invention. 本発明の第2実施形態に係るテスト命令列テーブルの構成を示す図である。It is a figure which shows the structure of the test instruction sequence table which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る実行命令列解析処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the execution instruction sequence analysis process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る頻度別命令テーブル生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the instruction table production | generation process classified by frequency which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るテスト命令列生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the test instruction sequence production | generation process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る命令出現頻度テーブル、レジスタ関連テーブルおよびメモリ領域関連テーブルの元になる出現数例を示す図である。It is a figure which shows the example of the appearance number used as the origin of the command appearance frequency table which concerns on 2nd Embodiment of this invention, a register related table, and a memory area related table. 本発明の第2実施形態に係る命令出現頻度テーブル、レジスタ関連テーブルおよびメモリ領域関連テーブルの出現頻度正規化例を示す図である。It is a figure which shows the example of appearance frequency normalization of the instruction appearance frequency table which concerns on 2nd Embodiment of this invention, a register related table, and a memory area related table. 本発明の第2実施形態に係る出現頻度正規化例から生成された頻度別命令テーブルの生成例の構成を示すブロック図である。It is a block diagram which shows the structure of the example of a production | generation of the command table classified by frequency produced | generated from the example of appearance frequency normalization which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る頻度別命令テーブルの生成例から生成されたテスト命令列テーブルの生成例の構成を示す図である。It is a figure which shows the structure of the production | generation example of the test instruction sequence table produced | generated from the production | generation example of the instruction table classified by frequency concerning 2nd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係るテスト命令列学習データベースの構成を示す図である。It is a figure which shows the structure of the test instruction sequence learning database which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る学習テーブルの構成を示す図である。It is a figure which shows the structure of the learning table which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing apparatus which concerns on 3rd Embodiment of this invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。   Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them.

[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、プロセッサなどによる命令列の実行をテストする装置である。
[First Embodiment]
An information processing apparatus 100 as a first embodiment of the present invention will be described with reference to FIG. The information processing apparatus 100 is an apparatus that tests execution of an instruction sequence by a processor or the like.

図1に示すように、情報処理装置100は、出現頻度算出部101と、アクセス対象関連判定部102と、テスト命令列生成部103と、を含む。出現頻度算出部101は、コンパイラが生成した実行命令列中における、所定命令111に対する前後の少なくとも2つの命令の出現頻度112を算出する。アクセス対象関連判定部102は、実行命令列中における、所定命令111のアクセス対象と前後の少なくとも2つの命令のアクセス対象との関連122を判定する。テスト命令列生成部103は、命令の出現頻度112と前記アクセス対象の関連122とに基づいて、所定命令111を含みアクセス対象の関連(132、133)を維持した命令列を、所定命令をテストするテスト命令列130として生成する。   As illustrated in FIG. 1, the information processing apparatus 100 includes an appearance frequency calculation unit 101, an access target association determination unit 102, and a test instruction sequence generation unit 103. The appearance frequency calculation unit 101 calculates the appearance frequency 112 of at least two instructions before and after the predetermined instruction 111 in the execution instruction sequence generated by the compiler. The access target relation determination unit 102 determines a relation 122 between an access target of the predetermined instruction 111 and an access target of at least two preceding and following instructions in the execution instruction sequence. The test instruction sequence generation unit 103 tests a predetermined instruction for an instruction sequence including the predetermined instruction 111 and maintaining the access target relation (132, 133) based on the instruction appearance frequency 112 and the access target relation 122. The test instruction sequence 130 is generated.

本実施形態によれば、コンパイラで生成した実行命令列の特徴である命令の出現頻度やアクセス対象の関連を反映したテスト命令列が生成でき、容易にLSIなどの設計における製造前の品質確保をすることができる。   According to the present embodiment, it is possible to generate a test instruction sequence reflecting the appearance frequency of instructions executed by a compiler and the relationship of access targets, and easily ensure quality before manufacturing in designing LSIs and the like. can do.

[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、命令の出現頻度と共に、命令によりアクセスされるレジスタおよびメモリの少なくともいずれかを含むアクセス対象の関連をテスト命令列の生成に反映させる。その内、アクセス対象のメモリにおいては、アクセス領域の少なくとも一部が重なる場合に関連性ありと判定する。そして、テスト命令列の生成においては、命令の出現頻度に基づいてテスト命令列に使用する命令を選択し、アクセス対象との関連に基づいて所定命令と選択された命令とのアクセス対象を関連付ける。また、テスト命令列の生成過程において、頻度別命令テーブルを生成する。頻度別命令テーブルには、所定命令に対する前後の少なくとも2つの命令の出現頻度と、所定命令のアクセス対象と前後の命令のアクセス対象との関連とに基づいて、所定命令および前後の少なくとも2つの命令の出現頻度順の命令列と、所定命令と命令列との間のアクセス対象の関連の有無と、が記憶される。そして、頻度別命令テーブルを参照してテスト命令列を生成する。
[Second Embodiment]
Next, an information processing apparatus according to the second embodiment of the present invention will be described. The information processing apparatus according to the present embodiment reflects the relation of the access target including at least one of the register and the memory accessed by the instruction together with the appearance frequency of the instruction in the generation of the test instruction sequence. Among them, in the memory to be accessed, it is determined that there is a relationship when at least a part of the access areas overlap. In the generation of the test instruction sequence, an instruction to be used for the test instruction sequence is selected based on the appearance frequency of the instruction, and the access target between the predetermined instruction and the selected instruction is associated based on the relationship with the access target. In addition, a frequency-specific instruction table is generated in the test instruction sequence generation process. The frequency-specific instruction table includes a predetermined instruction and at least two instructions before and after the occurrence frequency of at least two instructions before and after the predetermined instruction and the relationship between an access target of the predetermined instruction and an access target of the preceding and following instructions. Are stored in the order of appearance frequency and whether or not there is an association of an access target between the predetermined instruction and the instruction string. Then, a test instruction sequence is generated with reference to the frequency-specific instruction table.

《テスト命令列処理システム》
図2は、本実施形態に係る情報処理装置210を含むテスト命令列処理システム200の構成を示すブロック図である。なお、図2には、情報処理装置210がコンパイラによりソースコードから実行命令列を生成する場合を図示するが、コンパイラは外部装置で行なわれ、実行命令列群が情報処理装置210に入力される構成であってもよい。
《Test instruction sequence processing system》
FIG. 2 is a block diagram illustrating a configuration of a test instruction sequence processing system 200 including the information processing apparatus 210 according to the present embodiment. FIG. 2 illustrates a case where the information processing apparatus 210 generates an execution instruction sequence from source code by a compiler, but the compiler is performed by an external device, and an execution instruction sequence group is input to the information processing apparatus 210. It may be a configuration.

情報処理装置210は、入力された種々のソースコード群から対応するコンパイラモジュール212により実行命令列群を生成する。そして、情報処理装置210は、テスト命令列生成部213において、実行命令列群を解析して、実行命令列の特徴を反映させたテスト命令列を生成する。なお、テスト命令列生成部213における実行命令列群の解析は、実行命令列の命令間の関連を表わす出現頻度と、命令間のアクセス対象の関連、すなわち、レジスタやメモリ領域の関連とを解析し、その解析結果を反映させたテスト命令列を生成する。   The information processing apparatus 210 generates an execution instruction sequence group from the various input source code groups using the corresponding compiler module 212. In the information processing apparatus 210, the test instruction sequence generation unit 213 analyzes the execution instruction sequence group and generates a test instruction sequence reflecting the characteristics of the execution instruction sequence. The analysis of the execution instruction string group in the test instruction string generation unit 213 analyzes the appearance frequency indicating the relation between instructions of the execution instruction string and the relation of the access target between the instructions, that is, the relation of the register and the memory area. Then, a test instruction sequence reflecting the analysis result is generated.

プロセッサモデル220は、基本的に、CPU(Central Processing Unit)と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶媒体から構成されて、情報処理装置210から提供されたテスト命令列を実行して、実行結果を出力する。なお、プロセッサモデル220は、例えば、LSI(Large Scale Integration)などの内部でチェックできない集積回路であって、実行結果は単に命令の実行内容に留まらず、発熱や雑音の発生などにも及ぶ。そのテストが実装時と同様の条件であるためには、本実施形態のようなコンパイラが生成する実行命令列の特徴をより反映したテスト命令列が要求される。   The processor model 220 basically includes a CPU (Central Processing Unit) and a storage medium such as a ROM (Read Only Memory) or a RAM (Random Access Memory), and a test instruction sequence provided from the information processing apparatus 210. Is executed and the execution result is output. The processor model 220 is, for example, an integrated circuit that cannot be checked internally, such as an LSI (Large Scale Integration), and the execution result is not limited to the execution contents of instructions, but also includes generation of heat and noise. In order for the test to have the same conditions as those at the time of mounting, a test instruction sequence that more reflects the characteristics of the execution instruction sequence generated by the compiler as in this embodiment is required.

《情報処理装置の機能構成》
図3は、本実施形態に係る情報処理装置210の機能構成を示すブロック図である。なお、図3では、煩雑さをさけるため、実行命令列群は外部装置のコンパイラで生成され、情報処理装置210に入力される構成として説明する。
<< Functional configuration of information processing device >>
FIG. 3 is a block diagram illustrating a functional configuration of the information processing apparatus 210 according to the present embodiment. In FIG. 3, the execution instruction sequence group is generated by a compiler of an external device and input to the information processing device 210 to avoid complexity.

情報処理装置210は、出現頻度算出部311と、アクセス対象関連判定部312と、テスト命令列生成部213と、を備える。出現頻度算出部311は、命令出現頻度テーブル311aを有し、実行命令群を取得して出現頻度を算出する。アクセス対象関連判定部312は、レジスタ関連判定部321とメモリ領域関連判定部322とを備える。レジスタ関連判定部321は、レジスタ関連テーブル321aを有し、命令間でレジスタを共有する依存関係の度合いを判定する。メモリ領域関連判定部322は、メモリ領域関連テーブル322aを有し、命令間でメモリ領域を共有する依存関係の度合いを判定する。   The information processing apparatus 210 includes an appearance frequency calculation unit 311, an access target association determination unit 312, and a test instruction sequence generation unit 213. The appearance frequency calculation unit 311 has an instruction appearance frequency table 311a, acquires an execution instruction group, and calculates the appearance frequency. The access target association determination unit 312 includes a register association determination unit 321 and a memory area association determination unit 322. The register relation determination unit 321 has a register relation table 321a, and determines the degree of dependency that shares a register between instructions. The memory area association determination unit 322 has a memory area association table 322a, and determines the degree of dependency that shares a memory area between instructions.

テスト命令列生成部213は、頻度別命令テーブル生成部331と、テスト命令列テーブル生成部332とを備える。頻度別命令テーブル生成部331は、頻度別命令テーブル331aを有し、頻度別に(頻度順位に)命令と、レジスタやメモリ領域の共有との関係を示す頻度別の命令テーブルを生成する。テスト命令列テーブル生成部332は、テスト命令列テーブル332aを有し、頻度別命令テーブル331aを参照して、テスト命令列を生成する。なお、図示しないが、テスト命令列テーブル生成部332には、テスト命令列に使用する命令を選択する命令選択部と、アクセス対象との関連に基づいて、所定命令と選択された命令とのアクセス対象を関連付けるアクセス対象関連付け部と、を備える。   The test instruction sequence generation unit 213 includes a frequency-specific instruction table generation unit 331 and a test instruction sequence table generation unit 332. The frequency-specific instruction table generation unit 331 has a frequency-specific instruction table 331a, and generates a frequency-specific instruction table indicating the relationship between the frequency-specific (in frequency order) and the sharing of registers and memory areas. The test instruction sequence table generation unit 332 includes a test instruction sequence table 332a, and generates a test instruction sequence by referring to the frequency-specific instruction table 331a. Although not shown, the test instruction sequence table generation unit 332 accesses the predetermined instruction and the selected instruction based on the relationship between the instruction selection unit that selects an instruction used for the test instruction sequence and the access target. An access target associating unit for associating a target.

(解析テーブル)
図4は、本実施形態に係る命令コードテーブル410、命令出現頻度テーブル311a、レジスタ関連テーブル321aおよびメモリ領域関連テーブル322aの構成を示す図である。なお、図4においては、説明のしやすさを考慮して、命令の種別を表すオペコードは8つとし、OPn(n=0〜7)で表すこととする。また、テスト対象命令の前後3命令までの情報を元にテスト命令列を作成している例を示す。しかしながら、前後の命令数はLSIの論理に依存するため、そのLSIに最適な命令数とする必要がある。また、命令出現頻度テーブル311a、レジスタ関連テーブル321aおよびメモリ領域関連テーブル322aは、解析の前段では出現回数をカウントするために使用され、解析の後段では各出現回数の総出現回数に対して正規化された割合である出現率を記憶するために使用される。
(Analysis table)
FIG. 4 is a diagram showing a configuration of the instruction code table 410, the instruction appearance frequency table 311a, the register related table 321a, and the memory area related table 322a according to the present embodiment. In FIG. 4, in consideration of ease of explanation, it is assumed that there are eight opcodes indicating the type of instruction, and OPn (n = 0 to 7). Further, an example is shown in which a test instruction sequence is created based on information of up to three instructions before and after the test target instruction. However, since the number of instructions before and after depends on the logic of the LSI, it is necessary to set the optimum number of instructions for the LSI. Further, the instruction appearance frequency table 311a, the register related table 321a, and the memory area related table 322a are used to count the number of appearances in the previous stage of analysis, and are normalized with respect to the total number of appearances of each appearance number in the subsequent stage of analysis. Used to store the appearance rate, which is the proportion that was made.

命令コードテーブル410は、テスト対象命令の命令コードを記憶しておくためのテーブルである。図中のX,Y,Z,Dはそれぞれ命令コードのフィールドを示しており、Xは更新レジスタ番号、Y,Zは参照レジスタ、Dは即値を指定するためのフィールドである。例えば、メモリからデータをロードする命令であれば、Y,Zで示されるレジスタの値とDフィールドの即値を加算して生成されたメモリアドレスが示すメモリの領域から、データを取り出し、Xで示されるレジスタにそのデータを格納する。すなわち、メモリアドレス=R(Y)+R(Z)+Mであるが、例えば、R(Y)またはR(Z)を“0”に設定してレジスタの一方のみを使用する場合もある。さらに、他の命令であれば、レジスタとメモリ領域との利用が異なる場合もある。なお、メモリアドレスにより示されるメモリ領域は、コンピュータアーキテクチャにより異なり、メモリアドレスを先頭に8バイト(あるいは8ワード)の場合、4バイト(4ワード)、2バイト(2ワード)、1バイト(1ワード)などもある。   The instruction code table 410 is a table for storing the instruction code of the test target instruction. In the figure, X, Y, Z, and D indicate instruction code fields, where X is an update register number, Y and Z are reference registers, and D is a field for designating an immediate value. For example, in the case of an instruction for loading data from a memory, the data is extracted from the memory area indicated by the memory address generated by adding the register value indicated by Y, Z and the immediate value of the D field, and indicated by X. Store the data in a register. That is, memory address = R (Y) + R (Z) + M, but for example, only one of the registers may be used with R (Y) or R (Z) set to “0”. Further, the use of the register and the memory area may be different for other instructions. The memory area indicated by the memory address differs depending on the computer architecture. When the memory address starts with 8 bytes (or 8 words), 4 bytes (4 words), 2 bytes (2 words), 1 byte (1 word) ) Etc.

命令出現頻度テーブル311aは、テスト対象命令の前後3命令分の命令の出現頻度を表している。命令出現頻度テーブル311aのB1は、テスト対象命令の直前の命令位置を表わし、B2はB1の直前の命令位置を表わし、B3はB2の直前の命令位置を表している。命令出現頻度テーブル311aのA1は、テスト対象命令の直後の命令位置を表わし、A2はA2の直後の命令位置を表わし、A3はA2の直後の命令位置を表わしている。それぞれの枠内には、OPn(n=0〜7)の出現頻度(%)が記憶される。例えば、B1のOP0の欄に“40”という数字が書かれていれば、これはテスト対象命令の直前に命令OP0が実行される確率が40%であることを意味している。   The instruction appearance frequency table 311a represents the appearance frequencies of instructions for three instructions before and after the test target instruction. B1 in the instruction appearance frequency table 311a represents an instruction position immediately before the test target instruction, B2 represents an instruction position immediately before B1, and B3 represents an instruction position immediately before B2. A1 of the instruction appearance frequency table 311a represents an instruction position immediately after the test target instruction, A2 represents an instruction position immediately after A2, and A3 represents an instruction position immediately after A2. In each frame, the appearance frequency (%) of OPn (n = 0 to 7) is stored. For example, if the number “40” is written in the OP0 column of B1, this means that the probability that the instruction OP0 is executed immediately before the test target instruction is 40%.

レジスタ関連テーブル321aは、テスト対象命令の前後3命令分のレジスタ依存関係の頻度を表している。B1,B2,B3,A1,A2,A3は、命令出現頻度テーブル311aと同じ内容を示している。それぞれの枠内に、OPn(n=0〜7)のレジスタ依存の頻度(%)が記憶される。例えば、A1のOP3欄に25という数字が書かれていれば、これはテスト対象命令とその直後の命令OP3のレジスタ依存関係が、25%の割合で発生していることを示す。このレジスタの依存関係とは、テスト対象命令が更新するレジスタを後続の命令が参照すること、あるいは、テスト対象命令が参照するレジスタを先行する命令が更新することを意味する。   The register relation table 321a represents the frequency of register dependency for three instructions before and after the test target instruction. B1, B2, B3, A1, A2, and A3 show the same contents as the instruction appearance frequency table 311a. The frequency (%) of register dependency of OPn (n = 0 to 7) is stored in each frame. For example, if the number 25 is written in the OP3 column of A1, this indicates that the register dependency between the test target instruction and the instruction OP3 immediately after that occurs at a rate of 25%. This register dependency means that a subsequent instruction refers to a register that is updated by a test target instruction, or a preceding instruction updates a register that is referred to by a test target instruction.

メモリ領域関連テーブル322aは、テスト対象命令の前後3命令分のメモリアドレスの重複の頻度を記憶している。B1,B2,B3,A1,A2,A3は、命令出現頻度テーブル311aと同じ内容を示している。それぞれの枠内に、OPn(n=0〜7)のメモリアドレスの重複の頻度(%)が記憶される。例えば、B3のOP5の欄に18という数字が書かれていれば、これはテスト対象命令とその3命令前の命令OP5のアドレスが18%の頻度で重複していることを表わしている。このアドレスの重複とは、テスト対象命令が参照あるいは更新するメモリ領域と、このテスト対象命令の前後の命令が参照あるいは更新するメモリ領域が一部でも重なっていることを示す。例えば、8バイトアクセスのコンピュータアーキテクチャであれば、テスト対象命令がメモリアドレスの0x00000000〜0x00000007を更新し、B3のOP5がメモリアドレスの0x00000006〜0x0000000Dを参照する場合も、一部の領域が重なっているため、重複していると判断する。4バイト、あるいは、2バイトの場合も、一部の領域が重なっている場合に重複していると判断する。   The memory area association table 322a stores the frequency of memory address duplication for three instructions before and after the test target instruction. B1, B2, B3, A1, A2, and A3 show the same contents as the instruction appearance frequency table 311a. The frequency (%) of memory address duplication of OPn (n = 0 to 7) is stored in each frame. For example, if the number 18 is written in the OP5 column of B3, this indicates that the test target instruction and the address of the instruction OP5 three instructions before it overlap with each other at a frequency of 18%. This duplication of addresses indicates that a memory area that is referred to or updated by the test target instruction and a memory area that is referenced or updated by instructions before and after the test target instruction overlap at least. For example, in the case of an 8-byte access computer architecture, even when the test target instruction updates the memory address 0x00000000 to 0x00000007 and B3 OP5 refers to the memory address 0x00000006 to 0x0000000D, some areas overlap. Therefore, it is determined that there is an overlap. Even in the case of 4 bytes or 2 bytes, if some areas overlap, it is determined that they overlap.

なお、命令出現頻度テーブル311a、レジスタ関連テーブル321aおよびメモリ領域関連テーブル322aの頻度は、カウントした出現回数を総出現回数で割ったパーセントで表わすが、これに限定されない。また、出現回数をカウントするテーブルと、出現頻度を記憶するテーブルとを、別途に設けてもよい。   The frequency of the instruction appearance frequency table 311a, the register related table 321a, and the memory area related table 322a is expressed as a percentage obtained by dividing the counted number of appearances by the total number of appearances, but is not limited thereto. Further, a table for counting the number of appearances and a table for storing the appearance frequency may be provided separately.

(頻度別命令テーブル)
図5は、本実施形態に係る頻度別命令テーブル331aの構成を示す図である。この頻度別命令テーブル331aについても、説明のしやすさを考慮して、命令の種別を表すオペコードは8つとし、OPn(n=0〜7)で表し、解析範囲をテスト対象命令の前後3命令とする。
(Instruction table by frequency)
FIG. 5 is a diagram showing a configuration of the frequency-specific instruction table 331a according to the present embodiment. In this frequency-specific instruction table 331a, in consideration of ease of explanation, there are eight opcodes representing instruction types, represented by OPn (n = 0 to 7), and the analysis range is 3 before and after the instruction to be tested. It is an instruction.

頻度別命令テーブル331aは、命令OP0の頻度別命令テーブル501、命令OP1の頻度別命令テーブル502、…、命令OPnの頻度別命令テーブル50nを含む。   The instruction table by frequency 331a includes an instruction table by frequency 501 for the instruction OP0, an instruction table by frequency by the instruction OP1,..., And an instruction table by frequency 50n by the instruction OPn.

各命令の頻度別命令テーブルには、各命令を中心に、命令出現頻度テーブル311aと同じ内容のB1,B2,B3,A1,A2,A3が記憶される。テスト対象命令の前後3命令については、命令出現頻度テーブル311aに基づいて、頻度1位から頻度3位までの命令が記憶される。なお、命令数は頻度1位から頻度3位までの3つに限定されない。各頻度の命令枠には、命令と、レジスタの依存関係を示す“R”と、メモリ領域の依存関係を示す“M”と、が記憶される。   In the instruction table classified by frequency of each instruction, B1, B2, B3, A1, A2, and A3 having the same contents as the instruction appearance frequency table 311a are stored centering on each instruction. For the three instructions before and after the test target instruction, instructions from the first frequency to the third frequency are stored based on the instruction appearance frequency table 311a. The number of instructions is not limited to three from the first frequency to the third frequency. The instruction frame of each frequency stores an instruction, “R” indicating register dependency, and “M” indicating memory area dependency.

なお、依存関係を示す“R”や“M”を記憶する条件としては、種々の条件が考えられる。例えば、B1,B2,B3,A1,A2,A3の命令が決まったら、その中でテスト対象命令とレジスタの依存度が最も高い命令に“R”を設定し、テスト対象命令とメモリ領域の依存度が最も高い命令に“M”を設定してもよい。この場合、メモリ領域の依存度の比較に重複度を加味してもよい。あるいは、各命令の頻度別命令テーブル中の依存度の平均値を閾値として、その平均値より依存度が高い命令に“R”や“M”を記憶してもよい。あるいは、一律に依存度が所定パーセント(例えば、20%)を越える場合に、“R”や“M”を記憶してもよい。   Various conditions are conceivable as conditions for storing “R” and “M” indicating the dependency. For example, when the instructions B1, B2, B3, A1, A2, and A3 are determined, “R” is set to the instruction having the highest dependency between the test target instruction and the register, and the dependency between the test target instruction and the memory area is set. “M” may be set to the instruction having the highest degree. In this case, the degree of overlap may be added to the comparison of the dependence of the memory area. Alternatively, “R” and “M” may be stored in an instruction having a higher dependency than the average value, with the average value of the dependency in the instruction table classified by frequency of each instruction as a threshold value. Alternatively, “R” or “M” may be stored when the degree of dependence uniformly exceeds a predetermined percentage (for example, 20%).

(テスト命令列テーブル)
図6は、本実施形態に係るテスト命令列テーブル332aの構成を示す図である。このテスト命令列テーブル332aについても、説明のしやすさを考慮して、命令の種別を表すオペコードは8つとし、OPn(n=0〜7)で表し、解析範囲をテスト対象命令の前後3命令とする。
(Test instruction sequence table)
FIG. 6 is a diagram showing a configuration of the test instruction sequence table 332a according to the present embodiment. Also in the test instruction sequence table 332a, in consideration of ease of explanation, there are eight operation codes representing instruction types, represented by OPn (n = 0 to 7), and the analysis range is 3 before and after the instruction to be tested. It is an instruction.

テスト命令列テーブル332aには、テスト対象命令を中心とした7つの命令列が並べられる。図6においては、OPi,OPj,OPk,OPmをテスト対象命令として、頻度別命令テーブル331aを参照し、前後3つの所定の頻度順位の命令を並べる。そして、命令間のレジスタやメモリ領域の依存関係からR(X),R(Y),R(Z),Dの値を、同じレジスタをアクセスし、同じ(重なりを含む)メモリ領域をアクセスするように書き込む。   In the test instruction sequence table 332a, seven instruction sequences centered on the test target instruction are arranged. In FIG. 6, OPi, OPj, OPk, and OPm are used as test target instructions, the frequency-specific instruction table 331a is referred to, and instructions having three predetermined frequency ranks are arranged. Then, the same register is accessed for the values of R (X), R (Y), R (Z), and D from the dependency relationship between the registers and memory areas between instructions, and the same (including overlapping) memory area is accessed. To write.

なお、テスト対象命令に選択は、テスト対象となるコンピュータやプロセッサのアーキテクチャが有する全命令の中から、ランダムに選択してもよいし、命令をグループ化して、グループ毎の選択確率を上げるなどの重みを付けた選択をしてもよい。また、テスト対象命令が決まった場合の前後の命令列の選択は、頻度1位、頻度2位、頻度3位、…を選択する割合を順に重み付けして、選択してもよい。例えば、頻度1位は50%、頻度2位は30%。頻度3位は20%などと設定して、この確率で選択する。あるいは、命令によって、命令グループによって、選択の重み付けを変えてもよい。   Note that the instruction to be tested may be selected randomly from all the instructions of the computer or processor architecture to be tested, or the instructions may be grouped to increase the selection probability for each group. You may make a weighted selection. In addition, the selection of instruction sequences before and after the test target instruction may be selected by sequentially weighting the ratio of selecting the first frequency, second frequency, third frequency,. For example, frequency 1st is 50%, frequency 2nd is 30%. The 3rd frequency is set to 20% and so on, and is selected with this probability. Alternatively, the selection weight may be changed depending on the instruction and the instruction group.

《情報処理装置のハードウェア構成》
図7は、本実施形態に係る情報処理装置210のハードウェア構成を示す図である。
<< Hardware configuration of information processing equipment >>
FIG. 7 is a diagram illustrating a hardware configuration of the information processing apparatus 210 according to the present embodiment.

図7で、CPU(Central Processing Unit)710は演算制御用のプロセッサであり、プログラムを実行することで図3の情報処理装置210の機能構成部を実現する。ROM(Read Only Memory)720は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部730は、ネットワークを介して他の装置と通信する。なお、CPU710は1つに限定されず、複数のCPUであってもよい。また、通信制御部730は、CPU710とは独立したCPUを有して、RAM(Random Access Memory)740の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM740とストレージ750との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。さらに、入出力インタフェース760は、CPU710とは独立したCPUを有して、RAM740の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU710は、RAM740にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU710は、処理結果をRAM740に準備し、後の送信あるいは転送は通信制御部730やDMAC、あるいは入出力インタフェース760に任せる。   In FIG. 7, a CPU (Central Processing Unit) 710 is a processor for arithmetic control, and implements a functional configuration unit of the information processing apparatus 210 in FIG. 3 by executing a program. A ROM (Read Only Memory) 720 stores fixed data and programs such as initial data and programs. The communication control unit 730 communicates with other devices via a network. Note that the number of CPUs 710 is not limited to one, and may be a plurality of CPUs. The communication control unit 730 preferably includes a CPU independent of the CPU 710 and writes or reads transmission / reception data in a RAM (Random Access Memory) 740 area. It is desirable to provide a DMAC (Direct Memory Access Controller) that transfers data between the RAM 740 and the storage 750 (not shown). Further, the input / output interface 760 preferably has a CPU independent of the CPU 710 and writes or reads input / output data to / from the area of the RAM 740. Therefore, the CPU 710 recognizes that the data has been received or transferred to the RAM 740 and processes the data. Further, the CPU 710 prepares the processing result in the RAM 740 and leaves the subsequent transmission or transfer to the communication control unit 730, the DMAC, or the input / output interface 760.

RAM740は、CPU710が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM740には、本実施形態の実現に必要なデータを記憶する領域が確保されている。ソースコード群741は、本情報処理装置210がコンパイルを行なう場合に取得したソースコード群である。実行命令列群742は、本情報処理装置210のコンパイラモジュール群759でソースコード群741をコンパイルして生成された、あるいは、外部装置でコンパイルされて入力された実行命令列群である。テスト対象命令743は、出現頻度を解析するためのテスト対象となる命令である。命令出現頻度テーブル311aは、図4に示した命令の出現頻度を解析するテーブルである。レジスタ関連テーブル321aは、図4に示した命令間のレジスタの依存関係を解析するテーブルである。メモリ領域関連テーブル322aは、図4に示した命令間のメモリ領域の依存関係を解析するテーブルである。頻度別命令テーブル331aは、図5に示した頻度順に前後命令と、そのレジスタやメモリ領域の依存関係を解析した、テスト命令列生成に直接使用するテーブルである。テスト命令列テーブル332aは、頻度別命令テーブル331aに基づいて生成されたテスト命令列のテーブルである。入出力データ744は、入出力インタフェース760を介して入出力デバイスにより入出力するデータである。送受信データ745は、通信制御部730を介して送受信するデータである。   The RAM 740 is a random access memory that the CPU 710 uses as a work area for temporary storage. In the RAM 740, an area for storing data necessary for realizing the present embodiment is secured. The source code group 741 is a source code group acquired when the information processing apparatus 210 compiles. The execution instruction sequence group 742 is an execution instruction sequence group generated by compiling the source code group 741 by the compiler module group 759 of the information processing apparatus 210 or being compiled and input by an external apparatus. The test target instruction 743 is an instruction to be a test target for analyzing the appearance frequency. The instruction appearance frequency table 311a is a table for analyzing the appearance frequency of the instruction shown in FIG. The register-related table 321a is a table for analyzing the register dependency between instructions shown in FIG. The memory area related table 322a is a table for analyzing the dependency relation of the memory area between the instructions shown in FIG. The frequency-specific instruction table 331a is a table directly used for test instruction sequence generation in which the dependency relationship between the preceding and following instructions and their registers and memory areas is analyzed in the order shown in FIG. The test instruction sequence table 332a is a table of test instruction sequences generated based on the frequency-specific instruction table 331a. The input / output data 744 is data input / output by the input / output device via the input / output interface 760. Transmission / reception data 745 is data transmitted / received via the communication control unit 730.

ストレージ750には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。関連命令選択閾値751は、関連がある命令として選択する基準となる閾値である。関連レジスタ判定閾値752は、レジスタに依存関係があると判定する基準となる閾値である。関連メモリ領域判定閾値753は、メモリ領域に依存関係があると判定する基準となる閾値である。テスト命令列生成アルゴリズム754は、本実施形態におけるテスト命令列を生成するためのアルゴリズムである。   The storage 750 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment. The related command selection threshold 751 is a threshold value serving as a reference for selecting as a related command. The related register determination threshold 752 is a threshold serving as a reference for determining that there is a dependency relationship between registers. The related memory area determination threshold 753 is a threshold serving as a reference for determining that there is a dependency relationship in the memory area. The test instruction sequence generation algorithm 754 is an algorithm for generating a test instruction sequence in the present embodiment.

ストレージ750には、以下のプログラムが格納される。情報処理装置制御プログラム755は、情報処理装置210の全体を制御するプログラムである。実行命令列解析モジュール756は、実行命令列群から命令の出現頻度、および、レジスタやメモリ領域の関連(依存関係)を解析するモジュールである。頻度別命令テーブル生成モジュール757は、実行命令列解析モジュール756が解析した結果の、命令出現頻度テーブル311a、レジスタ関連テーブル321a、および、メモリ領域関連テーブル322aを参照して、頻度別命令テーブル331aを生成するモジュールである。テスト命令列生成モジュール758は、頻度別命令テーブル331aを参照してテスト命令列テーブル332aを生成するモジュールである。また、コンパイラモジュール群759は、本情報処理装置がコンパイルを行なう場合のモジュール群である。   The storage 750 stores the following programs. The information processing device control program 755 is a program that controls the entire information processing device 210. The execution instruction sequence analysis module 756 is a module that analyzes the appearance frequency of instructions from the execution instruction sequence group and the relationship (dependency relationship) between registers and memory areas. The frequency-specific instruction table generation module 757 refers to the instruction appearance frequency table 311a, the register-related table 321a, and the memory area-related table 322a as a result of analysis by the execution instruction sequence analysis module 756, and generates the frequency-specific instruction table 331a. This is the module to generate. The test instruction sequence generation module 758 is a module that generates the test instruction sequence table 332a with reference to the frequency-specific instruction table 331a. The compiler module group 759 is a module group when the information processing apparatus compiles.

入出力インタフェース760は、入出力機器との入出力データをインタフェースする。入出力インタフェース760には、表示部561、操作部562、が接続される。また、入出力インタフェース760には、記憶媒体のRW(リード/ライト)部が接続される。必要であれば、音声入出力部やGPS(Global Positioning System)位置判定部などが接続されてもよい。   The input / output interface 760 interfaces input / output data with input / output devices. A display unit 561 and an operation unit 562 are connected to the input / output interface 760. The input / output interface 760 is connected to an RW (read / write) unit of the storage medium. If necessary, a voice input / output unit, a GPS (Global Positioning System) position determination unit, or the like may be connected.

なお、図7のRAM740やストレージ750には、情報処理装置210が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   Note that the RAM 740 and storage 750 in FIG. 7 do not show programs and data related to general-purpose functions and other realizable functions of the information processing apparatus 210.

《情報処理装置の処理手順》
図8は、本実施形態に係る情報処理装置210の処理手順を示すフローチャートである。このフローチャートは、図7のCPU710がRAM740を使用して実行し、図3の機能構成部を実現する。
<< Processing procedure of information processing device >>
FIG. 8 is a flowchart illustrating a processing procedure of the information processing apparatus 210 according to the present embodiment. This flowchart is executed by the CPU 710 in FIG. 7 using the RAM 740, and implements the functional configuration unit in FIG.

情報処理装置210は、ステップS801において、オプションとして、コンパイラ群によりソースコード群から実行命令列群を生成する。なお、情報処理装置210がコンパイルをしない場合は、外部装置から実行命令列群を取得する。情報処理装置210は、ステップS803において、実行命令列解析処理を実行する。そして、情報処理装置210は、ステップS805において、出現回数を集計した出現テーブルを出現率で正規化する。情報処理装置210は、ステップS807において、出現率で正規化された出現テーブルを参照して、頻度別命令テーブル生成処理を実行する。情報処理装置210は、ステップS809において、頻度別命令テーブルを参照して、テスト命令列生成処理を実行する。   In step S801, the information processing apparatus 210 generates an execution instruction sequence group from a source code group as an option by a compiler group. When the information processing apparatus 210 does not compile, an execution instruction string group is acquired from an external apparatus. In step S803, the information processing apparatus 210 executes an execution instruction sequence analysis process. In step S805, the information processing apparatus 210 normalizes the appearance table in which the number of appearances is tabulated with the appearance rate. In step S <b> 807, the information processing apparatus 210 refers to the appearance table normalized by the appearance rate and executes a frequency-specific instruction table generation process. In step S809, the information processing apparatus 210 refers to the frequency-specific instruction table and executes a test instruction sequence generation process.

(実行命令列解析処理)
図9Aは、本実施形態に係る実行命令列解析処理(S803)の手順を示すフローチャートである。
(Execution instruction sequence analysis processing)
FIG. 9A is a flowchart showing the procedure of the execution instruction sequence analysis process (S803) according to the present embodiment.

情報処理装置210は、ステップS911において、コンパイラが出力したロードモジュールを読み込み、命令列の先頭を探す。情報処理装置210は、ステップS913において、命令列の先頭の1命令を読み込み、ステップ915において、その命令が現在のテスト対象命令であるかどうかを判断する。現在のテスト対象命令でない場合は、ステップS913に戻り、次の命令を読み込み、再度、テスト対象命令であるかどうかを確認する。テスト対象命令である場合は、情報処理装置210は、ステップS917にへ進み、テスト対象命令のX,Y,Z,Dフィールドを判断し、命令コードテーブル410に書き込む。   In step S911, the information processing apparatus 210 reads the load module output by the compiler and searches for the head of the instruction sequence. In step S913, the information processing apparatus 210 reads the first instruction in the instruction sequence. In step 915, the information processing apparatus 210 determines whether the instruction is the current test target instruction. If it is not the current test target instruction, the process returns to step S913 to read the next instruction and confirm again whether it is the test target instruction. If it is a test target instruction, the information processing apparatus 210 proceeds to step S917, determines the X, Y, Z, and D fields of the test target instruction and writes them in the instruction code table 410.

情報処理装置210は、ステップS919において、テスト対象命令の直前の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのB1行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのB1行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、直前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのB1行の対応する欄を“+1”カウントする。   In step S919, the information processing apparatus 210 reads the instruction immediately before the test target instruction, refers to the operation code, and counts “+1” in the corresponding column of the B1 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, the corresponding opcode column in the B1 row of the register relation table 321a is counted as “+1”. Further, when the test target instruction is a memory access instruction and the immediately preceding instruction is also a memory access instruction, a memory address is generated from each of the Y, Z, and D fields. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column of the B1 row of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS921において、テスト対象命令の2つ前の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのB2行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのB2行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、2つ前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのB2行の対応する欄を“+1”カウントする。   In step S921, the information processing apparatus 210 reads the instruction immediately before the test target instruction, refers to the operation code, and counts “+1” in the corresponding column in the B2 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, “+1” is counted in the corresponding opcode column in the B2 line of the register relation table 321a. Further, if the test target instruction is a memory access instruction and the previous instruction is also a memory access instruction, memory addresses are generated from the Y, Z, and D fields, respectively. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column of the B2 line of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS923において、テスト対象命令の3つ前の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのB3行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのB3行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、2つ前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのB3行の対応する欄を“+1”カウントする。   In step S923, the information processing apparatus 210 reads the instruction three instructions before the test target instruction, refers to the operation code, and counts “+1” in the corresponding column in the B3 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, “+1” is counted in the corresponding opcode column in line B3 of the register relation table 321a. Further, if the test target instruction is a memory access instruction and the previous instruction is also a memory access instruction, memory addresses are generated from the Y, Z, and D fields, respectively. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column of the B3 line of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS925において、テスト対象命令の直後の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのA1行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのA1行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、2つ前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのA1行の対応する欄を“+1”カウントする。   In step S925, the information processing apparatus 210 reads the instruction immediately after the test target instruction, refers to the operation code, and counts “+1” in the corresponding column of the A1 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, the corresponding opcode column in the A1 line of the register relation table 321a is counted as “+1”. Further, if the test target instruction is a memory access instruction and the previous instruction is also a memory access instruction, memory addresses are generated from the Y, Z, and D fields, respectively. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column in the A1 line of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS927において、テスト対象命令の2つ後の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのA2行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのA2行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、2つ前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのA2行の対応する欄を“+1”カウントする。   In step S927, the information processing apparatus 210 reads the instruction after the test target instruction, refers to the operation code, and counts “+1” in the corresponding column in the A2 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, the corresponding opcode column in the A2 line of the register relation table 321a is counted as “+1”. Further, if the test target instruction is a memory access instruction and the previous instruction is also a memory access instruction, memory addresses are generated from the Y, Z, and D fields, respectively. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column in the A2 line of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS929において、テスト対象命令の3つ後の命令を読み込み、オペコードを参照し、命令出現頻度テーブル311aのA3行の対応する欄を“+1”カウントする。続いて、Xフィールドを参照し、命令コードテーブル410のR(Y),R(Z)と比較して一致しているかを確認する。一致している場合は、レジスタ関連テーブル321aのA3行の対応するオペコード欄を“+1”カウントする。さらに、テスト対象命令がメモリアクセス命令で、かつ、2つ前の命令もメモリアクセス命令だった場合、それぞれY,Z,Dフィールドからメモリアドレスを生成する。そして、アクセス領域が重複しているかどうかをチェックし、重複している場合は、メモリ領域関連テーブル322aのA3行の対応する欄を“+1”カウントする。   In step S929, the information processing apparatus 210 reads the instruction three times after the test target instruction, refers to the operation code, and counts “+1” in the corresponding column in the A3 line of the instruction appearance frequency table 311a. Subsequently, the X field is referred to and compared with R (Y) and R (Z) in the instruction code table 410 to confirm whether they match. If they match, the corresponding opcode column in the A3 line of the register relation table 321a is counted as “+1”. Further, if the test target instruction is a memory access instruction and the previous instruction is also a memory access instruction, memory addresses are generated from the Y, Z, and D fields, respectively. Then, it is checked whether or not the access areas are duplicated. If they are duplicated, the corresponding column of the A3 line of the memory area relation table 322a is counted as “+1”.

情報処理装置210は、ステップS931において、コンパイラ出力のロードモジュールの命令列の最後かどうかを判断し、最後でなければ、ステップS913に戻って、次の命令を読み込み、前述のステップS915〜S929の動作を行う。最後の命令だった場合は、情報処理装置210は、ステップS933においてn=n+1を行い、ステップS935において、n≦7の場合はステップS913に戻って、次の命令を読み込み、前述のステップS915〜S929の動作を行う。n=8の場合は、ここで一連の処理を終了する。   In step S931, the information processing apparatus 210 determines whether or not the instruction sequence of the load module output by the compiler is the last one. If not, the information processing apparatus 210 returns to step S913, reads the next instruction, and performs the above-described steps S915 to S929. Perform the action. If it is the last instruction, the information processing apparatus 210 performs n = n + 1 in step S933. If n ≦ 7 in step S935, the process returns to step S913 to read the next instruction, and the above-described steps S915 to S915 are performed. The operation of S929 is performed. If n = 8, a series of processing ends here.

(頻度別命令テーブル生成処理)
図9Bは、本実施形態に係る頻度別命令テーブル生成処理(S807)の手順を示すフローチャートである。
(Instruction table generation by frequency)
FIG. 9B is a flowchart showing the procedure of the frequency-specific instruction table generation process (S807) according to the present embodiment.

情報処理装置210は、ステップS941において、出現率で正規化された命令出現頻度テーブル311aを取得する。情報処理装置210は、ステップS943において、出現頻度順に所定数の命令を頻度別命令テーブル331aに記憶する。本例では頻度1位〜頻度3位であれば、その数に限定はない。   In step S941, the information processing apparatus 210 acquires the command appearance frequency table 311a normalized by the appearance rate. In step S943, the information processing apparatus 210 stores a predetermined number of commands in the frequency-specific command table 331a in the order of appearance frequency. In this example, the number is not limited as long as it is ranked first to third frequency.

情報処理装置210は、ステップS945において、頻度別命令テーブル331aに記憶された命令から1つの命令を選択する。情報処理装置210は、ステップS947において、レジスタ関連テーブル321aを参照して、テスト対象命令と選択命令間の使用レジスタに関連があるか否かを判定する。テスト対象命令と選択命令間の使用レジスタに関連がある場合、情報処理装置210は、ステップS949において、頻度別命令テーブルの選択命令に“R”を記入する。情報処理装置210は、ステップS951において、メモリ領域関連テーブル322aを参照して、テスト対象命令と選択命令間のアクセスするメモリ領域に関連があるか否かを判定する。テスト対象命令と選択命令間のアクセスするメモリ領域に関連がある場合、情報処理装置210は、ステップS953において、頻度別命令テーブルの選択命令に“M”を記入する。なお、使用レジスタに関連がある、あるいは、メモリ領域に関連がある、との判定基準には、図5の頻度別命令テーブル331aの説明で記載したように種々の基準があり、より効果的な基準が使用される。   In step S945, the information processing apparatus 210 selects one instruction from the instructions stored in the frequency-specific instruction table 331a. In step S947, the information processing apparatus 210 refers to the register relation table 321a and determines whether or not there is a relation between the register to be used between the test target instruction and the selected instruction. When there is a relation between the register used between the test target instruction and the selected instruction, the information processing apparatus 210 writes “R” in the selected instruction of the instruction table by frequency in step S949. In step S951, the information processing apparatus 210 refers to the memory area association table 322a and determines whether there is a relation between the memory area to be accessed between the test target instruction and the selected instruction. If there is a relationship between the memory area to be accessed between the test target instruction and the selected instruction, the information processing apparatus 210 writes “M” in the selected instruction in the instruction table by frequency in step S953. As described in the explanation of the frequency-specific instruction table 331a in FIG. 5, there are various criteria for determining whether the register is related to the used register or the memory area. Standards are used.

情報処理装置210は、ステップS955において、頻度別命令テーブル331aに記憶された全ての命令の処理が終了したか否かを判定する。全ての命令の処理が終了してなければ、情報処理装置210は、ステップS945に戻って、頻度別命令テーブル331aに記憶された他の命令に対して処理を繰り返す。全ての命令の処理が終了すればステップS807の処理を終了する。   In step S955, the information processing apparatus 210 determines whether or not the processing of all instructions stored in the frequency-specific instruction table 331a has been completed. If processing of all instructions has not been completed, the information processing apparatus 210 returns to step S945 and repeats processing for other instructions stored in the frequency-specific instruction table 331a. If all the instructions have been processed, the process in step S807 ends.

(テスト命令列生成処理)
図9Cは、本実施形態に係るテスト命令列生成処理(S809)の手順を示すフローチャートである。
(Test instruction sequence generation processing)
FIG. 9C is a flowchart showing the procedure of the test instruction sequence generation process (S809) according to the present embodiment.

情報処理装置210は、ステップS961において、テスト対象命令を選択する。情報処理装置210は、ステップS963において、テスト対象命令の頻度別命令テーブル331aを読み出す(図5では、501〜50n)。情報処理装置210は、ステップS965において、設定された同じ頻度順位の前後命令列を選択して、テスト命令列テーブル332aに記憶する。なお、ステップS961におけるテスト対象命令の選択は、ランダムに選択してもよいし、命令をグループ化して、グループ毎の選択確率を上げるなどの重みを付けた選択をしてもよい。また、ステップS965における頻度順位の選択は、頻度1位、頻度2位、頻度3位、…を選択する割合を順に重み付けして、選択してもよいし、命令によって、命令グループによって、選択の重み付けを変えてもよい。   In step S961, the information processing apparatus 210 selects a test target instruction. In step S963, the information processing apparatus 210 reads the instruction table 331a according to frequency of the test target instruction (501 to 50n in FIG. 5). In step S965, the information processing apparatus 210 selects the preceding and following instruction sequences having the same frequency order and stores them in the test instruction sequence table 332a. Note that the test target instruction in step S961 may be selected at random, or may be selected with weights such as grouping instructions to increase the selection probability for each group. Further, the selection of the frequency rank in step S965 may be performed by weighting the ratio of selecting the frequency first, frequency second, frequency third,... In order, or by the instruction, by the instruction group. The weight may be changed.

情報処理装置210は、ステップS967において、テスト命令列テーブル332aに記憶された命令から1つの命令を選択する。情報処理装置210は、ステップS969において、選択命令に“R”が記憶されているか否かを判定する。選択命令に“R”が記憶されている場合、情報処理装置210は、ステップS971において、テスト対象命令と選択命令間の対応するレジスタを関連付ける。情報処理装置210は、ステップS973において、選択命令に“M”が記憶されているか否かを判定する。選択命令に“M”が記憶されている場合、情報処理装置210は、ステップS975において、テスト対象命令と選択命令間の対応するメモリアドレスを関連付ける。   In step S967, the information processing apparatus 210 selects one instruction from the instructions stored in the test instruction sequence table 332a. In step S969, the information processing apparatus 210 determines whether “R” is stored in the selection instruction. If “R” is stored in the selected instruction, the information processing apparatus 210 associates a corresponding register between the test target instruction and the selected instruction in step S971. In step S973, the information processing apparatus 210 determines whether “M” is stored in the selection instruction. If “M” is stored in the selected instruction, the information processing apparatus 210 associates a corresponding memory address between the test target instruction and the selected instruction in step S975.

情報処理装置210は、ステップS977において、1つのテスト対象命令のテスト命令列の処理が終了したか否かを判定する。1つのテスト対象命令のテスト命令列の処理が終了してない場合、情報処理装置210は、ステップS957に戻り、テスト命令列の他の命令の処理を繰り返す。   In step S977, the information processing apparatus 210 determines whether or not the processing of the test instruction sequence of one test target instruction has been completed. If the processing of the test instruction sequence of one test target instruction has not been completed, the information processing apparatus 210 returns to step S957 and repeats the processing of other instructions in the test instruction sequence.

1つのテスト対象命令のテスト命令列の処理が終了した場合、情報処理装置210は、ステップS979において、他のテスト対象命令があるか否かを判定する。他のテスト対象命令があれば、情報処理装置210は、ステップS961に戻り、他のテスト対象命令からテスト命令列を生成する処理を繰り返す。他のテスト対象命令がなければ、テスト命令列生成処理を終了する。   When the processing of the test instruction sequence of one test target instruction is completed, the information processing apparatus 210 determines whether there is another test target instruction in step S979. If there is another test target instruction, the information processing apparatus 210 returns to step S961 and repeats the process of generating a test instruction sequence from the other test target instruction. If there is no other test target instruction, the test instruction sequence generation process is terminated.

《テスト命令列の生成具体例》
以下、図10A〜図12を参照して、具体的な例におけるテスト命令列の生成手順を詳細に説明する。なお、図10A〜図12の例は一例であって、これに限定されない。
<< Specific example of test instruction sequence generation >>
Hereinafter, a procedure for generating a test instruction sequence in a specific example will be described in detail with reference to FIGS. In addition, the example of FIG. 10A-FIG. 12 is an example, Comprising: It is not limited to this.

(出現数例)
図10Aは、本実施形態に係る命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aの元になる出現数例1011、1021および1022を示す図である。なお、命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aは、出現数例1011、1021および1022を記憶し、その後、算出した出現頻度を記憶可能である。
(Number of occurrences)
FIG. 10A is a view showing appearance number examples 1011, 1021 and 1022 which are the basis of the instruction appearance frequency table 1011a, the register related table 1021a and the memory area related table 1022a according to the present embodiment. The instruction appearance frequency table 1011a, the register related table 1021a, and the memory area related table 1022a can store the appearance number examples 1011, 1021, and 1022, and then can store the calculated appearance frequencies.

出現数例1011、1021および1022は、図9Aの実行命令列解析処理に従って生成された、OP0をテスト対象命令とした場合の、命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aの各枠においてカウントされた出現回数の例である。   Examples of appearance numbers 1011, 1021 and 1022 are generated by the instruction appearance frequency table 1011a, the register related table 1021a and the memory area related table 1022a when OP0 is generated according to the execution instruction sequence analysis process of FIG. It is an example of the frequency | count of appearance counted in each frame.

なお、図10Aには図示されていないが、他の命令(本例では、OP1〜OP7)をテスト対象命令とした出現回数もカウントされている。   Although not shown in FIG. 10A, the number of appearances using other instructions (OP1 to OP7 in this example) as test target instructions is also counted.

(出現頻度正規化例)
図10Bは、本実施形態に係る命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aの出現頻度正規化例を示す図である。なお、図10Bの出現頻度は、各出現回数の総出現回数に対する四捨五入したパーセントで表わしているが、出現頻度の算出方法はこれに限定されない。
(Appearance frequency normalization example)
FIG. 10B is a diagram showing an example of appearance frequency normalization of the instruction appearance frequency table 1011a, the register related table 1021a, and the memory area related table 1022a according to the present embodiment. Note that the appearance frequency in FIG. 10B is expressed as a rounded percentage of the total number of appearances, but the method of calculating the appearance frequency is not limited to this.

図10Aで、命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aに出現回数が記憶されるが、このままでは出現回数や依存回数、重複回数という数値であるため、出現頻度が明確に比較できない。図10Bの出現頻度正規化例は、それぞれ、出現頻度(%)、依存割合(%)、重複割合(%)に正規化して数字の重みを明確にしたものである。例えば、命令出現頻度テーブル1011aのB3行であれば、B3行の総和で各OP0〜OP7の値を割れば、総命令に対する割合が求められる。レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aについては、総和を命令出現頻度テーブル1011aで求めることで、総命令数に対する割合が求められる。   In FIG. 10A, the number of appearances is stored in the instruction appearance frequency table 1011a, the register related table 1021a, and the memory area related table 1022a. I can't compare. The appearance frequency normalization example in FIG. 10B is obtained by normalizing the appearance frequency (%), the dependency ratio (%), and the duplication ratio (%) to clarify the weights of the numbers. For example, in the case of the B3 row of the instruction appearance frequency table 1011a, the ratio to the total instructions can be obtained by dividing the values of OP0 to OP7 by the sum of the B3 rows. As for the register related table 1021a and the memory area related table 1022a, the total is obtained from the instruction appearance frequency table 1011a, whereby the ratio to the total number of instructions is obtained.

図10Aの出現数例1011、1021および1022を上述の方法で正規化したものが、図10Bの命令出現頻度テーブル1011a、レジスタ関連テーブル1021aおよびメモリ領域関連テーブル1022aである。例えば、OP0の直前の命令として出現する頻度が一番高いのは、OP0の直前の命令として出現した全命令数の中で56%を占めるOP7になり、OP0の直後の命令でレジスタの依存度の高い命令は、20%を占めるOP5となる。   The instruction frequency table 1011a, the register relation table 1021a, and the memory area relation table 1022a in FIG. 10B are obtained by normalizing the appearance number examples 1011, 1021, and 1022 in FIG. 10A by the above-described method. For example, the most frequently occurring instruction as the instruction immediately before OP0 is OP7, which accounts for 56% of the total number of instructions appearing as the instruction immediately preceding OP0. The higher order is OP5 which accounts for 20%.

(頻度別命令テーブルの生成例)
図11は、本実施形態に係る出現頻度正規化例から生成された頻度別命令テーブル1131aの生成例の構成を示す図である。頻度別命令テーブル1131aは、テスト命令列を組み立てるために必要な情報をまとめたテーブルであり、このテーブルの情報を基にテスト命令列生成部がテスト命令列を組み立てる。頻度別命令テーブル1131aは、OP0がテスト対象命令の頻度別命令テーブル1101、OP1がテスト対象命令の頻度別命令テーブル1102、…、OP7がテスト対象命令の頻度別命令テーブル1108を有する。
(Example of command table generation by frequency)
FIG. 11 is a diagram showing a configuration of a generation example of the frequency-specific instruction table 1131a generated from the appearance frequency normalization example according to the present embodiment. The frequency-specific instruction table 1131a is a table in which information necessary for assembling a test instruction sequence is compiled, and the test instruction sequence generation unit assembles a test instruction sequence based on the information in this table. The frequency-specific instruction table 1131a has a frequency-specific instruction table 1101 where OP0 is a test target instruction, OP1 is a frequency-specific instruction table 1102 where OP1 is a test target instruction,.

具体的な頻度別命令テーブル1131aの見方について説明する。例えば、OP0命令をテストするに当たり、最も頻度を高くするべきテスト命令列が頻度1位、2番目あるいは3番目に頻度を上げる命令列が頻度2位と頻度3位になる。頻度1位の命令列は、OP0の直前がOP7、その前がOP5、その前がOP3となり、OP0の直後がOP6、次がOP4、次がOP2の順番となる。ここでさらに、レジスタの依存関係とメモリアドレスの重複の有無とを判定して保持する。なお、本具体例においては、“R”や“M”の設定に、B1,B2,B3,A1,A2,A3の命令が決まったら、その中でテスト対象命令とレジスタの依存度が15%以上で最も高い命令に“R”を設定し、テスト対象命令とメモリ領域の依存度が15%以上で最も高い命令に“M”を設定する方法を採用している。頻度1位で説明すると、レジスタの依存関係があるのは、OP0の直前のOP7と、OP0の2つ後ろのOP4命令となり、メモリアドレスに重複があるのは、OP0の2つ前のOP5になる。なお、この例では、頻度1位から頻度3位までを記載したが、これを何位まで考慮してテスト命令列を作成するかはコンピュータのアーキテクチャや評価期間等に依存する。   A specific way of viewing the frequency-specific instruction table 1131a will be described. For example, when testing an OP0 instruction, the test instruction sequence that should be the highest in frequency is ranked first in frequency, and the instruction sequence that increases the frequency second or third is ranked second in frequency and third in frequency. The instruction sequence with the highest frequency is OP7 immediately before OP0, OP5 before it, and OP3 before it, and OP6 immediately after OP0, OP4 next, and OP2 next. Here, the dependency relationship between the registers and the presence or absence of duplication of memory addresses are further determined and held. In this specific example, if the instructions B1, B2, B3, A1, A2, and A3 are determined to set “R” and “M”, the dependency between the test target instruction and the register is 15%. A method is adopted in which “R” is set for the highest instruction and “M” is set for the highest instruction when the dependency between the test target instruction and the memory area is 15% or more. Explaining the first place in frequency, the register dependency is the OP7 immediately before OP0 and the OP4 instruction that is two after OP0, and the memory address is duplicated in OP5 two before OP0. Become. In this example, the first frequency to the third frequency are described, but how many of these are taken into consideration depends on the architecture of the computer, the evaluation period, and the like.

(テスト命令列テーブルの生成例)
図12は、本実施形態に係る頻度別命令テーブルの生成例から生成されたテスト命令列テーブル1232aの生成例の構成を示す図である。なお、テスト命令列は、規則的な命令列やランダムな命令列があり、いろいろな生成法に上記テーブルを適用することでバグ摘出効果の高いテスト命令列を生成することができるが、ここでは、ランダムに命令列を生成する場合に頻度別命令テーブル1131aを用いる方法について説明を行う。
(Example of test instruction sequence table generation)
FIG. 12 is a diagram showing a configuration of a generation example of the test instruction sequence table 1232a generated from the generation example of the frequency-specific instruction table according to the present embodiment. The test instruction sequence includes a regular instruction sequence and a random instruction sequence. By applying the above table to various generation methods, a test instruction sequence with a high bug extraction effect can be generated. A method of using the frequency-specific instruction table 1131a when randomly generating an instruction sequence will be described.

テスト命令列を生成する場合のパラメータとして、一般的に命令数が入力として与えられる。これはテスト命令列の命令数をいくつにするかを決めるパラメータであるが、説明を簡潔にするために、ここでは30命令とする。一般的には数百命令から数万命令以上の場合も考えられる。   In general, the number of instructions is given as an input as a parameter when generating a test instruction sequence. This is a parameter that determines how many instructions in the test instruction sequence are to be used, but in order to simplify the explanation, 30 instructions are used here. In general, a case where there are hundreds to tens of thousands of instructions is also conceivable.

次に、この命令数を元に、オペコードをランダムに抽出する。このオペコードの抽出方法には全くランダムに行う方法がある。また、メモリアクセス系の命令グループ、固定小数点演算の命令グループ、浮動小数点演算命令グループなどに分けて、これらのグループの重みを指定して、この重みが大きいほど、出現頻度を高くしたりする、規則を含む方法などがある。なお、ここでは全くランダムに抽出する方法で説明を行う。また、頻度何位を使用するかは、頻度別命令テーブル1101〜1108共通に、頻度1位は50%、頻度2位は30%。頻度3位は20%などと設定して、この確率で選択するものとする。そして、本例では、図11の頻度別命令テーブル1101〜1108の頻度1位、頻度2位、頻度3位において、OP0が抽出された場合に50%の確率で頻度1位が選択され、OP1が抽出された場合に30%の確率で頻度2位が選択され、OP7が抽出された場合に20%の確率で頻度3位が選択されるものと仮定する。   Next, the operation code is extracted at random based on the number of instructions. There is a method of extracting this opcode at random. Also, divided into memory access system instruction group, fixed-point operation instruction group, floating-point operation instruction group, etc., specify the weight of these groups, the higher this weight, the higher the appearance frequency, There are ways to include rules. Here, description will be made by a method of extracting completely at random. In addition, the frequency is used by 50% for the first frequency and 30% for the second frequency, in common with the frequency-specific instruction tables 1101 to 1108. The 3rd frequency is set to 20% or the like and is selected with this probability. In this example, when OP0 is extracted at the first frequency, second frequency, and third frequency in the frequency-specific instruction tables 1101 to 1108 in FIG. 11, the first frequency is selected with a probability of 50%, and OP1 Suppose that frequency 2 is selected with a probability of 30% when is extracted, and frequency 3 is selected with a probability of 20% when OP7 is extracted.

1つ目の命令としてOP0が抽出され、頻度別命令テーブル1101から頻度1位の命令列が番号1〜7まで選択される。オペコードは頻度別命令テーブル1101の命令列の通りに生成され、R(X),R(Y),R(Z)の依存関係から、番号3のOP7のR(X)と番号4のOP0のR(Y)またはR(Z)の番号とを一致させる。さらに、番号4のOP0のR(X)またはR(Y)と、番号6のOP4のR(X)またはR(Y)の番号を一致させる。また、メモリアドレスを重複させるために、番号4のOP0のR(Y),R(Z)およびDを、番号2のOP5のR(Y),R(Z)およびDと一致させる。他の命令のR(X),R(Y),R(Z),Dフィールドにはランダムな番号が設定される。その結果、テスト命令列1201が生成される。   OP0 is extracted as the first instruction, and the instruction sequence with the highest frequency is selected from numbers 1 to 7 from the instruction table 1101 by frequency. The opcode is generated according to the instruction sequence of the frequency-specific instruction table 1101. From the dependency of R (X), R (Y), R (Z), R (X) of OP7 of number 3 and OP0 of number 4 Match the number of R (Y) or R (Z). Further, R (X) or R (Y) of OP4 of number 4 and the number of R (X) or R (Y) of OP4 of number 6 are matched. In order to overlap the memory address, R (Y), R (Z) and D of OP4 of number 4 are made to coincide with R (Y), R (Z) and D of OP5 of number 2. Random numbers are set in the R (X), R (Y), R (Z), and D fields of other instructions. As a result, a test instruction sequence 1201 is generated.

2つめの命令としてOP1が抽出された場合、頻度別命令テーブル1102から頻度2位の命令列が番号8〜14まで、選択される。オペコードは頻度別命令テーブル1102の命令列の通りに生成され、R(X),R(Y),R(Z)の依存関係から、番号8のOP0のR(X)と番号11のOP1のR(Y)の番号を一致させ、さらに番号11のOP1のR(X)と番号14のOP5のR(Y)の番号を一致させる。またメモリアドレスを重複させるために、番号11のOP1のR(Z)およびDを、番号14のOP5のR(Z)およびDと一致させる。他の命令のR(X),R(Y),R(Z),Dフィールドにはランダムな番号が設定される。その結果、テスト命令列1202が生成される。   When OP1 is extracted as the second instruction, an instruction string with the second highest frequency is selected from numbers 8 to 14 from the instruction table 1102 by frequency. The operation code is generated according to the instruction sequence of the frequency-specific instruction table 1102, and from the dependency relationship of R (X), R (Y), and R (Z), R (X) of OP0 of number 8 and OP1 of number 11 The numbers of R (Y) are matched, and further, the R (X) of OP1 of number 11 is matched with the R (Y) number of OP5 of number 14. In order to overlap the memory address, R (Z) and D of OP1 of number 11 are made to coincide with R (Z) and D of OP5 of number 14. Random numbers are set in the R (X), R (Y), R (Z), and D fields of other instructions. As a result, a test instruction sequence 1202 is generated.

3つめの命令としてOP7が抽出された場合、頻度別命令テーブル1108から頻度3位の命令列が番号15〜21まで、選択される。オペコードは頻度別命令テーブル1108の命令列の通りに生成され、R(X),R(Y),R(Z)の依存関係から、番号17のOP1のR(X)と番号18のOP7のR(Y)の番号を一致させる。他の命令のR(X),R(Y),R(Z),Dフィールドにはランダムな番号が設定される。その結果、テスト命令列1203が生成される。   When OP7 is extracted as the third instruction, the instruction sequence having the third highest frequency is selected from numbers 15 to 21 from the frequency-specific instruction table 1108. The opcode is generated according to the instruction sequence of the frequency-specific instruction table 1108. From the dependency relationship of R (X), R (Y), R (Z), R (X) of OP1 of number 17 and OP7 of number 18 The numbers of R (Y) are matched. Random numbers are set in the R (X), R (Y), R (Z), and D fields of other instructions. As a result, a test instruction sequence 1203 is generated.

4つめの命令として再びOP0が抽出された場合、頻度別命令テーブル1101から頻度3位の命令列が番号22〜28まで、選択される。オペコードは頻度別命令テーブル1101からの命令列の通りに生成され、R(X),R(Y),R(Z)の依存関係から、番号23のOP6のR(X)と番号25のOP0のR(Y)の番号を一致させる。他の命令のR(X),R(Y),R(Z),Dフィールドにはランダムな番号が設定される。その結果、テスト命令列1204が生成される。   When OP0 is extracted again as the fourth instruction, the instruction sequence with the third highest frequency is selected from numbers 22 to 28 from the frequency-specific instruction table 1101. The opcode is generated in accordance with the instruction sequence from the frequency-specific instruction table 1101. From the dependency of R (X), R (Y), R (Z), R (X) of OP6 of number 23 and OP0 of number 25 The numbers of R (Y) are matched. Random numbers are set in the R (X), R (Y), R (Z), and D fields of other instructions. As a result, a test instruction sequence 1204 is generated.

なお、上記例では、煩雑さをさけるため、レジスタの依存関係や、メモリ領域の依存関係においてどのレジスタ間に依存関係があるか、あるいは、メモリ領域の依存関係がある場合の各レジスタの関係などは、省略した。実際には、どのレジスタが一致したか、あるいは、レジスタ間の依存関係の頻度を求めてその結果をどのレジスタを関連させるかに使用してもよい。また、メモリ領域の依存関係においてどのレジスタ間に依存関係があるかも考慮してよいが、本例では、R(Y),R(Z)に同じ値を設定することとした。   In the above example, in order to avoid complications, there is a dependency relationship between registers, which register has a dependency relationship in the memory region dependency relationship, or a relationship between each register when there is a memory region dependency relationship, etc. Omitted. In practice, it may be used which register is matched or the frequency of dependency between registers is obtained and the result is related to which register. In addition, in the present example, the same value is set for R (Y) and R (Z), although it may be taken into consideration which register has a dependency relationship in the memory region dependency relationship.

以上により、図12に示すテスト命令列が生成される。本例で生成されたテスト命令列は、通常のランダム命令列とは異なり、コンパイラ出力のロードモジュールを解析した統計情報から生成されている。さらに、命令順やレジスタの依存性、メモリアドレスの重複は実際にOS上で動作する実行命令列の傾向を反映しており、LSIをリリースする前の品質確保という意味では、非常に効果の高いテスト命令列となる。   As a result, the test instruction sequence shown in FIG. 12 is generated. Unlike the normal random instruction sequence, the test instruction sequence generated in this example is generated from statistical information obtained by analyzing the load module output from the compiler. In addition, instruction order, register dependency, and memory address duplication reflect the tendency of execution instruction sequences that actually run on the OS, and are extremely effective in terms of quality assurance prior to LSI release. This is a test instruction sequence.

本実施形態によれば、コンパイラで生成した実行命令列の特徴である命令の出現頻度やアクセス対象であるレジスタやメモリ領域の関連を反映したテスト命令列が生成でき、容易にLSIなどの設計における製造前の品質確保をすることができる。   According to the present embodiment, it is possible to generate a test instruction sequence that reflects the appearance frequency of the instruction that is the characteristic of the execution instruction sequence generated by the compiler and the relationship between the register to be accessed and the memory area. Quality can be ensured before production.

すなわち、コンパイラが出力した実行モジュールを解析するツールを用いて、テストのターゲットとなる命令に対する前後の命令のオペコード、レジスタの依存関係の有無、アドレスの重複の有無を考慮したテスト命令列が生成できる。そのため、LSIリリース前に、実JOBと同じ傾向を持ったテスト命令列で論理評価が行えるため、LSIの品質の向上ができ、LSIリワークやリワークに伴う開発日程の遅延を防ぐことが可能になる。   In other words, using a tool that analyzes the execution module output by the compiler, it is possible to generate a test instruction sequence that takes into consideration the opcodes of the preceding and succeeding instructions with respect to the instruction to be tested, whether there are register dependencies, and whether addresses are duplicated . Therefore, since the logic evaluation can be performed with the test instruction sequence having the same tendency as the actual JOB before the LSI release, the LSI quality can be improved and the delay of the development schedule accompanying the LSI rework and the rework can be prevented. .

[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、テスト命令列の生成履歴を蓄積して次のテスト命令列の生成にために学習する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Third Embodiment]
Next, an information processing apparatus according to the third embodiment of the present invention will be described. The information processing apparatus according to the present embodiment is different from the second embodiment in that the generation history of a test instruction sequence is accumulated and learning is performed to generate the next test instruction sequence. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.

《情報処理装置の機能構成》
図13は、本実施形態に係る情報処理装置1310の機能構成を示すブロック図である。なお、図13において、図3と同様の機能構成部には同じ参照番号を付して、説明を省略する。
<< Functional configuration of information processing device >>
FIG. 13 is a block diagram illustrating a functional configuration of the information processing apparatus 1310 according to the present embodiment. In FIG. 13, the same functional components as those in FIG. 3 are denoted by the same reference numerals, and the description thereof is omitted.

情報処理装置1310は、テスト命令列学習データベース1314と、テスト命令実行指示部1315と、テスト命令列実行結果取得部1316と、テスト命令列生成条件更新部1317と、を備える。   The information processing apparatus 1310 includes a test instruction sequence learning database 1314, a test instruction execution instruction unit 1315, a test instruction sequence execution result acquisition unit 1316, and a test instruction sequence generation condition update unit 1317.

テスト命令列学習データベース1314は、テスト命令列生成部213により生成され、テスト対象プロセッサに実行指示されたテスト命令列と、テスト対象プロセッサから取得されたテスト命令列実行結果とを対応付けて蓄積する。テスト命令実行指示部1315は、テスト命令列生成部213が生成したテスト命令列をテスト対象プロセッサに実行指示する。テスト命令列実行結果取得部1316は、テスト対象プロセッサにおけるテスト命令列の実行結果を取得する。なお、テスト命令列の実行結果は、テスト対象プロセッサから直接取得しても、他のテスト実行評価装置などから取得してもよい。   The test instruction sequence learning database 1314 stores the test instruction sequence generated by the test instruction sequence generation unit 213 and instructed to be executed by the test target processor, and the test instruction sequence execution result acquired from the test target processor in association with each other. . The test instruction execution instruction unit 1315 instructs the test target processor to execute the test instruction sequence generated by the test instruction sequence generation unit 213. The test instruction sequence execution result acquisition unit 1316 acquires the execution result of the test instruction sequence in the test target processor. The execution result of the test instruction sequence may be acquired directly from the test target processor, or may be acquired from another test execution evaluation device or the like.

テスト命令列生成条件更新部1317は、学習テーブル1317aを有し、テスト命令列学習データベース1314に蓄積されたテスト命令列と実行結果とを参照して、テスト命令列生成部213がテスト命令列を生成するための条件を更新して、よりテスト対象プロセッサの品質向上を実現する。   The test instruction sequence generation condition updating unit 1317 has a learning table 1317a. The test instruction sequence generation unit 213 refers to the test instruction sequence and the execution result stored in the test instruction sequence learning database 1314, and the test instruction sequence generation unit 213 determines the test instruction sequence. The conditions for generating are updated to further improve the quality of the processor under test.

(テスト命令列学習データベース)
図14は、本実施形態に係るテスト命令列学習データベース1314の構成を示す図である。
(Test instruction sequence learning database)
FIG. 14 is a diagram showing a configuration of the test instruction sequence learning database 1314 according to the present embodiment.

テスト命令列学習データベース1314は、テスト命令列生成部213が生成したテスト命令列1401に対応付けて、その基となった頻度別命令テーブル1402、命令出現頻度テーブル1403、アクセス対象関連情報1404、テスト命令列実行結果1405、を記憶する。そして、これら情報に基づく、テスト命令列評価結果1406を記憶する。なお、アクセス対象関連情報1404には、レジスタ関連テーブルとメモリ領域関連テーブルとが含まれる。   The test instruction sequence learning database 1314 is associated with the test instruction sequence 1401 generated by the test instruction sequence generation unit 213 and is based on the frequency-based instruction table 1402, instruction appearance frequency table 1403, access target related information 1404, test The instruction sequence execution result 1405 is stored. Then, a test instruction sequence evaluation result 1406 based on these pieces of information is stored. The access target related information 1404 includes a register related table and a memory area related table.

(学習テーブル)
図15は、本実施形態に係る学習テーブル1317aの構成を示す図である。学習テーブル1317aは、テスト命令列学習データベース1314に蓄積されたテスト命令列の履歴に基づいて、テスト命令列生成部213によるテスト命令列の生成条件を更新するために使用される。
(Learning table)
FIG. 15 is a diagram showing a configuration of the learning table 1317a according to the present embodiment. The learning table 1317a is used to update the test instruction sequence generation condition by the test instruction sequence generation unit 213 based on the test instruction sequence history accumulated in the test instruction sequence learning database 1314.

学習テーブル1317aは、テスト命令列生成条件1501に対応付けて、テスト命令列評価結果1502、そして、更新されるテスト命令列更新条件1503を記憶する。なお、テスト命令列生成条件1501には、関連命令選択閾値、関連レジスタ判定閾値、関連メモリ領域判定閾値、テスト命令列生成アルゴリズムなどが含まれる。   The learning table 1317a stores the test instruction sequence evaluation result 1502 and the updated test instruction sequence update condition 1503 in association with the test instruction sequence generation condition 1501. The test instruction sequence generation condition 1501 includes a related instruction selection threshold, a related register determination threshold, a related memory area determination threshold, a test instruction sequence generation algorithm, and the like.

《情報処理装置の処理手順》
図16は、本実施形態に係る情報処理装置1310の処理手順を示すフローチャートである。このフローチャートは、図7のCPU710がRAM740を使用して実行し、図13の機能構成部を実現する。なお、図16において、図8と同様のステップには同じステップ番号を付して、説明を省略する。
<< Processing procedure of information processing device >>
FIG. 16 is a flowchart showing a processing procedure of the information processing apparatus 1310 according to this embodiment. This flowchart is executed by the CPU 710 in FIG. 7 using the RAM 740, and implements the functional configuration unit in FIG. In FIG. 16, steps similar to those in FIG. 8 are denoted by the same step numbers, and description thereof is omitted.

情報処理装置1310は、ステップS1611において、テスト命令列のテスト対象プロセッサでの実行を指示する。情報処理装置1310は、ステップS1613において、テスト命令列の実行結果を取得する。情報処理装置1310は、ステップS1615において、テスト命令列学習データベース1314に蓄積されたテスト命令列の履歴を参照して、実行結果を解析する。そして、情報処理装置1310は、ステップS1617において、学習テーブル1317aを使用して、テスト命令列生成部213によるテスト命令列の生成条件を更新する。   In step S <b> 1611, the information processing apparatus 1310 instructs execution of the test instruction sequence on the test target processor. In step S1613, the information processing apparatus 1310 acquires the execution result of the test instruction sequence. In step S1615, the information processing apparatus 1310 refers to the history of the test instruction sequence stored in the test instruction sequence learning database 1314 and analyzes the execution result. In step S <b> 1617, the information processing apparatus 1310 uses the learning table 1317 a to update the test instruction sequence generation conditions by the test instruction sequence generation unit 213.

本実施形態によれば、テスト命令列を生成するための条件を更新して、よりテスト対象プロセッサの品質向上を実現することができる。   According to the present embodiment, it is possible to update the conditions for generating the test instruction sequence and further improve the quality of the test target processor.

[他の実施形態]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.

また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。   In addition, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.

[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出手段と、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定手段と、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成手段と、
を備える情報処理装置。
(付記2)
前記アクセス対象は、前記命令によりアクセスされるレジスタおよびメモリの少なくともいずれかを含む、付記1に記載の情報処理装置。
(付記3)
前記アクセス対象のメモリは、アクセス領域の少なくとも一部が重なる場合に関連性ありと判定する、付記2に記載の情報処理装置。
(付記4)
前記テスト命令列生成手段は、
前記命令の出現頻度に基づいて、テスト命令列に使用する命令を選択する命令選択手段と、
前記アクセス対象との関連に基づいて、前記所定命令と前記選択された命令とのアクセス対象を関連付けるアクセス対象関連付け手段と、
を有する、付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記テスト命令列生成手段は、
前記所定命令に対する前後の少なくとも2つの命令の出現頻度と、前記所定命令のアクセス対象と前記所定命令の前後の命令のアクセス対象との関連と、に基づいて、前記所定命令および前記前後の少なくとも2つの命令の出現頻度順の命令列と、前記所定命令と前記命令列との間の前記アクセス対象の関連の有無と、を記憶する頻度別命令テーブルを生成する頻度別命令テーブル生成手段を、さらに備え、
前記頻度別命令テーブルを参照して前記テスト命令列を生成する、付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
生成された前記テスト命令列をプロセッサに実行させる実行指示手段と、
前記テスト命令列の前記プロセッサによる実行結果を取得する実行結果取得手段と、
をさらに備え、
前記テスト命令列生成手段は、前記実行結果を評価して、前記テスト命令列の生成に反映させる、付記1乃至5のいずれか1項に記載の情報処理装置。
(付記7)
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
を含む情報処理方法。
(付記8)
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
をコンピュータに実行させる情報処理プログラム。
[Other expressions of embodiment]
A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
Appearance frequency calculating means for calculating the appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determining unit that determines a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
Test instruction sequence generation means for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
An information processing apparatus comprising:
(Appendix 2)
The information processing apparatus according to appendix 1, wherein the access target includes at least one of a register and a memory accessed by the instruction.
(Appendix 3)
The information processing apparatus according to appendix 2, wherein the access target memory is determined to be relevant when at least a part of access areas overlap.
(Appendix 4)
The test instruction sequence generation means includes:
Instruction selection means for selecting an instruction to be used for the test instruction sequence based on the appearance frequency of the instruction;
An access target associating means for associating an access target between the predetermined instruction and the selected instruction based on the relation with the access target;
The information processing apparatus according to any one of appendices 1 to 3, further comprising:
(Appendix 5)
The test instruction sequence generation means includes:
Based on the appearance frequency of at least two instructions before and after the predetermined instruction and the relationship between the access target of the predetermined instruction and the access target of the instruction before and after the predetermined instruction, the predetermined instruction and at least 2 before and after the predetermined instruction A frequency-specific instruction table generating means for generating a frequency-specific instruction table for storing an instruction sequence in the order of appearance frequency of one instruction and whether or not the access target is related between the predetermined instruction and the instruction sequence; Prepared,
The information processing apparatus according to any one of appendices 1 to 4, wherein the test instruction sequence is generated with reference to the instruction table classified by frequency.
(Appendix 6)
Execution instruction means for causing a processor to execute the generated test instruction sequence;
Execution result acquisition means for acquiring an execution result by the processor of the test instruction sequence;
Further comprising
The information processing apparatus according to any one of appendices 1 to 5, wherein the test instruction sequence generation unit evaluates the execution result and reflects the result in the generation of the test instruction sequence.
(Appendix 7)
An appearance frequency calculating step for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determination step for determining a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
A test instruction sequence generation step for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
An information processing method including:
(Appendix 8)
An appearance frequency calculating step for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determination step for determining a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
A test instruction sequence generation step for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
An information processing program that causes a computer to execute.

Claims (8)

コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出手段と、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定手段と、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成手段と、
を備える情報処理装置。
Appearance frequency calculating means for calculating the appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determining unit that determines a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
Test instruction sequence generation means for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
An information processing apparatus comprising:
前記アクセス対象は、前記命令によりアクセスされるレジスタおよびメモリの少なくともいずれかを含む、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the access target includes at least one of a register and a memory accessed by the instruction. 前記アクセス対象のメモリは、アクセス領域の少なくとも一部が重なる場合に関連性ありと判定する、請求項2に記載の情報処理装置。   The information processing apparatus according to claim 2, wherein the memory to be accessed is determined to be relevant when at least part of access areas overlap. 前記テスト命令列生成手段は、
前記命令の出現頻度に基づいて、テスト命令列に使用する命令を選択する命令選択手段と、
前記アクセス対象との関連に基づいて、前記所定命令と前記選択された命令とのアクセス対象を関連付けるアクセス対象関連付け手段と、
を有する、請求項1乃至3のいずれか1項に記載の情報処理装置。
The test instruction sequence generation means includes:
Instruction selection means for selecting an instruction to be used for the test instruction sequence based on the appearance frequency of the instruction;
An access target associating means for associating an access target between the predetermined instruction and the selected instruction based on the relation with the access target;
The information processing apparatus according to claim 1, further comprising:
前記テスト命令列生成手段は、
前記所定命令に対する前後の少なくとも2つの命令の出現頻度と、前記所定命令のアクセス対象と前記所定命令の前後の命令のアクセス対象との関連と、に基づいて、前記所定命令および前記前後の少なくとも2つの命令の出現頻度順の命令列と、前記所定命令と前記命令列との間の前記アクセス対象の関連の有無と、を記憶する頻度別命令テーブルを生成する頻度別命令テーブル生成手段を、さらに備え、
前記頻度別命令テーブルを参照して前記テスト命令列を生成する、請求項1乃至4のいずれか1項に記載の情報処理装置。
The test instruction sequence generation means includes:
Based on the appearance frequency of at least two instructions before and after the predetermined instruction and the relationship between the access target of the predetermined instruction and the access target of the instruction before and after the predetermined instruction, the predetermined instruction and at least 2 before and after the predetermined instruction A frequency-specific instruction table generating means for generating a frequency-specific instruction table for storing an instruction sequence in the order of appearance frequency of one instruction and whether or not the access target is related between the predetermined instruction and the instruction sequence; Prepared,
The information processing apparatus according to claim 1, wherein the test instruction sequence is generated with reference to the instruction table classified by frequency.
生成された前記テスト命令列をプロセッサに実行させる実行指示手段と、
前記テスト命令列の前記プロセッサによる実行結果を取得する実行結果取得手段と、
をさらに備え、
前記テスト命令列生成手段は、前記実行結果を評価して、前記テスト命令列の生成に反映させる、請求項1乃至5のいずれか1項に記載の情報処理装置。
Execution instruction means for causing a processor to execute the generated test instruction sequence;
Execution result acquisition means for acquiring an execution result by the processor of the test instruction sequence;
Further comprising
The information processing apparatus according to claim 1, wherein the test instruction sequence generation unit evaluates the execution result and reflects the result in generation of the test instruction sequence.
出現頻度算出手段が、コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
アクセス対象関連判定手段が、前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
テスト命令列生成手段が、前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
を含む情報処理装置の情報処理方法。
An appearance frequency calculating means for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determining unit that determines a relation between an access target of the predetermined instruction and an access target of the at least two preceding and following instructions in the execution instruction sequence;
A test instruction sequence generation means uses, as a test instruction sequence for testing the predetermined instruction, an instruction sequence including the predetermined instruction and maintaining the association of the access target, based on the appearance frequency of the instruction and the relationship of the access target A test instruction sequence generation step to be generated;
An information processing method for an information processing apparatus including:
コンパイラが生成した実行命令列中における、所定命令に対する前後の少なくとも2つの命令の出現頻度を算出する出現頻度算出ステップと、
前記実行命令列中における、前記所定命令のアクセス対象と前記前後の少なくとも2つの命令のアクセス対象との関連を判定するアクセス対象関連判定ステップと、
前記命令の出現頻度と前記アクセス対象の関連とに基づいて、前記所定命令を含み前記アクセス対象の関連を維持した命令列を、前記所定命令をテストするテスト命令列として生成するテスト命令列生成ステップと、
をコンピュータに実行させる情報処理プログラム。
An appearance frequency calculating step for calculating an appearance frequency of at least two instructions before and after a predetermined instruction in the execution instruction sequence generated by the compiler;
An access target relation determination step for determining a relation between an access target of the predetermined instruction and an access target of the at least two instructions before and after the execution instruction sequence;
A test instruction sequence generation step for generating an instruction sequence including the predetermined instruction and maintaining the access target relationship as a test instruction sequence for testing the predetermined instruction based on the appearance frequency of the instruction and the relationship of the access target When,
An information processing program that causes a computer to execute.
JP2015072952A 2015-03-31 2015-03-31 Information processing apparatus, information processing method, and information processing program Active JP6451989B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015072952A JP6451989B2 (en) 2015-03-31 2015-03-31 Information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015072952A JP6451989B2 (en) 2015-03-31 2015-03-31 Information processing apparatus, information processing method, and information processing program

Publications (2)

Publication Number Publication Date
JP2016192168A JP2016192168A (en) 2016-11-10
JP6451989B2 true JP6451989B2 (en) 2019-01-16

Family

ID=57246988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015072952A Active JP6451989B2 (en) 2015-03-31 2015-03-31 Information processing apparatus, information processing method, and information processing program

Country Status (1)

Country Link
JP (1) JP6451989B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3089121B2 (en) * 1992-11-20 2000-09-18 富士通株式会社 Test instruction string generation method
JP3206575B2 (en) * 1998-12-18 2001-09-10 日本電気株式会社 Fault test apparatus, fault test method, and recording medium recording fault test method
JP3221421B2 (en) * 1998-12-28 2001-10-22 日本電気株式会社 Testing method for information processing device and storage medium storing the program
JP5387521B2 (en) * 2010-06-30 2014-01-15 富士通セミコンダクター株式会社 Logic verification scenario generation device and logic verification scenario generation program

Also Published As

Publication number Publication date
JP2016192168A (en) 2016-11-10

Similar Documents

Publication Publication Date Title
US8799875B2 (en) Streamlining unit testing through hot code swapping
CN105224458B (en) A kind of data library test method and system
CN107239392B (en) Test method, test device, test terminal and storage medium
US8140901B2 (en) Validation of processors using a self-generating test case framework
CN111694738B (en) Method for generating SQL test script
US12339763B2 (en) Automated test generation
US11544436B1 (en) Hardware-software interaction testing using formal verification
JP2017084082A (en) Simulation device, test scenario file creation method, and test method using test scenario file
CN119201059A (en) A PLC code generation and verification method based on large language model
CN107003931B (en) Decouple test validation from test execution
JP2015219906A (en) Software verification method and processor
CN118484398A (en) Simulation method, device, equipment and program for test case
US7577557B2 (en) Simulator and simulation method for behaviors of processors
JP6451989B2 (en) Information processing apparatus, information processing method, and information processing program
CN117892665B (en) Modeling simulation method, device, medium and equipment based on circuit system level model
CN113656070A (en) Random instruction verification method, device, electronic device and storage medium for processor
US9710360B2 (en) Optimizing error parsing in an integrated development environment
CN115422865B (en) Simulation method and device, computing equipment and computer readable storage medium
US20200349304A1 (en) Method, apparatus, device, and medium for implementing simulator
CN115510782B (en) Method for locating verification errors, electronic device and storage medium
CN119149402A (en) Performance parameter tuning sequence determining method, device, equipment and medium
CN116450431A (en) Instruction function test system of CPU reference model, method thereof, computer equipment and storage medium
CN115328772A (en) Learning method for excitation combination and module correlation and test script generation method
JP5387521B2 (en) Logic verification scenario generation device and logic verification scenario generation program
US12271669B1 (en) Executing instruction sequences generated from software interactions as part of formal verification of a design under test

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181128

R150 Certificate of patent or registration of utility model

Ref document number: 6451989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150