JP3327601B2 - Test method for advanced control mechanism - Google Patents

Test method for advanced control mechanism

Info

Publication number
JP3327601B2
JP3327601B2 JP33403892A JP33403892A JP3327601B2 JP 3327601 B2 JP3327601 B2 JP 3327601B2 JP 33403892 A JP33403892 A JP 33403892A JP 33403892 A JP33403892 A JP 33403892A JP 3327601 B2 JP3327601 B2 JP 3327601B2
Authority
JP
Japan
Prior art keywords
instruction
control mechanism
test
pointer
instruction sequence
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.)
Expired - Fee Related
Application number
JP33403892A
Other languages
Japanese (ja)
Other versions
JPH06187190A (en
Inventor
真次 宮原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP33403892A priority Critical patent/JP3327601B2/en
Publication of JPH06187190A publication Critical patent/JPH06187190A/en
Application granted granted Critical
Publication of JP3327601B2 publication Critical patent/JP3327601B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、各種情報処理システム
における先行制御機構(例えば、パイプライン制御機
構)の機能を検証する先行制御機構の試験方法に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of testing a preceding control mechanism for verifying the function of a preceding control mechanism (for example, a pipeline control mechanism) in various information processing systems.

【0002】近年、情報処理システムのCPUは、処理
能率を向上させるために、命令実行のパイプライン制御
方式を採用している。特に、最近のMPUでは、複数の
命令実行パイプライン制御(スーパースカラ制御と呼
ぶ)方式を採用し、更に、処理効率の向上を図ってい
る。
In recent years, the CPU of an information processing system has adopted an instruction execution pipeline control method in order to improve processing efficiency. In particular, recent MPUs employ a plurality of instruction execution pipeline control methods (called super scalar control) to further improve processing efficiency.

【0003】このため、上記先行制御機構の機能を高精
度で検証出来る試験方法が要望されていた。
Therefore, there has been a demand for a test method capable of verifying the function of the preceding control mechanism with high accuracy.

【0004】[0004]

【従来の技術】図12は、従来例を示した図であり、図
12中、1は命令生成部、2は命令実行制御部、3は実
行結果比較部、4は命令領域(メモリ領域)、5は実行
結果1を格納する実行結果領域(メモリ領域)、6は実
行結果2を格納する実行結果領域(メモリ領域)を示
す。
2. Description of the Related Art FIG. 12 shows a conventional example. In FIG. 12, 1 is an instruction generation unit, 2 is an instruction execution control unit, 3 is an execution result comparison unit, and 4 is an instruction area (memory area). Reference numeral 5 denotes an execution result area (memory area) for storing the execution result 1, and reference numeral 6 denotes an execution result area (memory area) for storing the execution result 2.

【0005】従来、先行制御機構として、例えば、パイ
プライン制御機構を検証するための試験が行われてい
た。この試験を実行する場合、図12に示したように、
命令生成部1、命令実行制御部2、実行結果比較部3、
命令領域4、実行結果領域5、実行結果領域6を設けて
おく。
Conventionally, a test for verifying, for example, a pipeline control mechanism has been performed as a preceding control mechanism. When performing this test, as shown in FIG.
An instruction generation unit 1, an instruction execution control unit 2, an execution result comparison unit 3,
An instruction area 4, an execution result area 5, and an execution result area 6 are provided.

【0006】そして、命令の組み合わせを増大するため
に、上記命令生成部1では、乱数による命令列を生成
し、命令領域4に生成した命令列を格納する。その後、
命令実行制御部2では、命令領域4内の生成命令列に対
して、実行環境(先行制御機構、キャッシュ機構等)を
変化させて、複数回実行させ、その実行結果を、実行結
果領域5、6に格納する。
In order to increase the number of combinations of instructions, the instruction generation unit 1 generates an instruction sequence based on random numbers and stores the generated instruction sequence in the instruction area 4. afterwards,
The instruction execution control unit 2 changes the execution environment (preceding control mechanism, cache mechanism, and the like) for the generated instruction sequence in the instruction area 4 and executes the generated instruction sequence a plurality of times. 6 is stored.

【0007】この場合、1回目の実行結果(実行結果
1)を実行結果領域5に格納し、2回目の実行結果(実
行結果2)を実行結果領域6に格納する。その後、実行
結果比較部3では、実行結果領域5、6に格納されてい
る実行結果1、実行結果2・・・を比較し、先行制御機
構の試験結果を得る。
In this case, the first execution result (execution result 1) is stored in the execution result area 5, and the second execution result (execution result 2) is stored in the execution result area 6. Thereafter, the execution result comparison unit 3 compares the execution results 1, execution results 2,... Stored in the execution result areas 5, 6, and obtains a test result of the preceding control mechanism.

【0008】[0008]

【発明が解決しようとする課題】上記のような従来のも
のにおいては、次のような課題があった。例えば、ある
特定命令の組み合わせにおいてパイプライン障害があっ
ても、同一命令列に対して実行するために、複数回の実
行結果が同一になる可能性がある。
The above-mentioned conventional apparatus has the following problems. For example, even if there is a pipeline failure in a certain combination of specific instructions, there is a possibility that a plurality of execution results will be the same to execute the same instruction sequence.

【0009】このため、パイプライン制御障害にたいす
る検証能力が十分でなかった。本発明は、このような従
来の課題を解決し、先行制御機構(パイプライン制御機
構等)の制御障害の検証能力を向上させることを目的と
する。
For this reason, the ability to verify pipeline control faults was not sufficient. An object of the present invention is to solve such a conventional problem and improve the ability of a preceding control mechanism (such as a pipeline control mechanism) to verify a control failure.

【0010】[0010]

【課題を解決するための手段】図1は本発明の原理説明
図であり、図1Aは試験方法の説明図、図1Bは、命令
領域内の命令列を示した図である。
FIG. 1 is an explanatory view of the principle of the present invention, FIG. 1A is an explanatory view of a test method, and FIG. 1B is a view showing an instruction sequence in an instruction area.

【0011】図1中、図12と同じものは、同一符号で
示してある。また、7は命令列入替え処理部、8は命令
領域(メモリ領域)、9は命令領域(メモリ領域)を示
す。本発明は上記の課題を解決するため、次のように構
成した。
In FIG. 1, the same components as those in FIG. 12 are denoted by the same reference numerals. Reference numeral 7 denotes an instruction sequence replacement processing unit, 8 denotes an instruction area (memory area), and 9 denotes an instruction area (memory area). The present invention is configured as follows in order to solve the above problems.

【0012】(1) :命令実行の先行制御機構を有する情
報処理システムに対して、試験プログラムが、乱数によ
り命令列を生成し、前記生成した命令列を上記先行制御
機構に実行させて、その実行結果(1回目の走行結果)
を、期待値とする先行制御機構の試験方法において、
記試験プログラムにより、実行結果が変化しない範囲
で、上記命令列を入替え、入れ替えた命令列の実行結果
を、上記期待値と比較するように構成した。
[0012] (1): the information processing system having a preceding control mechanism of instruction execution, the test program, generates an instruction sequence by a random number, a sequence of instructions to said generating by executing the above prior control mechanism, the Execution result (first run result)
And a method of testing the preceding control mechanism for the expected value, before
According to the test program, the instruction sequence is replaced within a range where the execution result does not change , and the execution result of the replaced instruction sequence is compared with the expected value.

【0013】(2) :構成(1) において、前記試験プログ
ラムにより、命令のディストネーションレジスタが、後
続命令のソースレジスタと干渉しない条件で、命令列の
入替えを行うように構成した。 (3) :構成(1) において、前記試験プログラムにより、
命令のディストネーションメモリ領域が、後続命令のソ
ースメモリ領域と干渉しない条件で、命令列の入替え
行うように構成した。
(2): In the configuration (1), the test program allows the instruction sequence register to store the instruction sequence under the condition that the instruction destination register does not interfere with the source register of the subsequent instruction .
It was configured to be replaced . (3): In the configuration (1), according to the test program,
The instruction sequence is switched under the condition that the destination memory area of the instruction does not interfere with the source memory area of the subsequent instruction.

【0014】(4) :構成(1) において、前記試験プログ
ラムにより、命令タイプが異なる命令を入れ替えること
により、命令列の入替えを行うように構成した。(5) :構成(1) において、前記試験プログラムにより、
同一命令タイプを集合させることにより、命令列の入替
えを行うように構成した。
(4): In the configuration (1) , the test program
The ram is configured so that the instruction sequence is exchanged by exchanging instructions having different instruction types. (5): In the configuration (1) , according to the test program,
An instruction sequence is exchanged by grouping the same instruction types.

【0015】[0015]

【作用】上記構成に基づく本発明の作用を、図1に基づ
いて説明する。先行制御機構の試験を行う場合は、次の
順序で処理する。
The operation of the present invention based on the above configuration will be described with reference to FIG. When the test of the preceding control mechanism is performed, the processing is performed in the following order.

【0016】:命令生成部1では、命令領域8(メモ
リ領域)に乱数を用いて命令列を生成する。 :命令実行制御部2では、命令領域8の命令列を実行
し、その結果(実行結果1)を、実行結果領域5(メモ
リ領域)に格納して期待値とする。
The instruction generator 1 generates an instruction sequence using random numbers in the instruction area 8 (memory area). The instruction execution control unit 2 executes the instruction sequence in the instruction area 8 and stores the result (execution result 1) in the execution result area 5 (memory area) as an expected value.

【0017】:次に、命令列入替え処理部7では、命
令領域8の命令列を入れ替えて、新たな命令列を、命令
領域9(メモリ領域)に作成する。 :命令実行制御部2では、命令領域9の命令列を実行
し、その結果(実行結果2)を、実行結果領域6(メモ
リ領域)に格納する。
Next, the instruction sequence replacement processing unit 7 replaces the instruction sequence in the instruction area 8 and creates a new instruction sequence in the instruction area 9 (memory area). The instruction execution control unit 2 executes the instruction sequence in the instruction area 9 and stores the result (execution result 2) in the execution result area 6 (memory area).

【0018】:実行結果比較部3では、実行結果領域
5の実行結果1(期待値)と、実行結果領域6の実行結
果2を取り込んで、両者の比較処理を行う。すなわち、
実行結果1(期待値)と実行結果2が全て一致している
事を確認する。
The execution result comparison unit 3 takes in the execution result 1 (expected value) of the execution result area 5 and the execution result 2 of the execution result area 6 and compares them. That is,
It is confirmed that the execution result 1 (expected value) and the execution result 2 all match.

【0019】以上のようにすれば、先行制御機構の動作
を変化させることが出来ると共に、動作条件が拡大出来
るから、先行制御機構(パイプライン等)の検証精度を
高める事が可能となる。
With the above arrangement, the operation of the preceding control mechanism can be changed and the operating conditions can be expanded, so that the verification accuracy of the preceding control mechanism (such as a pipeline) can be improved.

【0020】[0020]

【実施例】以下、本発明の実施例を図面に基づいて説明
する。図2〜図11は、本発明の実施例を示した図であ
り、中、図1、図12と同じものは、同一符号で示して
ある。
Embodiments of the present invention will be described below with reference to the drawings. 2 to 11 are diagrams showing an embodiment of the present invention, in which the same components as those in FIGS. 1 and 12 are denoted by the same reference numerals.

【0021】また、11は試験部、12は被試験部、1
3は試験実行部、14は比較部、15はワークメモリ、
16はワークレジスタ、17は命令取り出し部、18は
命令デコード部、19はパイプライン制御部、20−1
〜20−nは命令実行部、21は実行結果反映部、22
はレジスタ及びメモリアクセス制御部、23はレジスタ
/ファイル、24はメモリを示す。
Further, 11 is a test section, 12 is a test section, 1
3 is a test execution unit, 14 is a comparison unit, 15 is a work memory,
16 is a work register, 17 is an instruction fetch unit, 18 is an instruction decode unit, 19 is a pipeline control unit, 20-1
20-n are an instruction execution unit, 21 is an execution result reflection unit, 22
Denotes a register and memory access control unit, 23 denotes a register / file, and 24 denotes a memory.

【0022】:実施例の試験で使用するシステムの説
明・・・図2参照 本実施例の試験で使用するシステム構成図を図2に示
す。図2では、先行制御機構として、パイプライン制御
機構(スーパスカラ制御機構)の例について説明する。
Description of the system used in the test of this embodiment: see FIG. 2 FIG. 2 shows a system configuration diagram used in the test of this embodiment. FIG. 2 illustrates an example of a pipeline control mechanism (super scalar control mechanism) as the preceding control mechanism.

【0023】図示のように、このシステムは、試験を実
行する試験部11と、試験の対象となる被試験部12、
及び被試験部12に接続されたレジスタ及びメモリアク
セス制御部22、レジスタ/ファイル23、メモリ24
等で構成する。
As shown, the system includes a test section 11 for executing a test, a test section 12 to be tested,
And a register and memory access control unit 22, a register / file 23, and a memory 24 connected to the unit under test 12.
Etc.

【0024】:試験部11の説明 上記試験部11には、試験実行部13、比較部14、ワ
ークメモリ15、ワークレジスタ16等を設ける。
Description of Test Unit 11 The test unit 11 includes a test execution unit 13, a comparison unit 14, a work memory 15, a work register 16, and the like.

【0025】試験実行部13は、試験プログラムによ
り、被試験部12に対する各種の試験を実行するもので
あり、比較部14は、命令実行後のデータを比較処理す
るものである。また、ワークメモリ15及び、ワークレ
ジスタ16は、試験実行部13が試験を行う際に使用す
るものである。
The test execution unit 13 executes various tests on the unit under test 12 by a test program, and the comparison unit 14 compares data after executing the instruction. The work memory 15 and the work register 16 are used when the test execution unit 13 performs a test.

【0026】上記試験実行部13では、乱数により命令
列を生成し、ワークメモリ15に格納した後、被試験部
12に該命令列を送って試験を実行する。また、命令列
の入替えも、試験実行部13がワークメモリ15、ワー
クレジスタ16等を使用して行い、その後、被試験部1
2に送って試験を実行する。
The test execution unit 13 generates an instruction sequence using random numbers, stores the instruction sequence in the work memory 15, and then sends the instruction sequence to the unit under test 12 to execute a test. Also, the instruction sequence is replaced by the test execution unit 13 using the work memory 15, the work register 16, and the like.
2 to perform the test.

【0027】そして、被試験部12での命令列の実行結
果は、上記試験実行部13が受け取り、比較処理を行
う。なお、上記試験実行部13は、図1の命令生成部
1、命令実行制御部2、命令列入替え処理部7等を合わ
せた機能に対応する。また、比較部14は、図1の実行
結果比較部3に対応する。
The test execution unit 13 receives the execution result of the instruction sequence in the unit under test 12 and performs a comparison process. Note that the test execution unit 13 corresponds to the combined function of the instruction generation unit 1, the instruction execution control unit 2, the instruction sequence replacement processing unit 7, and the like in FIG. Further, the comparison unit 14 corresponds to the execution result comparison unit 3 in FIG.

【0028】:被試験部12等の説明 被試験部12には、命令取り出し部17、命令デコード
部18を具備すると共に、パイプライン制御部19、命
令実行部20−1〜20−n、実行結果反映部21等で
構成されたパイプライン制御機構が設けてある。
Description of the Unit under Test 12 and the Like The unit under test 12 includes an instruction fetching unit 17 and an instruction decoding unit 18, as well as a pipeline control unit 19, instruction execution units 20-1 to 20 -n, and an execution unit. A pipeline control mechanism including a result reflection unit 21 and the like is provided.

【0029】また、この被試験部12には、パイプライ
ン制御を行うために、レジスタ及びメモリアクセス制御
部22が接続されると共に、該レジスタ及びメモリアク
セス制御部22には、レジスタ/ファイル23、メモリ
24が接続されている。
A register and memory access control unit 22 is connected to the unit under test 12 for performing pipeline control, and the register and memory access control unit 22 includes a register / file 23, The memory 24 is connected.

【0030】上記パイプライン制御機構において、例え
ば、命令実行部20−1は、固定少数点用の命令実行
部、命令実行部20−2は、浮動少数点用の命令実行
部、命令実行部20−nは、メモリのロード/ストア等
の命令の実行部である。
In the above-mentioned pipeline control mechanism, for example, the instruction execution unit 20-1 is an instruction execution unit for a fixed-point number, and the instruction execution unit 20-2 is an instruction execution unit for a floating-point number and an instruction execution unit 20. -N is an execution unit for instructions such as memory load / store.

【0031】:試験方法の説明 試験を行う場合は、情報処理システムの被試験部12に
対して、試験部11が乱数により命令列を生成し、生成
した命令列を被試験部12に実行させて、その実行結果
(1回目の走行結果)を期待値とする。
Description of Test Method When a test is performed, the test section 11 generates an instruction sequence based on random numbers for the test section 12 of the information processing system, and causes the test section 12 to execute the generated instruction sequence. Then, the execution result (first running result) is set as an expected value.

【0032】その後、試験部11が実行結果が変化しな
い範囲で、上記命令列の入替え処理を行い、入れ替えた
命令列を再び被試験部12に実行させて、その実行結果
を比較部14が、上記期待値と比較する。
Thereafter, the test unit 11 performs the above-described instruction sequence exchange processing within a range where the execution result does not change, causes the unit under test 12 to execute the exchanged instruction sequence again, and compares the execution result with the comparing unit 14. Compare with the above expected value.

【0033】以下、上記試験部11による命令入替え処
理の実施例を説明する。なお、以下の実施例で説明する
レジスタ(r1〜r6)、ファイル(f1〜f6)、メ
モリ領域(AREA1、AREA2)は、図2のレジス
タ/ファイル23、及びメモリ24の一部である。ま
た、W1、C1は、ワークメモリ15の領域である。
An embodiment of the instruction replacement process by the test unit 11 will be described below. The registers (r1 to r6), files (f1 to f6), and memory areas (AREA1, AREA2) described in the following embodiments are a part of the register / file 23 and the memory 24 in FIG. W1 and C1 are areas of the work memory 15.

【0034】(第1実施例の説明)図3、図4は、命令
入替え処理の第1実施例を示した図であり、図3は命令
列の説明図、図6は命令入れ替え処理フローチャートで
ある。
(Explanation of First Embodiment) FIGS. 3 and 4 are diagrams showing a first embodiment of the instruction replacement process. FIG. 3 is an explanatory diagram of the instruction sequence, and FIG. 6 is a flowchart of the instruction replacement process. is there.

【0035】第1実施例では、レジスタ干渉を回避させ
ることにより、命令の入替えを行う例である。この試験
方法は、パイプラインが1個のCPU、及び、パイプラ
インが複数個存在するCPU(図2参照)に適用出来
る。
In the first embodiment, instructions are exchanged by avoiding register interference. This test method can be applied to a CPU having one pipeline and a CPU having a plurality of pipelines (see FIG. 2).

【0036】:命令の入れ替え論理の説明 この例では、或る命令のディストネーションレジスタ
が、後続命令のソースレジスタと干渉しない条件で命令
列を入れ替える。
Description of Instruction Swapping Logic In this example, a destination register of a certain instruction swaps an instruction sequence under a condition that does not interfere with a source register of a subsequent instruction.

【0037】例えば、固定少数点命令のディストネーシ
ョンレジスタが、後続命令のソースレジスタと干渉しな
い条件で命令列を入れ替える。 :命令列の説明・・・図3参照 上記試験を行う場合は、試験実行部13が、乱数により
命令列を生成し、生成した命令列を命令領域1に格納す
ると共に、上記命令入れ替え論理に従って、命令を入れ
替え、その結果の命令列を命令領域2に格納する。
For example, a destination register of a fixed-point instruction replaces an instruction sequence under a condition that does not interfere with a source register of a subsequent instruction. : Explanation of instruction sequence ... see FIG. 3 When performing the above test, the test execution unit 13 generates an instruction sequence using random numbers, stores the generated instruction sequence in the instruction area 1, and follows the instruction replacement logic. , Instructions, and the resulting instruction sequence is stored in the instruction area 2.

【0038】図示のように、命令領域1の命令列は、
「DIV:ゼロ除算例外割り込み」、「ADD:r1+
r2→r3」、「SUB:r1−r2→r5」、「O
R:r3/r5→r4」、「XXX:特権命令例外割り
込み」・・・の順に並んでいる。
As shown, the instruction sequence in the instruction area 1 is
“DIV: divide-by-zero exception interrupt”, “ADD: r1 +
r2 → r3 ”,“ SUB: r1-r2 → r5 ”,“ O
R: r3 / r5 → r4 ”,“ XXX: privileged instruction exception interrupt ”,...

【0039】そして、上記命令領域1の命令の内、「A
DD」と、「SUB」を入替えて、命令領域2に格納す
る。なお、この2つの命令を入れ替えても、レジスタ干
渉がないので、結果に影響を与えない。
Then, among the instructions in the instruction area 1, "A
DD ”and“ SUB ”are exchanged and stored in the instruction area 2. Even if these two instructions are exchanged, there is no register interference, so that the result is not affected.

【0040】:命令入れ替え処理の説明・・・図4参
照 第1実施例の命令入替え処理フローチャートを図4に示
す。なお、S1〜S7は、処理番号を示す。
Description of Instruction Swapping Process--See FIG. 4 FIG. 4 shows a flowchart of the instruction swapping process of the first embodiment. Note that S1 to S7 indicate processing numbers.

【0041】この処理では、図3の各命令列を対象とし
て処理を行うが、割り込みが発生した命令間の命令を対
象にして、命令列の入れ替え処理を行う。すなわち、図
3の例では、「DIV」と「XXX」との間の命令が入
替えの対象となる。
In this processing, the processing is performed for each instruction sequence shown in FIG. 3, but the processing for exchanging the instruction sequences is performed for the instructions between the interrupted instructions. That is, in the example of FIG. 3, an instruction between “DIV” and “XXX” is a replacement target.

【0042】S1:ポインタ(アドレスポインタ)P1
に、入れ替え命令の先頭アドレスを設定する。 図3の例では、命令領域1に格納した命令列の内、「D
IV:ゼロ除算例外割り込み」命令が割り込み発生であ
るから、その次の命令は、「ADD:r1+r2→r
3」命令である。
S1: Pointer (address pointer) P1
Is set to the start address of the replacement instruction. In the example of FIG. 3, “D” in the instruction sequence stored in the instruction area 1
Since the “IV: divide-by-zero exception” instruction generates an interrupt, the next instruction is “ADD: r1 + r2 → r
3 "instruction.

【0043】従って、上記ポインタP1には、「AD
D」命令の先頭アドレスを設定する。 S2:ポインタ(アドレスポインタ)P2に、上記ポイ
ンタP1の次の命令の先頭アドレスを設定する。
Therefore, the pointer P1 has "AD
Set the start address of the "D" instruction. S2: The start address of the instruction following the pointer P1 is set in the pointer (address pointer) P2.

【0044】この場合、1回目は、ポインタP2に「S
UB:r1−r2→r5」命令の先頭アドレスを設定す
る。 S3:ポインタP1の命令のディストネーションレジス
タが、ポインタP2の命令のソースレジスタと一致する
かどうかを判断する。
In this case, for the first time, "S
UB: r1-r2 → r5 "Sets the start address of the instruction. S3: Determine whether the destination register of the instruction of the pointer P1 matches the source register of the instruction of the pointer P2.

【0045】この場合、1回目は、ポインタP1の命令
のディストネーションレジスタが、r3であり、ポイン
タP2の命令のソースレジスタがr1、r2である。従
って、第1回目の判断では、両者は、一致しない。
In this case, at the first time, the destination register of the instruction of the pointer P1 is r3, and the source registers of the instruction of the pointer P2 are r1 and r2. Therefore, in the first determination, they do not match.

【0046】S4:上記S3の処理で、両者が一致しな
かった場合は、ポインタP2の命令のディストネーショ
ンレジスタが、ポインタP1の命令のソースレジスタと
一致するかどうかを判断する。
S4: If the two do not match in the process of S3, it is determined whether or not the destination register of the instruction of the pointer P2 matches the source register of the instruction of the pointer P1.

【0047】この場合、1回目は、ポインタP2の命令
のディストネーションレジスタは、r5であり、ポイン
タP1の命令のソースレジスタはr1、r2である。従
って、第1回目の判断では、両者は、一致しない。
In this case, for the first time, the destination register of the instruction of the pointer P2 is r5, and the source registers of the instruction of the pointer P1 are r1 and r2. Therefore, in the first determination, they do not match.

【0048】S5:上記S4の処理で、両者が一致しな
かった場合は、レジスタ間の干渉が無いため、ポインタ
P1の命令と、ポインタP2の命令を入れ替える。 S6:上記S3、S4の処理で、両者が一致した場合、
及び、S5の処理が終了した場合には、ポインタP1
に、ポインタP2の次の命令の先頭アドレスを設定す
る。
S5: If the two do not match in the process of S4, the instruction of the pointer P1 and the instruction of the pointer P2 are exchanged because there is no interference between the registers. S6: If the two match in the processing of S3 and S4,
When the processing of S5 is completed, the pointer P1
Is set to the start address of the instruction following the pointer P2.

【0049】S7:続いて、命令入れ替えの範囲を越え
ていたら、処理を終了するが、越えていなければ、上記
S2の処理から繰り返して行う。この場合の入れ替え範
囲は、「ADD」から、「OR」までである。
S7: Subsequently, if it is out of the range of the instruction replacement, the processing is terminated. If not, the processing is repeated from the processing of S2. The replacement range in this case is from “ADD” to “OR”.

【0050】なお、2回目から行うS2〜S6までの処
理では、次のようになる。すなわち、S3の処理では、
ポインタP1の命令のディストネーションレジスタが、
レジスタr5であり、ポインタP2の命令のソースレジ
スタがレジスタr3、r5である。
The processing from S2 to S6 performed from the second time is as follows. That is, in the process of S3,
The destination register of the instruction of the pointer P1 is
The register r5, and the source registers of the instruction of the pointer P2 are the registers r3 and r5.

【0051】従って、2回目の判断では、両者は一致す
るから、命令の入れ替え対象とならない。以上の処理に
より、図3の例では、「ADD」と「SUB」命令を入
れ替えることになる。
Therefore, in the second judgment, since they match, they are not subject to instruction replacement. By the above processing, in the example of FIG. 3, the “ADD” and “SUB” instructions are exchanged.

【0052】(第2実施例の説明)図5、図6は、本発
明の第2実施例を示した図であり、図5は命令列の説明
図、図6は命令入れ替え処理フローチャートである。
(Explanation of Second Embodiment) FIGS. 5 and 6 show a second embodiment of the present invention. FIG. 5 is an explanatory diagram of an instruction sequence, and FIG. 6 is a flowchart of instruction replacement processing. .

【0053】第2実施例では、オペランドメモリ干渉を
回避させることにより、命令の入替えを行う例である。
この試験方法は、パイプラインが1個のCPU、及び、
パイプラインが複数個存在するCPU(図2参照)に適
用出来る。
In the second embodiment, instructions are replaced by avoiding operand memory interference.
This test method consists of a CPU with one pipeline and
The present invention can be applied to a CPU having a plurality of pipelines (see FIG. 2).

【0054】:命令の入れ替え論理の説明 この例では、或る命令のディストネーションメモリ領域
が、後続命令のソースメモリ領域と干渉しない条件で命
令列を入れ替える。
Description of Instruction Interchange Logic In this example, the instruction sequence is exchanged under the condition that the destination memory area of a certain instruction does not interfere with the source memory area of the subsequent instruction.

【0055】例えば、メモリへの格納と、メモリからの
取り出しが干渉しない条件で、命令列を入れ替える。 :命令列の説明・・・図5参照 上記試験を行う場合は、試験実行部13が、乱数により
命令列を生成し、生成した命令列を命令領域1に格納す
ると共に、上記命令入れ替え論理に従って、命令を入れ
替え、その結果の命令列を命令領域2に格納する。
For example, the instruction sequence is exchanged under the condition that the storage in the memory and the retrieval from the memory do not interfere with each other. : Explanation of instruction sequence ... see FIG. 5 When performing the above test, the test execution unit 13 generates an instruction sequence using random numbers, stores the generated instruction sequence in the instruction area 1, and follows the instruction replacement logic. , Instructions, and the resulting instruction sequence is stored in the instruction area 2.

【0056】図示のように、命令領域1の命令列は、
「DIV:ゼロ除算例外割り込み」、「ST:r1→A
REA1」、「LD:AREA2→r4」、「SUB:
r1−r2→r5」、「XXX:特権命令例外割り込
み」・・・の順に並んでいる。
As shown, the instruction sequence in the instruction area 1 is:
“DIV: divide-by-zero exception interrupt”, “ST: r1 → A”
REA1, "LD: AREA2 → r4", "SUB:
r1-r2 → r5 "," XXX: privileged instruction exception interrupt ",...

【0057】そして、上記命令領域1の命令の内、「S
T」と、「LD」の命令を入替えて、命令領域2に格納
する。なお、この2つの命令を入れ替えても、オペラン
ドメモリ干渉がないので、結果に影響を与えない。
Then, among the instructions in the instruction area 1, "S
The instructions “T” and “LD” are exchanged and stored in the instruction area 2. Note that even if these two instructions are exchanged, there is no interference with the operand memory, so that the result is not affected.

【0058】:命令入れ替え処理の説明・・・図6参
照 第2実施例の処理フローチャートを図6に示す。なお、
S11〜S17は、処理番号を示す。
Description of Instruction Interchange Processing—See FIG. 6 FIG. 6 shows a processing flowchart of the second embodiment. In addition,
S11 to S17 indicate processing numbers.

【0059】この処理では、図5の各命令列を対象とし
て処理を行うが、割り込みが発生した命令間の命令を対
象にして、命令の入れ替え処理を行う。すなわち、図5
の例では、「DIV」と「XXX」との間の命令が入替
えの対象となる。
In this processing, the processing is performed for each instruction sequence in FIG. 5, but the instruction exchange processing is performed for the instructions between the interrupted instructions. That is, FIG.
In the example, the instruction between "DIV" and "XXX" is a replacement target.

【0060】S11:ポインタP1に、入れ替え命令の
先頭アドレスを設定する。図5の例では、命令領域1の
命令列の内、「DIV:ゼロ除算例外割り込み」命令が
割り込み発生であるから、その次の命令は、「ST:r
1→AREA1」である。
S11: The start address of the replacement instruction is set in the pointer P1. In the example of FIG. 5, since the “DIV: division-by-zero exception interrupt” instruction in the instruction sequence of the instruction area 1 generates an interrupt, the next instruction is “ST: r
1 → AREA1 ”.

【0061】従って、上記ポインタP1には、「ST:
r1→AREA1」命令の先頭アドレスを設定する。 S12:ポインタP2に、上記ポインタP1の次の命令
の先頭アドレスを設定する。
Therefore, the pointer P1 has "ST:
Set the start address of the “r1 → AREA1” instruction. S12: The start address of the instruction following the pointer P1 is set in the pointer P2.

【0062】この場合、1回目は、ポインタP2には、
「LD:AREA2→r4」命令の先頭アドレスを設定
する。 S13:ポインタP1の命令のディストネーションメモ
リが、ポインタP2の命令のソースメモリと一致するか
どうかを判断する。
In this case, the first time, the pointer P2
The start address of the “LD: AREA2 → r4” instruction is set. S13: It is determined whether or not the destination memory of the instruction of the pointer P1 matches the source memory of the instruction of the pointer P2.

【0063】この場合、1回目は、ポインタP1の命令
のディストネーションメモリが、AREA1であり、ポ
インタP2の命令のソースメモリがAREA2である。
従って、第1回目の判断では、両者は、一致しない。
In this case, for the first time, the destination memory of the instruction of the pointer P1 is AREA1, and the source memory of the instruction of the pointer P2 is AREA2.
Therefore, in the first determination, they do not match.

【0064】S14:上記S13の処理で、両者が一致
しなかった場合は、ポインタP2の命令のディストネー
ションレジスタが、ポインタP1の命令のソースレジス
タと一致するかどうかを判断する。
S14: If the two do not match in the process of S13, it is determined whether or not the destination register of the instruction of the pointer P2 matches the source register of the instruction of the pointer P1.

【0065】この場合、1回目は、ポインタP2の命令
のディストネーションレジスタは、r4であり、ポイン
タP1の命令のソースレジスタはr1である。従って、
第1回目の判断では、両者は、一致しない。
In this case, at the first time, the destination register of the instruction of the pointer P2 is r4, and the source register of the instruction of the pointer P1 is r1. Therefore,
In the first determination, they do not match.

【0066】S15:上記S14の処理で、両者が一致
しなかった場合は、レジスタ間の干渉が無いため、ポイ
ンタP1の命令と、ポインタP2の命令を入れ替える。 S16:上記S13、S14の処理で、両者が一致した
場合、及び、S15の処理が終了した場合には、ポイン
タP1に、ポインタP2の次の命令の先頭アドレスを設
定する。
S15: If the two do not match in the process of S14, the instruction of the pointer P1 and the instruction of the pointer P2 are replaced because there is no interference between the registers. S16: If the two match in the processes of S13 and S14, and if the process of S15 ends, the start address of the instruction following the pointer P2 is set in the pointer P1.

【0067】S17:続いて、命令入れ替えの範囲を越
えていたら、処理を終了するが、越えていなければ、上
記S12の処理から繰り返して行う。この場合の入れ替
え範囲は、「ST」から、「SUB」までである。
S17: Subsequently, if it is out of the range of the instruction replacement, the process is terminated. If not, the process is repeated from the process of S12. The replacement range in this case is from “ST” to “SUB”.

【0068】なお、2回目から行うS12〜S16まで
の処理では、次のようになる。すなわち、S13の処理
では、両者供、レジスタなので、メモリの一致は無く、
S14の処理では、メモリとレジスタの比較なので、レ
ジスタの一致は無い。
The processing from S12 to S16 performed from the second time is as follows. That is, in the process of S13, since both are registers, there is no memory match,
In the process of S14, since the memory and the register are compared, there is no match between the registers.

【0069】従って、2回目の判断では、命令の入れ替
え対象は存在しない。以上の処理により、図5の例で
は、「ST」と「LD」命令を入れ替えることになる。
Therefore, in the second judgment, there is no instruction replacement target. By the above processing, in the example of FIG. 5, the “ST” and “LD” instructions are exchanged.

【0070】(第3実施例の説明)図7、図8は、本発
明の第3実施例を示した図であり、図7は命令列の説明
図、図8は命令入れ替え処理フローチャートである。
(Explanation of Third Embodiment) FIGS. 7 and 8 show a third embodiment of the present invention. FIG. 7 is an explanatory diagram of an instruction sequence, and FIG. 8 is a flowchart of instruction replacement processing. .

【0071】第3実施例では、命令タイプが異なる命令
を入れ替える例である。この試験方法は、スーパースカ
ラ制御等によるパイプラインが複数個存在するCPU
(図2参照)に適用出来る。
The third embodiment is an example in which instructions of different instruction types are exchanged. This test method uses a CPU with multiple pipelines based on superscalar control, etc.
(See FIG. 2).

【0072】すなわち、他のパイプラインで実行される
命令を入れ替える方法である。この場合、命令のタイプ
とは、例えば、「固定少数点演算命令」、「浮動少数点
演算命令」等の命令の種類を意味する。
That is, this is a method of exchanging instructions executed in another pipeline. In this case, the instruction type means an instruction type such as a “fixed-point operation instruction” or a “floating-point operation instruction”.

【0073】:命令の入れ替え論理の説明 この例では、命令の種類により、実行されるパイプライ
ンが、干渉しない条件で命令を入れ替える。例えば、後
続する固定少数点命令と、浮動少数点命令を入れ替え
る。
Description of Instruction Swapping Logic In this example, depending on the type of instruction, the executed pipeline swaps instructions under conditions that do not cause interference. For example, the following fixed-point instruction is replaced with a floating-point instruction.

【0074】:命令列の説明・・・図7参照 上記試験を行う場合は、試験実行部13が、乱数により
命令列を生成し、生成した命令列を命令領域1に格納す
ると共に、上記命令入れ替え論理に従って、命令を入れ
替え、その結果の命令列を命令領域2に格納する。
Description of Instruction Sequence—See FIG. 7 When performing the above test, the test execution unit 13 generates an instruction sequence by using random numbers, stores the generated instruction sequence in the instruction area 1, The instructions are exchanged according to the exchange logic, and the resulting instruction sequence is stored in the instruction area 2.

【0075】図示のように、命令領域1の命令列は、
「DIV:ゼロ除算例外割り込み」、「ADD:r1+
r2→r3」、「FMUL:f1*f2→f5」、「O
R:r3/r5→r4」、「XXX:特権命令例外割り
込み」・・・の順に並んでいる。
As shown, the instruction sequence in the instruction area 1 is
“DIV: divide-by-zero exception interrupt”, “ADD: r1 +
r2 → r3 ”,“ FMUL: f1 * f2 → f5 ”,“ O
R: r3 / r5 → r4 ”,“ XXX: privileged instruction exception interrupt ”,...

【0076】上記命令領域1の命令の内、固定少数点命
令の「ADD」と、浮動少数点命令の「FMUL」の命
令を入替えて、命令領域2に格納する。 :命令入れ替え処理の説明・・・図8参照 第3実施例の処理フローチャートを図8に示す。なお、
S21〜S26は、処理番号を示す。
Of the instructions in the instruction area 1, the fixed-point instruction “ADD” and the floating-point instruction “FMUL” are exchanged and stored in the instruction area 2. : Explanation of the instruction replacement process ... see FIG. 8 FIG. 8 shows a processing flowchart of the third embodiment. In addition,
S21 to S26 indicate processing numbers.

【0077】この処理では、図7の各命令列を対象とし
て処理を行うが、割り込みが発生した命令間の命令を対
象にして、命令の入れ替え処理を行う。すなわち、図7
の例では、「DIV」と「XXX」との間の命令が入替
えの対象となる。
In this processing, processing is performed for each instruction sequence in FIG. 7, but instruction replacement processing is performed for instructions between instructions in which an interrupt has occurred. That is, FIG.
In the example, the instruction between "DIV" and "XXX" is a replacement target.

【0078】S21:ポインタP1に、入れ替え命令の
先頭アドレスを設定する。 図7の例では、命令領域1の命令列の内、「DIV:ゼ
ロ除算例外割り込み」命令が割り込み発生であるから、
その次の命令は、「ADD:r1+r2→r3」であ
る。
S21: The start address of the replacement instruction is set in the pointer P1. In the example of FIG. 7, since the "DIV: divide-by-zero exception interrupt" instruction of the instruction sequence in the instruction area 1 generates an interrupt,
The next instruction is “ADD: r1 + r2 → r3”.

【0079】従って、上記ポインタP1には、「AD
D:r1+r2→r3」命令の先頭アドレスを設定す
る。 S22:ポインタP2に、上記ポインタP1の次の命令
の先頭アドレスを設定する。
Therefore, the pointer P1 has "AD
D: r1 + r2 → r3 ”The start address of the instruction is set. S22: The start address of the instruction following the pointer P1 is set in the pointer P2.

【0080】この場合、1回目は、ポインタP2には、
「FMUL:f1*f2→f5」の命令の先頭アドレス
を設定する。 S23:ポインタP1の命令のタイプが、ポインタP2
の命令のタイプと一致するかどうかを判断する。
In this case, the first time, the pointer P2
The start address of the instruction “FMUL: f1 * f2 → f5” is set. S23: The type of the instruction of the pointer P1 is the pointer P2
To determine if it matches the instruction type.

【0081】この場合、1回目は、ポインタP1の命令
タイプは、固定少数点命令の「ADD」であり、ポイン
タP2の命令タイプは、浮動少数点命令の「FMUL」
である。従って、第1回目の判断では、両者のタイプは
一致しない。
In this case, for the first time, the instruction type of the pointer P1 is the fixed-point instruction “ADD”, and the instruction type of the pointer P2 is the floating-point instruction “FMUL”.
It is. Therefore, in the first determination, the two types do not match.

【0082】S24:上記S23の処理で、両者が一致
しなかった場合は、ポインタP1の命令と、ポインタP
2の命令とを入れ替える。 S25:上記S23の処理で、両者が一致した場合、及
び、S24の処理が終了した場合には、ポインタP1
に、ポインタP2の次の命令の先頭アドレスを設定す
る。
S24: If the two do not match in the process of S23, the instruction of the pointer P1 and the pointer P
Swap with instruction 2. S25: If the two match in the process of S23, and if the process of S24 ends, the pointer P1
Is set to the start address of the instruction following the pointer P2.

【0083】S26:続いて、命令入れ替えの範囲を越
えていたら、処理を終了するが、越えていなければ、上
記S22の処理から繰り返して行う。この場合の入れ替
え範囲は、「ADD」から、「OR」までである。
S26: Subsequently, if the instruction replacement range is exceeded, the processing is terminated. If not, the processing from S22 is repeated. The replacement range in this case is from “ADD” to “OR”.

【0084】以上の処理により、図7の例では、固定少
数点命令の「ADD」と浮動少数点命令の「FMUL」
命令を入れ替えることになる。 (第4実施例の説明)図9、図10、図11は、本発明
の第4実施例を示した図であり、図9は命令列の説明
図、図10、図11は命令入れ替え処理フローチャート
(その1、その2)である。
By the above processing, in the example of FIG. 7, the fixed-point instruction "ADD" and the floating-point instruction "FMUL"
The instructions will be swapped. (Explanation of Fourth Embodiment) FIGS. 9, 10, and 11 are diagrams showing a fourth embodiment of the present invention. FIG. 9 is an explanatory diagram of an instruction sequence, and FIGS. It is a flowchart (the 1 and the 2).

【0085】第4実施例は、同一命令タイプを集合させ
て命令を入れ替える例である。この試験方法は、スーパ
ースカラ制御等によるパイプラインが複数個存在するC
PU(図2参照)に適用出来る。
The fourth embodiment is an example in which the same instruction types are collected and instructions are exchanged. This test method is based on C with multiple pipelines by super scalar control, etc.
Applicable to PU (see FIG. 2).

【0086】:命令の入れ替え論理の説明 この例では、命令の種類毎に、同一パイプラインで実行
される命令を集合させて入れ替える。例えば、後続する
固定少数点命令と、浮動少数点命令を集合させて入れ替
える。
Description of Instruction Interchange Logic In this example, instructions executed in the same pipeline are grouped and exchanged for each type of instruction. For example, the following fixed-point instructions and floating-point instructions are collected and exchanged.

【0087】すなわち、固定少数点命令と浮動少数点命
令が異なるパイプラインで実行されるCPUの場合、固
定少数点命令群と、浮動少数点命令群にそれぞれ集合
し、入れ替える。
That is, in the case of a CPU in which the fixed-point instruction and the floating-point instruction are executed in different pipelines, the fixed-point instruction group and the floating-point instruction group are gathered and exchanged, respectively.

【0088】:命令列の説明・・・図9参照 上記試験を行う場合は、試験実行部13が、乱数により
命令列を生成し、生成した命令列を命令領域1に格納す
ると共に、上記命令入れ替え論理に従って、命令を入れ
替え、その結果の命令列を命令領域2に格納する。
Description of Instruction Sequence—See FIG. 9 When performing the above test, the test execution unit 13 generates an instruction sequence by using random numbers, stores the generated instruction sequence in the instruction area 1, The instructions are exchanged according to the exchange logic, and the resulting instruction sequence is stored in the instruction area 2.

【0089】図示のように、命令領域1の命令列は、
「DIV:ゼロ除算例外割り込み」、「ADD:r1+
r2→r3」、「FMUL:f1*f2→f5」、「O
R:r3/r5→r4」、「SUB:r1−r2→r
3」、「FADD:f2*f3→f6」、「AND:r
1&r2→r6」、「XXX:特権命令例外割り込み」
・・・の順に並んでいる。
As shown, the instruction sequence in the instruction area 1 is
“DIV: divide-by-zero exception interrupt”, “ADD: r1 +
r2 → r3 ”,“ FMUL: f1 * f2 → f5 ”,“ O
R: r3 / r5 → r4 ”,“ SUB: r1-r2 → r
3 "," FADD: f2 * f3 → f6 "," AND: r
1 & r2 → r6 ”,“ XXX: Privileged instruction exception interrupt ”
...

【0090】そして、上記命令領域1の命令列の内、固
定少数点命令の「ADD」、「OR」、「SUB」、
「AND」の命令群を集合させると共に、浮動少数点命
令の「FMUL」、「FADD」の命令群を集合させて
入れ替える。
Then, in the instruction sequence of the instruction area 1, the fixed-point instructions "ADD", "OR", "SUB",
An instruction group of “AND” is aggregated, and an instruction group of “FMUL” and “FADD” of floating-point instructions are aggregated and exchanged.

【0091】:命令入れ替え処理の説明・・・図1
0、図11参照 第4実施例の処理フローチャートを図10、図11に示
す。なお、S31〜S41は、処理番号を示す。
Description of Instruction Interchange Processing--FIG.
0 and FIG. 11 FIGS. 10 and 11 show processing flowcharts of the fourth embodiment. In addition, S31 to S41 indicate a processing number.

【0092】この処理では、図9の命令領域1内の命令
列を対象として処理を行うが、割り込みが発生した命令
間の命令を対象にして、命令の入れ替え処理を行う。す
なわち、図9の例では、「DIV」と「XXX」との間
の命令が入替えの対象となる。
In this processing, the processing is performed on the instruction sequence in the instruction area 1 in FIG. 9, but the instruction replacement processing is performed on the instructions between the interrupted instructions. That is, in the example of FIG. 9, an instruction between “DIV” and “XXX” is a replacement target.

【0093】なお、以下の処理で使用するW1、C1
は、ワークメモリ15(図2参照)内の領域である。ま
た、f1〜f6はファイル(図2のレジスタ/ファイル
23内)の領域である。
Note that W1 and C1 used in the following processing are used.
Is an area in the work memory 15 (see FIG. 2). F1 to f6 are areas of the file (in the register / file 23 in FIG. 2).

【0094】S31:ポインタP1に、入れ替え命令の
先頭アドレスを設定する。また、W1に作業領域の先頭
アドレスを設定し、カウンタC1をゼロクリアする。図
9の例では、命令領域1に格納した命令列の内、「DI
V:ゼロ除算例外割り込み」命令が割り込み発生である
から、その次の命令は、「ADD」である。
S31: The start address of the replacement instruction is set in the pointer P1. Also, the start address of the work area is set in W1, and the counter C1 is cleared to zero. In the example of FIG. 9, among the instruction strings stored in the instruction area 1, "DI
Since the "V: divide-by-zero exception interrupt" instruction generates an interrupt, the next instruction is "ADD".

【0095】従って、上記ポインタP1には、「AD
D」命令の先頭アドレスを設定する。 S32:W1の領域に、ポインタP1の命令を入れる。
また、W1の領域に、次の作業領域のアドレスを設定す
ると共に、C1の値をカウントアップ(+1)する。
Therefore, the pointer P1 has "AD
Set the start address of the "D" instruction. S32: Insert the instruction of the pointer P1 into the area of W1.
Further, the address of the next work area is set in the area of W1, and the value of C1 is counted up (+1).

【0096】S33:ポインタP2に、ポインタP1の
次の命令の先頭アドレスを設定する。 S34:ポインタP1の命令のタイプが、ポインタP2
の命令のタイプと一致するかどうかを判断する。
S33: The start address of the instruction following the pointer P1 is set in the pointer P2. S34: The type of the instruction of pointer P1 is pointer P2
To determine if it matches the instruction type.

【0097】S35:上記S34の処理で、両者が一致
した場合には、W1の領域に、ポインタP2の命令を入
れる。また、W1に次の作業領域のアドレスを設定する
と共に、C1をカウントアップ(+1)する。更に、ポ
インタP2の命令に、処理済マークを付ける。
S35: If the two match in the process of S34, the instruction of the pointer P2 is inserted into the area of W1. Further, the address of the next work area is set in W1, and C1 is counted up (+1). Further, a processed mark is attached to the instruction of the pointer P2.

【0098】S36:上記S34の処理で、両者が一致
しなかった場合、及び、S35の処理が終了した場合に
は、ポインタP2に、ポインタP2の次の命令の先頭ア
ドレスを設定する(P2のアドレスを1つ増やす)。
S36: If the two do not match in the process of S34, and if the process of S35 is completed, the start address of the instruction following the pointer P2 is set to the pointer P2 (P2). Add one address).

【0099】S37:続いて、命令入れ替えの範囲を越
えていなければ、上記S34に戻って処理を行うが、命
令入れ替えの範囲を越えていた場合には、次の処理(S
38)を行う。
S37: Subsequently, if it does not exceed the range of instruction replacement, the process returns to S34 to perform the processing. If it exceeds the range of instruction replacement, the next processing (S
38) is performed.

【0100】S38:ポインタP1に、ポインタP1の
次の命令の先頭アドレスを設定する。 S39:上記S38の処理を行って、命令入れ替えの範
囲を越えたかどうかを判断する。
S38: The start address of the instruction following the pointer P1 is set in the pointer P1. S39: Perform the process of S38 to determine whether or not the range of instruction replacement has been exceeded.

【0101】S40:上記S39の処理で、命令入れ替
えの範囲を越えていない場合には、ポインタP1の命令
は、処理済マークかどうかを判断する。その結果、処理
済マークがつ付いていたら、上記S38に戻って処理を
行う。
S40: If it is determined in step S39 that the instruction does not exceed the instruction replacement range, it is determined whether the instruction of the pointer P1 is a processed mark. As a result, if the processed mark is attached, the process returns to S38 to perform the processing.

【0102】しかし、処理済マークでなかった場合は、
上記S32に戻って処理を行う。 S41:上記S39の処理で、命令入れ替えの範囲を越
えていた場合には、上記作業領域の命令列を、命令入れ
替え領域に書き戻して処理を終了する。
However, if the mark is not a processed mark,
Returning to S32, the process is performed. S41: If the processing in S39 is beyond the range of the instruction replacement, the instruction sequence in the work area is written back to the instruction replacement area, and the processing is terminated.

【0103】以上の処理により、上記命令領域1の命令
列の内、固定少数点命令の「ADD」、「OR」、「S
UB」、「AND」の命令群を集合させると共に、浮動
少数点命令の「FMUL」、「FADD」の命令群を集
合させて入れ替える。
By the above processing, the fixed-point instructions “ADD”, “OR”, “S”
The instruction groups of “UB” and “AND” are aggregated, and the instruction groups of “FMUL” and “FADD” of floating-point instructions are aggregated and exchanged.

【0104】(他の実施例)以上実施例について説明し
たが、本発明は次のようにしても実施可能である。 :命令列は、上記実施例で示した命令列に限らず、各
種の命令列で実行可能である。
(Other Embodiments) Although the embodiments have been described above, the present invention can be implemented as follows. The instruction sequence is not limited to the instruction sequence described in the above embodiment, but can be executed by various instruction sequences.

【0105】:パイプライン制御機構以外の先行制御
機構の検証にも、上記実施例と同様に適用可能である。
The present invention can be applied to verification of a preceding control mechanism other than the pipeline control mechanism in the same manner as in the above embodiment.

【0106】[0106]

【発明の効果】以上説明したように、本発明によれば次
のような効果がある。 :命令列を入れ替えることにより、パイプライン動作
を変化させることが出来、検証精度を高める事が出来
る。
As described above, the present invention has the following effects. : By changing the instruction sequence, the pipeline operation can be changed, and the verification accuracy can be improved.

【0107】:特に、スーパースカラ制御による複数
パイプライン方式では、各パイプラインへの命令投入順
序が変化するので、パイプライン機構の動作条件を拡大
出来る。その結果、検証精度を高める事が出来る。
In particular, in the multi-pipeline system based on superscalar control, the order of input of instructions to each pipeline changes, so that the operating conditions of the pipeline mechanism can be expanded. As a result, verification accuracy can be improved.

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

【図1】本発明の原理説明図である。FIG. 1 is a diagram illustrating the principle of the present invention.

【図2】本発明の実施例のシステム構成図である。FIG. 2 is a system configuration diagram of an embodiment of the present invention.

【図3】第1実施例の命令列の説明図である。FIG. 3 is an explanatory diagram of an instruction sequence according to the first embodiment.

【図4】第1実施例の命令入替え処理フローチャートで
ある。
FIG. 4 is a flowchart of an instruction replacement process according to the first embodiment.

【図5】第2実施例の命令列の説明図である。FIG. 5 is an explanatory diagram of an instruction sequence according to a second embodiment.

【図6】第2実施例の命令入替え処理フローチャートで
ある。
FIG. 6 is a flowchart of an instruction replacement process according to the second embodiment.

【図7】第3実施例の命令列の説明図である。FIG. 7 is an explanatory diagram of an instruction sequence according to a third embodiment.

【図8】第3実施例の命令入替え処理フローチャートで
ある。
FIG. 8 is a flowchart of an instruction replacement process according to the third embodiment.

【図9】第4実施例の命令列の説明図である。FIG. 9 is an explanatory diagram of an instruction sequence according to a fourth embodiment.

【図10】第4実施例の命令入替え処理フローチャート
(その1)である。
FIG. 10 is a flowchart (part 1) of an instruction replacement process according to the fourth embodiment.

【図11】第4実施例の命令入替え処理フローチャート
(その2)である。
FIG. 11 is a flowchart (part 2) of an instruction replacement process according to the fourth embodiment.

【図12】従来技術の説明図である。FIG. 12 is an explanatory diagram of a conventional technique.

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

1 命令生成部 2 命令実行制御部 3 実行結果比較部 5、6 実行結果領域(メモリ領域) 7 命令列入替え処理部 8、9 命令領域(メモリ領域) DESCRIPTION OF SYMBOLS 1 Instruction generation part 2 Instruction execution control part 3 Execution result comparison part 5, 6 Execution result area (memory area) 7 Instruction sequence exchange processing part 8, 9 Instruction area (memory area)

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/22 - 11/26 G06F 9/38 JICSTファイル(JOIS)────────────────────────────────────────────────── ─── Continued on the front page (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 11/22-11/26 G06F 9/38 JICST file (JOIS)

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 命令実行の先行制御機構を有する情報処
理システムに対して、試験プログラムが、乱数により命
令列を生成し、前記生成した命令列を上記先行制御機構
に実行させて、その実行結果(1回目の走行結果)を、
期待値とする先行制御機構の試験方法において、 前記試験プログラムにより、実行結果が変化しない範囲
で、上記命令列を入替え、入れ替えた命令列の実行結果
を、上記期待値と比較することを特徴とした先行制御機
構の試験方法。
1. An information processing system having an advance control mechanism for instruction execution, a test program generates an instruction sequence using random numbers, causes the preceding control mechanism to execute the generated instruction sequence, and executes the execution result. (The first run result)
In the test method of the preceding control mechanism having an expected value, the instruction sequence is replaced by the test program as long as the execution result does not change, and the execution result of the replaced instruction sequence is compared with the expected value. Testing method for advanced control mechanism.
【請求項2】 前記試験プログラムにより、命令のディ
ストネーションレジスタが、後続命令のソースレジスタ
と干渉しない条件で、命令列の入替えを行うことを特徴
とした請求項1記載の先行制御機構の試験方法。
2. The test method for a preceding control mechanism according to claim 1, wherein the test program replaces the instruction sequence under a condition that a destination register of the instruction does not interfere with a source register of a subsequent instruction. .
【請求項3】 前記試験プログラムにより、命令のディ
ストネーションメモリ領域が、後続命令のソースメモリ
領域と干渉しない条件で、命令列の入替えを行うことを
特徴とした請求項1記載の先行制御機構の試験方法。
3. The pre-control mechanism according to claim 1, wherein the test program replaces the instruction sequence under a condition that the destination memory area of the instruction does not interfere with the source memory area of the subsequent instruction. Test method.
【請求項4】 前記試験プログラムにより、命令タイプ
が異なる命令を入れ替えることにより、命令列の入替え
を行うことを特徴とした請求項1記載の先行制御機構の
試験方法。
4. The test method for a preceding control mechanism according to claim 1, wherein the instruction sequence is exchanged by exchanging instructions having different instruction types according to the test program.
【請求項5】 前記試験プログラムにより、同一命令タ
イプを集合させることにより、命令列の入替えを行うこ
とを特徴とした請求項1記載の先行制御機構の試験方
法。
5. The test method for a preceding control mechanism according to claim 1, wherein the instruction sequence is exchanged by assembling the same instruction types by the test program.
JP33403892A 1992-12-15 1992-12-15 Test method for advanced control mechanism Expired - Fee Related JP3327601B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33403892A JP3327601B2 (en) 1992-12-15 1992-12-15 Test method for advanced control mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33403892A JP3327601B2 (en) 1992-12-15 1992-12-15 Test method for advanced control mechanism

Publications (2)

Publication Number Publication Date
JPH06187190A JPH06187190A (en) 1994-07-08
JP3327601B2 true JP3327601B2 (en) 2002-09-24

Family

ID=18272814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33403892A Expired - Fee Related JP3327601B2 (en) 1992-12-15 1992-12-15 Test method for advanced control mechanism

Country Status (1)

Country Link
JP (1) JP3327601B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5469106B2 (en) * 2011-02-01 2014-04-09 エヌイーシーコンピュータテクノ株式会社 Computer system, test apparatus, test method, and test program
JP5983362B2 (en) * 2012-11-29 2016-08-31 富士通株式会社 Test method, test program, and test control apparatus

Also Published As

Publication number Publication date
JPH06187190A (en) 1994-07-08

Similar Documents

Publication Publication Date Title
US4498136A (en) Interrupt processor
US5742782A (en) Processing apparatus for executing a plurality of VLIW threads in parallel
US4916652A (en) Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
EP1050808A1 (en) Computer instruction scheduling
JP4996654B2 (en) Processor
JP2000222207A (en) Method and device for changing order of load operation of computer processing system
US8533394B2 (en) Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
JPH07219774A (en) Data processor and exception processing method
JP2001222442A (en) Method for testing pipe line and method for generating pipe line test instruction and its storage medium
JP2005339562A (en) Method and system for checking rotation, shift and code expansion function using modulo function,
JP3556246B2 (en) Apparatus for interrupt handling in a pipeline processor
US7404065B2 (en) Flow optimization and prediction for VSSE memory operations
KR20060029614A (en) Method and data processor with reduced stalling due to operand dependencies
JP3373607B2 (en) Method and apparatus for automatically generating instruction sequence for verifying control mechanism of processor
KR20010096557A (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
KR20090101061A (en) Processor and information processing apparatus
JP3327601B2 (en) Test method for advanced control mechanism
JP2020502669A (en) Vector generation instruction
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
JP3170472B2 (en) Information processing system and method having register remap structure
Kazi et al. Coarse-grained thread pipelining: A speculative parallel execution model for shared-memory multiprocessors
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
TWI756212B (en) Processing vector instructions
GB2578317A (en) Generating a test sequence of code based on a directed sequence of code and randomly selected instructions
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020625

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

Free format text: PAYMENT UNTIL: 20080712

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090712

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100712

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100712

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110712

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110712

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120712

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees