JP3040599B2 - Automatic generation of instruction sequence for pipeline operation verification - Google Patents

Automatic generation of instruction sequence for pipeline operation verification

Info

Publication number
JP3040599B2
JP3040599B2 JP4145812A JP14581292A JP3040599B2 JP 3040599 B2 JP3040599 B2 JP 3040599B2 JP 4145812 A JP4145812 A JP 4145812A JP 14581292 A JP14581292 A JP 14581292A JP 3040599 B2 JP3040599 B2 JP 3040599B2
Authority
JP
Japan
Prior art keywords
pipeline
instruction
instruction sequence
hazard
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
JP4145812A
Other languages
Japanese (ja)
Other versions
JPH05342055A (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 JP4145812A priority Critical patent/JP3040599B2/en
Publication of JPH05342055A publication Critical patent/JPH05342055A/en
Application granted granted Critical
Publication of JP3040599B2 publication Critical patent/JP3040599B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (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 automatically generating an instruction sequence for logic verification of a pipeline operation in a processor operating by a pipeline processing method. The present invention relates to a method for automatically generating a pipeline operation verification verification instruction sequence for verifying whether or not specifications are realized.

【0002】[0002]

【従来の技術】処理速度の高いプロセッサを実現するた
めに、パイプライン処理方式が一般的に採用されてい
る。パイプライン処理方式は、プロセッサの命令に対す
る処理を基本的に1クロックで処理できるいくつかの単
位動作(以下、パイプライン・ステージという)に分割
し、連続する命令の実行をオーバーラップさせて各パイ
プライン・ステージで並列に処理する方式である。
2. Description of the Related Art In order to realize a processor having a high processing speed, a pipeline processing method is generally adopted. The pipeline processing method divides the processing of an instruction of a processor into a number of unit operations (hereinafter, referred to as a pipeline stage) that can basically be processed in one clock, and overlaps the execution of successive instructions so as to overlap each pipe. This is a method of processing in parallel at the line stage.

【0003】図9は本発明の前提となるパイプライン処
理方式を示す図であり、同図において、101ないし1
05はパイプライン処理における各ステージを示し、時
刻1ないし時刻6はその処理の時間経過を示している。
パイプライン処理においては、同図に示すように、時刻
1において、パイプライン・ステージ1で命令1のフェ
ッチが行われ、時刻2において、パイプライン・ステー
ジ2で命令1のデコードが行われるとともに、パイプラ
イン・ステージ1で命令2のフェッチが行われる。
FIG. 9 is a diagram showing a pipeline processing system on which the present invention is based. In FIG.
05 indicates each stage in the pipeline processing, and time 1 to time 6 indicate the lapse of time of the processing.
In the pipeline processing, as shown in the figure, at time 1, instruction 1 is fetched at pipeline stage 1 and at time 2, instruction 1 is decoded at pipeline stage 2 and Instruction 2 is fetched in pipeline stage 1.

【0004】以下、同様にして、時刻5においては、パ
イプライン・ステージ1で命令5のフェッチが行われ、
パイプライン・ステージ2で命令4のデコードが行わ
れ、パイプライン・ステージ3で命令3の実行が行わ
れ、パイプライン・ステージ4で命令2のメモリ・アク
セスが行われ、パイプライン・ステージ5で命令1のラ
イト・バックが行われる。
Similarly, at time 5, instruction 5 is fetched in pipeline stage 1, and
Instruction 4 is decoded in pipeline stage 2, instruction 3 is executed in pipeline stage 3, memory access of instruction 2 is performed in pipeline stage 4, and pipeline stage 5 is executed. Instruction 1 is written back.

【0005】以上のように、パイプライン処理において
は、同一の時刻に異なった命令の単位処理が各パイプラ
イン・ステージで同時に行われる。ところで、上記パイ
プライン処理において、先の命令の実行により、後の命
令の理想的なクロック・サイクルでの実行が妨げられる
状況をハザードと呼んでいる。
As described above, in the pipeline processing, unit processing of different instructions is performed simultaneously in each pipeline stage at the same time. By the way, in the pipeline processing, a situation in which execution of a preceding instruction prevents execution of a subsequent instruction in an ideal clock cycle is called a hazard.

【0006】パイプライン処理のおけるハザードとして
は、次の3種類がある。 構造ハザード ハードウェア資源の衝突により、同時に実行することが
できない命令(パイプライン・ステージ)がある状況を
いう。 データ・ハザード 命令の実行結果が書き込まれないうちに、その結果を必
要とする命令を実行しようとするRAWハザード、ある
場所の必要なデータを読み出さないうちに同じ場所に上
書きする命令を実行しようとするWARハザード、先の
命令の実行結果が書き込まれないうちに後の命令の実行
結果を同じ場所に書き込もうとするWAWハザードがあ
る。 制御ハザード プログラム・カウンタ(PC)の値を変更する命令によ
り、処理中の命令を棄却しなければならない状況をい
う。
There are the following three types of hazards in pipeline processing. Structural hazard A situation in which there are instructions (pipeline stages) that cannot be executed simultaneously due to a collision of hardware resources. Data hazard A RAW hazard that attempts to execute an instruction that requires the result before the execution result of the instruction is written, and attempts to execute an instruction that overwrites the same location before reading the required data at a certain location There is a WAR hazard that attempts to write the execution result of a later instruction to the same location before the execution result of the previous instruction is written. Control hazard A situation in which an instruction that is being processed must be rejected by an instruction that changes the value of a program counter (PC).

【0007】パイプライン制御部分は上記ハザードに対
する例外処理的な機能を多く含んでおり、その検証を行
うためには、ハザードを発生させる全ての種類の命令列
を列挙し、それをプロセッサに与える必要がある。ま
た、ハザードを回避するために特別な機構をハードウェ
アに付加することが、一般的に行われている。このよう
な仕様を実現したプロセッサでのパイプライン動作の論
理検証を行うには、ハザードを発生させる命令列の作成
だけでなく、そのハザード回避機構を動作させるための
命令列を作成する必要がある。
[0007] The pipeline control section includes many functions of exception handling for the above-mentioned hazard, and in order to verify the hazard, it is necessary to enumerate all types of instruction sequences that cause the hazard and give it to the processor. There is. It is common practice to add a special mechanism to hardware to avoid hazards. In order to verify the logic of the pipeline operation in a processor that achieves such specifications, it is necessary to create not only an instruction sequence for generating a hazard but also an instruction sequence for operating the hazard avoidance mechanism. .

【0008】上記したパイプラインの論理検証用の命令
列は、従来、パイプラインの仕様に基づいて人手で作成
することが多く、人手で作成する場合には、作成者は上
記点を考慮しながら、十分な場合を尽くすような命令列
を選ぶ必要がある。
Conventionally, the above-described instruction sequence for logic verification of the pipeline is often manually created based on the specifications of the pipeline. In the case of manually creating the instruction sequence, the creator considers the above points. It is necessary to select an instruction sequence that will do enough.

【0009】[0009]

【発明が解決しようとする課題】プロセッサの論理検証
用プログラムの作成における大きな問題点は、検証が十
分であるかどうかを判定する基準が確立されていないこ
とである。このため、命令列を無作為に発生する場合
は、その数を多くすることで検証の質を保証する必要が
あり、検証のための実行時間が長くなる。
A major problem in creating a logic verification program for a processor is that a standard for determining whether the verification is sufficient has not been established. Therefore, when an instruction sequence is generated at random, it is necessary to guarantee the quality of verification by increasing the number of instructions, and the execution time for verification becomes longer.

【0010】また、人手による命令列の作成は多くの時
間的、人的コストを必要とする。そして、命令列を無作
為に発生する方法や、人手による命令列の作成する方法
の、どちらの場合にも検証が十分であるという保証はな
い。特に、パイプライン動作については、その機構の複
雑さのため、設計誤りが多く発生し、その論理検証が非
常に重要であるにもかかわらず、多くの誤りをカバーす
る論理検証プログラムの作成が困難であるという問題点
があった。
[0010] In addition, manual preparation of an instruction sequence requires a lot of time and human cost. Then, there is no guarantee that verification is sufficient in either case of a method of randomly generating an instruction sequence or a method of manually creating an instruction sequence. In particular, for pipeline operation, design errors often occur due to the complexity of the mechanism, and it is difficult to create a logic verification program that covers many errors, even though the logic verification is very important. There was a problem that it is.

【0011】本発明は上記した従来技術の問題点に鑑み
なされたものであって、パイプラインの仕様を与えるだ
けで、質の高いパイプライン検証用命令列を自動的に、
且つ、網羅的に生成することができるパイプライン動作
検証用命令列の自動生成方法を提供することを目的とす
る。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems of the prior art, and a high-quality pipeline verification instruction sequence is automatically generated simply by giving a pipeline specification.
It is another object of the present invention to provide a method of automatically generating a pipeline operation verification instruction sequence that can be generated comprehensively.

【0012】[0012]

【課題を解決するための手段】図1は本発明の原理図で
ある。本発明の請求項1の発明は、図1(a)に示すよ
うに、パイプライン処理方式で構成されたプロセッサの
パイプライン動作を検証するパイプライン動作検証用命
令列の自動生成方法において、各パイプライン・ステー
ジに共有されるハードウェア資源と、各パイプライン・
ステージにおける共有資源の使用状態と、それらの共有
資源を使用する命令とを記述したパイプライン仕様を与
え、上記パイプライン仕様に基づき、各パイプライン・
ステージに共有される全ての共有資源について、先の命
令の実行により後の命令の実行が妨げられる命令列の全
ての組合せを得ることにより、パイプライン制御部の動
作を検証する命令列を自動的に生成するようにしたもの
である。
FIG. 1 is a diagram illustrating the principle of the present invention. The invention of claim 1 of the present invention, as shown in FIG. 1 (a), the automatic generation method of pipeline operation verification instruction string to verify the pipeline operation processor configured with a pipeline processing method, each The hardware resources shared by the pipeline stages and the
Given a pipeline specification that describes the use status of shared resources in the stage and instructions that use those shared resources, each pipeline and
For all the shared resources shared by the stages, the instruction sequence for verifying the operation of the pipeline control unit is automatically obtained by obtaining all combinations of the instruction sequence in which execution of the previous instruction prevents execution of the subsequent instruction. Is generated.

【0013】本発明の請求項2の発明は、請求項1の発
明において、プロセッサの各命令で使用するハードウェ
ア資源に関するパイプライン仕様に基づきパイプライン
の構造ハザードを引き起こす命令列を自動的に生成する
ようにしたものである。本発明の請求項3の発明は、請
求項1の発明において、パイプライン仕様に基づき、プ
ロセッサの各命令の実行によりデータの正常な読み書き
が妨げられる命令列を自動的に生成することにより、デ
ータ・ハザードを引き起こす命令列を自動的に生成する
ようにしたものである。
According to a second aspect of the present invention, in the first aspect, an instruction sequence causing a pipeline structural hazard is automatically generated based on a pipeline specification relating to hardware resources used in each instruction of the processor. It is something to do. According to a third aspect of the present invention, in the first aspect of the present invention, an instruction sequence in which normal execution of data is prevented from being executed by execution of each instruction of the processor is automatically generated based on a pipeline specification.・ Instructions that cause hazards are automatically generated.

【0014】本発明の請求項4の発明は、請求項1の発
明において、プロセッサの各命令におけるプログラム・
カウンタの内容の変更に関するパイプライン仕様に基づ
き、制御ハザードを引き起こす命令列を自動的に生成す
るようにしたものである。本発明の請求項5の発明は、
図1(b)に示すように、パイプライン処理方式で構成
されたプロセッサのハザード回避機構の動作を検証する
パイプライン動作検証用命令列の自動生成方法におい
て、ハザード回避機構を導入する前のパイプライン仕様
に基づきパイプライン制御部の動作を検証する第1の命
令列を自動的に生成するとともに、ハザード回避機構を
導入後のパイプライン仕様に基づきパイプライン制御部
の動作を検証する第2の命令列を自動的に生成し、第1
の命令列と第2の命令列を比較することにより、ハザー
ド回避機構の動作を検証する命令列を自動的に生成する
ようにしたものである。
According to a fourth aspect of the present invention, in the first aspect of the present invention, a program is stored in each instruction of the processor.
An instruction sequence causing a control hazard is automatically generated based on a pipeline specification relating to a change in the content of a counter. The invention of claim 5 of the present invention provides:
As shown in FIG. 1B, in a method of automatically generating a pipeline operation verification instruction sequence for verifying the operation of a hazard avoiding mechanism of a processor configured by a pipeline processing method, a hazard avoiding mechanism is provided. A first instruction sequence for verifying the operation of the pipeline control unit is automatically generated based on the pipeline specification before the introduction, and the operation of the pipeline control unit is determined based on the pipeline specification after the hazard avoidance mechanism is introduced. A second instruction sequence to be verified is automatically generated, and the first
By comparing the second instruction sequence with the second instruction sequence, an instruction sequence for verifying the operation of the hazard avoiding mechanism is automatically generated.

【0015】[0015]

【作用】プロセッサのパイプライン動作を特徴づける情
報として、次のものがある。 (1)複数のパイプライン・ステージに共有されている
ハードウェア資源。 (2)上記(1)のそれぞれについて、ハードウェア資
源を使用するパイプライン・ステージ。 (3)上記(2)のそれぞれについて、資源の占有、デ
ータの読み出しおよび書込み、プログラム・カウンタ
(PC)を参照しての命令の取り込み(命令フェッチ)
およびプログラム・カウンタ(PC)の変更などの資源
の使用状態。 (4)上記(3)のそれぞれについて、その動作を実行
する命令。
The information characterizing the pipeline operation of the processor is as follows. (1) Hardware resources shared by a plurality of pipeline stages. (2) For each of (1) above, a pipeline stage using hardware resources. (3) For each of the above (2), resource occupation, data reading and writing, instruction fetching with reference to a program counter (PC) (instruction fetch)
And resource usage, such as changes to the program counter (PC). (4) An instruction for executing the operation for each of the above (3).

【0016】上記情報を用いれば、パイプライン・ハザ
ードを引き起こす命令列を全てを列挙することができ
る。本発明の請求項1ないし請求項4の発明は、上記情
報を含む仕様に基づき、各パイプライン・ステージに共
有される全ての共有資源について、先の命令の実行によ
り後の命令の実行が妨げられる命令列の全ての組合せを
得ることにより、パイプライン制御部の動作を検証する
命令列を自動的に生成するようにしたものであり、これ
によって、人手を介することなく、パイプライン動作を
検証するための命令列を網羅的、且つ、自動的に生成す
ることができる。
Using the above information, it is possible to enumerate all the instruction sequences that cause a pipeline hazard. The invention according to claims 1 to 4 of the present invention is based on the specification including the information, and for all the shared resources shared by each pipeline stage, execution of the preceding instruction prevents execution of the subsequent instruction. An instruction sequence for verifying the operation of the pipeline control unit is automatically generated by obtaining all combinations of instruction sequences to be executed, thereby verifying the pipeline operation without human intervention. An instruction sequence can be generated comprehensively and automatically.

【0017】また、請求項5の発明のように、ハザード
回避機構を導入する前のパイプライン仕様に基づきパイ
プライン制御部の動作を検証する第1の命令列を自動的
に生成するとともに、ハザード回避機構を導入後のパイ
プライン仕様に基づきパイプライン制御部の動作を検証
する第2の命令列を自動的に生成し、第1の命令列と第
2の命令列を比較することにより、パイプラインのハザ
ード回避機構の動作を検証する命令列を人手を介するこ
となく生成することが可能となる。
According to a fifth aspect of the present invention, a first instruction sequence for verifying the operation of a pipeline control unit is automatically generated based on a pipeline specification before a hazard avoiding mechanism is introduced, and a hazard hazard is automatically generated. By automatically generating a second instruction sequence for verifying the operation of the pipeline control unit based on the pipeline specification after the introduction of the avoidance mechanism, and comparing the first instruction sequence with the second instruction sequence, It is possible to generate a sequence of instructions for verifying the operation of the line hazard avoidance mechanism without manual intervention.

【0018】[0018]

【実施例】図8はパイプライン動作の仕様の一例を示し
た図であり、同図(a)はハザード回避機構を持たない
パイプライン動作の仕様の一例を示した図であり、同図
(b)はハザード回避機構を持つパイプライン動作の仕
様の一例を示した図である。
FIG. 8 is a diagram showing an example of a specification of a pipeline operation, and FIG. 8A is a diagram showing an example of a specification of a pipeline operation without a hazard avoidance mechanism. FIG. 4B is a diagram illustrating an example of specifications of a pipeline operation having a hazard avoidance mechanism.

【0019】図8(a)に示した仕様記述は次の事項を
意味する。 ハードウェア資源である「レジスタ」はパイプライ
ン・ステージ2で読み出しが行われ、パイプライン・ス
テージ5で書き込みが行われる。 上記において、パイプライン・ステージ2におけ
るレジスタの読み出し中レジスタは占有され、パイプラ
イン・ステージ5における他の命令による書き込みを行
うことは出来ない。同様に、パイプライン・ステージ5
におけるレジスタの書き込み中レジスタは占有され、パ
イプライン・ステージ2における他の命令による読み出
しを行うことは出来ない。 パイプライン・ステージ2におけるレジスタの読み
出しに関係する命令は「ALU」関係の命令(例えば、
加算命令「ADD」など)と、「Store」命令であ
る。また、パイプライン・ステージ5におけるレジスタ
の書き込みに関係する命令は「ALU」関係の命令と、
「Load」命令である。 ハードウェア資源である「プログラム・カウンタ
(以下、PCという)」はパイプライン・ステージ1で
命令フェッチが行われ、パイプライン・ステージ4でP
Cの内容の変更が行われる。 上記において、パイプライン・ステージ1におけ
る命令フェッチ中、PCは占有され、パイプライン・ス
テージ4における他の命令による書き込みを行うことは
出来ない。同様に、パイプライン・ステージ4における
PCの内容の変更中PCは占有され、パイプライン・ス
テージ1における他の命令による命令フェッチを行うこ
とは出来ない。 パイプライン・ステージ1におけるPCの命令フェ
ッチに関係する命令は全ての命令であり、パイプライン
・ステージ4におけるPCの内容の変更に関係する命令
は「Branch」命令である。
The specification description shown in FIG. 8A means the following items. “Registers”, which are hardware resources, are read in pipeline stage 2 and written in pipeline stage 5. In the above, the register is occupied during reading of the register in the pipeline stage 2 and writing cannot be performed by another instruction in the pipeline stage 5. Similarly, pipeline stage 5
The register is occupied during the writing of the register in, and reading by another instruction in the pipeline stage 2 cannot be performed. Instructions related to reading registers in pipeline stage 2 are “ALU” related instructions (eg,
An addition instruction “ADD”) and a “Store” instruction. Instructions related to register writing in pipeline stage 5 include “ALU” -related instructions,
This is a “Load” instruction. An instruction fetch is performed in a pipeline stage 1 for a “program counter (hereinafter, referred to as a PC)” which is a hardware resource.
The contents of C are changed. In the above, the PC is occupied during the instruction fetch in the pipeline stage 1 and cannot be written by another instruction in the pipeline stage 4. Similarly, the PC is occupied during the change of the contents of the PC in the pipeline stage 4, and the instruction fetch by another instruction in the pipeline stage 1 cannot be performed. The instructions related to the instruction fetch of the PC in the pipeline stage 1 are all instructions, and the instructions related to the change of the contents of the PC in the pipeline stage 4 are “Branch” instructions.

【0020】図8(b)に示した仕様記述は同図(a)
において、ハザード回避機構により、上記のレジスタ
の「占有」の条件を回避したものである。すなわち、パ
イプライン・ステージ2におけるレジスタの読み出し中
であっても、パイプライン・ステージ5において、他の
命令による書き込みを行うことができ、また、同様に、
パイプライン・ステージ5におけるレジスタの書き込み
中であっても、パイプライン・ステージ2において、他
の命令による読み出しを行うことができるようにしたも
のであり、その他の仕様は同図(a)と同じである。
The specification description shown in FIG.
In the above, the condition of "occupation" of the register is avoided by the hazard avoiding mechanism. In other words, even while the register is being read in the pipeline stage 2, writing can be performed by another instruction in the pipeline stage 5, and similarly,
Even when a register is being written in the pipeline stage 5, reading by another instruction can be performed in the pipeline stage 2, and other specifications are the same as those in FIG. It is.

【0021】図2ないし図5は本発明の1実施例を示す
フローチャートであり、同図により、図8(a)に示し
た仕様記述の例を用いて本発明の実施例を説明する。図
2において、ステップS21において、共有資源Rを選
択する。図8(a)の例においては、共有資源Rは「レ
ジスタ」、「PC」であるからいずれかの資源が選択さ
れる。
FIGS. 2 to 5 are flow charts showing an embodiment of the present invention. The embodiment of the present invention will be described with reference to FIG. 8A using an example of the specification description shown in FIG. In FIG. 2, in step S21, the shared resource R is selected. In the example of FIG. 8A, since the shared resource R is “register” or “PC”, any one of the resources is selected.

【0022】ステップS22において、共有資源Rを使
用する二つのパイプライン・ステージSi ,Sj (i<
j)を選択する。例えば、ステップS21において、図
8(a)の「レジスタ」を選択した場合、ステップS2
2においては、上記ステージSi としてはSi =2が、
また、ステージSj としてはSj =5が選択されること
となる。
In step S22, two pipeline stages Si and Sj (i <
Select j). For example, if “register” in FIG. 8A is selected in step S21, step S2
In the stage 2, Si = 2 as the stage Si,
Also, Sj = 5 is selected as the stage Sj.

【0023】また、例えば、ステップS21において、
図8(a)の「PC」を選択した場合、ステップS22
においては、上記ステージSi としてはSi =1が、ま
た、ステージSj としてはSj =4が選択されることと
なる。次いで、ステップS23において、パイプライン
・ステージSj ,Si 間で共有資源Rについて構造ハザ
ードを起こす命令列を生成し出力する。
For example, in step S21,
If “PC” in FIG. 8A is selected, step S22
In (2), Si = 1 is selected as the stage Si, and Sj = 4 is selected as the stage Sj. Next, in step S23, an instruction sequence that causes a structural hazard for the shared resource R between the pipeline stages Sj and Si is generated and output.

【0024】図3はステップ23における処理内容を示
すフローチャートであり、同図によりステップ23にお
ける処理について説明する。ステップS31において、
パイプライン・ステージSj ,Si が共有資源Rを占有
するか否かが判別される。図8(a)の例においては、
レジスタ、PC共に資源を占有するので、ステップS3
2に行く。
FIG. 3 is a flowchart showing the contents of the processing in step 23. The processing in step 23 will be described with reference to FIG. In step S31,
It is determined whether or not the pipeline stages Sj and Si occupy the shared resource R. In the example of FIG. 8A,
Since both the register and the PC occupy resources, step S3
Go to 2.

【0025】また、ステップS31において共有資源を
占有しない場合には、図2のフローチャートに戻り、ス
テップS24に行く。ステップS32において、パイプ
ライン・ステージSi で共有資源Rを占有する命令Aと
パイプライン・ステージSj で共有資源Rを占有する命
令Bを選択する。図8(a)の例においては、共有資源
がレジスタの場合には、ステップS32において、例え
ば、命令Aとしてパイプライン・ステージ2でレジスタ
を占有する命令である「Store」命令が選択され、
命令Bとしてパイプライン・ステージ5でレジスタを占
有する命令である「Load」命令が選択される。
If the shared resource is not occupied in step S31, the process returns to the flowchart of FIG. 2 and goes to step S24. In step S32, an instruction A occupying the shared resource R at the pipeline stage Si and an instruction B occupying the shared resource R at the pipeline stage Sj are selected. In the example of FIG. 8A, if the shared resource is a register, in step S32, for example, a "Store" instruction that occupies the register in the pipeline stage 2 is selected as the instruction A,
As the instruction B, a “Load” instruction that occupies a register in the pipeline stage 5 is selected.

【0026】ステップS33において、命令Aの(j−
i)命令前に命令Bを実行する命令列を出力する。図8
(a)の例において、上記のように共有資源がレジスタ
の場合には、命令A、例えば「Store」命令の(5
−2)命令前すなわち、3命令前に命令B、例えば、
「Load」命令を実行する命令列を出力する。ステッ
プS34において、命令Aと命令Bの全ての組み合わせ
について処理したか否かを判別し、処理していない場合
にはステップS32に戻り以上の処理を繰り返し、全て
の組み合わせについて処理が終了している場合には、図
2のフローチャートに戻り、ステップS24に行く。
In step S33, (j-
i) Output an instruction sequence for executing the instruction B before the instruction. FIG.
In the example of (a), if the shared resource is a register as described above, the instruction A, for example, (5) of the “Store” instruction
-2) Before the instruction, ie, three instructions before the instruction B, for example,
An instruction sequence for executing the “Load” instruction is output. In step S34, it is determined whether or not all the combinations of the instruction A and the instruction B have been processed. If not, the process returns to step S32 and the above processing is repeated, and the processing has been completed for all the combinations. In this case, the process returns to the flowchart of FIG. 2 and proceeds to step S24.

【0027】ステップS24において、パイプライン・
ステージSj ,Si 間で共有資源Rについてデータ・ハ
ザードを起こす命令列を生成し出力する。図4はステッ
プ24における処理内容を示すフローチャートであり、
同図によりステップ24における処理について説明す
る。ステップS41において、パイプライン・ステージ
Si ,Sj が共有資源Rのデータの読み書きを行うか否
か判別する。
In step S24, the pipeline
An instruction sequence that causes a data hazard for the shared resource R between the stages Sj and Si is generated and output. FIG. 4 is a flowchart showing the processing contents in step 24,
The process in step 24 will be described with reference to FIG. In step S41, it is determined whether or not the pipeline stages Si and Sj read and write data of the shared resource R.

【0028】パイプライン・ステージSi ,Sj が共有
資源Rのデータの読み書きを行なわない場合には、図2
のフローチャートに戻り、ステップS25に行く。ま
た、パイプライン・ステージSi ,Sj が共有資源Rの
データの読み書きを行う場合には、ステップS42に行
き、パイプライン・ステージSi で共有資源Rのデータ
を読み書きする命令Aとパイプライン・ステージSj で
共有資源Rのデータを読み書きする命令Bを選択する。
In the case where the pipeline stages Si and Sj do not read or write data of the shared resource R, FIG.
Returning to the flowchart of, the process goes to step S25. When the pipeline stages Si and Sj read and write the data of the shared resource R, the procedure goes to step S42, where the instruction A for reading and writing the data of the shared resource R and the pipeline stage Sj at the pipeline stage Si. Select an instruction B for reading and writing data of the shared resource R.

【0029】図8(a)の例においては、共有資源がレ
ジスタの場合には、ステップS42において、例えば、
命令Aとしてパイプライン・ステージ2で「Stor
e」命令が選択され、命令Bとしてパイプライン・ステ
ージ5で「Load」命令が選択される。次いで、ステ
ップS43において、命令A、命令Bの少なくとも一方
が書き込みか否かが判別され、命令A、命令Bの少なく
とも一方が書き込みでない場合には、ステップS45に
行く。
In the example of FIG. 8A, if the shared resource is a register, at step S42, for example,
In the pipeline stage 2 as instruction A, "Stor
The “e” instruction is selected, and the “Load” instruction is selected in pipeline stage 5 as instruction B. Next, in step S43, it is determined whether at least one of the instructions A and B is a write. If at least one of the instructions A and B is not a write, the process proceeds to step S45.

【0030】一方が書き込みの場合にはステップS44
に行き、命令Aの1〜(j−i−1)命令前に命令Bを
実行する命令列をそれぞれ出力する。例えば、ステップ
S42において、上記したように、命令Aとしてパイプ
ライン・ステージ2で「Store」命令が選択され、
命令Bとしてパイプライン・ステージ5で「Load」
命令が選択された場合には、ステップS44に行き、
「Store」命令の1〜(5−2−1)命令前、すな
わち、「Store」命令の1命令前、2命令前に「L
oad」命令を実行する命令列を出力する。
If one is a write, step S44
And outputs an instruction sequence for executing the instruction B before the instructions 1 to (ji-1) of the instruction A. For example, in step S42, as described above, the “Store” instruction is selected as the instruction A in the pipeline stage 2;
"Load" in pipeline stage 5 as instruction B
If an instruction is selected, go to step S44,
1 to (5-2-1) instructions before the "Store" instruction, that is, "L" one instruction before and two instructions before the "Store" instruction.
An instruction sequence for executing the “oad” instruction is output.

【0031】以上のように命令列を出力したのち、ステ
ップS45において、全ての命令列の組合せについて処
理したか否かを判別して、全ての組合せについて処理し
ていない場合にはステップS42に戻り、上記処理を繰
り返す。そして、全ての組合せについて処理した場合に
は、図2のフローチャートに戻り、ステップS25に行
く。
After outputting the instruction sequence as described above, it is determined in step S45 whether or not all combinations of instruction sequences have been processed. If all combinations have not been processed, the process returns to step S42. And the above processing is repeated. When all the combinations have been processed, the process returns to the flowchart of FIG. 2 and proceeds to step S25.

【0032】図2のステップS25において、共有資源
Rがプログラム・カウンタ(PC)か否かを判断する。
共有資源Rがプログラム・カウンタ(PC)でない場合
には、ステップS27に行く。また、共有資源Rがプロ
グラム・カウンタ(PC)の場合には、ステップS26
に行き、パイプライン・ステージSi ,Sj 間で制御ハ
ザードを起こす命令列を出力する。
In step S25 of FIG. 2, it is determined whether or not the shared resource R is a program counter (PC).
If the shared resource R is not a program counter (PC), the procedure goes to step S27. If the shared resource R is a program counter (PC), step S26
And outputs an instruction sequence causing a control hazard between the pipeline stages Si and Sj.

【0033】図5はステップ26における処理内容を示
すフローチャートであり、同図によりステップ26にお
ける処理について説明する。ステップS51において、
パイプライン・ステージSi で命令フェッチを行い、パ
イプライン・ステージSj でPCを変更するか否かを判
断し、そうでない場合には、図2のフローチャートに戻
り、ステップS27へ行く。
FIG. 5 is a flowchart showing the contents of the processing in step 26, and the processing in step 26 will be described with reference to FIG. In step S51,
Instruction fetch is performed at the pipeline stage Si, and it is determined at the pipeline stage Sj whether to change the PC. If not, the process returns to the flowchart of FIG. 2 and proceeds to step S27.

【0034】パイプライン・ステージSi で命令フェッ
チを行い、パイプライン・ステージSj でPCを変更す
る場合には、ステップS52に行き、Sj でPCを変更
する命令Bを選択する。図8(a)においては、「Br
anch」命令がパイプライン・ステージ4でPCを変
更するので、命令Bとして命令「Branch」が選択
される。
When fetching an instruction at the pipeline stage Si and changing the PC at the pipeline stage Sj, the procedure goes to step S52, where an instruction B for changing the PC is selected at Sj. In FIG. 8A, “Br
The instruction "Branch" is selected as instruction B because the "anch" instruction changes the PC in pipeline stage 4.

【0035】ステップS53のおいて、任意の命令の1
〜(j−i−1)命令前に命令Bを実行する命令列を出
力する。図8(a)においては、パイプライン・ステー
ジ1で命令フェッチが行われ、パイプライン・ステージ
4でPCが変更されるので、任意の命令の1〜(4−1
−1)命令前、すなわち、任意の命令の1命令前および
2命令前に「Branch」命令を実行する命令列が出
力される。
In step S53, one of the arbitrary instructions
An instruction sequence for executing the instruction B is output before the instructions (.about. (Ji-1)). In FIG. 8A, an instruction is fetched in the pipeline stage 1 and the PC is changed in the pipeline stage 4, so that arbitrary instructions 1 to (4-1)
-1) An instruction sequence for executing the “Branch” instruction is output before the instruction, that is, one instruction before and two instructions before any instruction.

【0036】ステップS54において、命令Bについて
の全ての場合について処理したか否かが判別され、全て
の場合について処理していない場合には、ステップS5
2に戻り上記処理を繰り返す。また、全ての場合につい
て処理した場合には、図2のフローチャートに戻り、ス
テップS27に行く。
In step S54, it is determined whether or not processing has been performed for all cases of the instruction B. If processing has not been performed for all cases, the process proceeds to step S5.
2 and the above process is repeated. If all cases have been processed, the process returns to the flowchart of FIG. 2 and proceeds to step S27.

【0037】図2のステップS27において、上記処理
をパイプライン・ステージSi ,Sj の全ての組合せに
ついて処理したか否かを判別し、処理していない場合に
はステップS22に戻り、上記処理を繰り返す。また、
上記処理をパイプライン・ステージSi ,Sj の全ての
組合せについて処理した場合には、ステップS28に行
き、全ての共有資源について上記処理をしたか否かを判
別する。
In step S27 of FIG. 2, it is determined whether or not the above processing has been performed for all combinations of the pipeline stages Si and Sj. If not, the flow returns to step S22 to repeat the above processing. . Also,
If the above processing has been performed for all combinations of the pipeline stages Si and Sj, the process proceeds to step S28, and it is determined whether the above processing has been performed for all shared resources.

【0038】そして、全ての共有資源について処理をし
ていない場合には、ステップS21に戻り、上記処理を
繰り返し、全ての共有資源について処理を終わった場合
には終了する。図6は図8(a)の仕様記述のパイプラ
イン処理において、上記処理手順により生成したレジス
タの構造ハザード(同図(a))、レジスタのデータハ
ザード(同図(b))、PCの構造ハザード(同図
(c))、制御ハザード(同図(d))の検証のための
命令列を示す図であり、同図において、「ALU」は前
述した、例えば、命令「ADD」などの演算関係の命令
を意味し、「−−−」はパイプライン動作を乱さない適
当な命令を意味する。
If the processing has not been performed for all the shared resources, the process returns to step S21, and the above processing is repeated. When the processing has been completed for all the shared resources, the processing ends. FIG. 6 shows a register structure hazard (FIG. 8A), a register data hazard (FIG. 8B), and a PC structure generated in the pipeline processing of the specification description of FIG. It is a figure which shows the instruction sequence for verification of a hazard ((c) of the same figure) and a control hazard ((d) of the same figure), In the same figure, "ALU" is the above-mentioned, for example, the instruction "ADD" etc. This means an operation-related instruction, and "-" means an appropriate instruction that does not disturb the pipeline operation.

【0039】同図に示すように、図8(a)の仕様記述
のパイプライン処理の検証のための命令列として、レジ
スタの構造ハザードについてはA1ないしA4の命令列
が生成され、レジスタのデータハザードについてはB1
ないしB8の命令列が生成され、PCの構造ハザードに
ついてはC1の命令列が生成され、制御ハザードにつて
はD1,D2の命令列が生成される。
As shown in the drawing, as the instruction sequence for verifying the pipeline processing of the specification description of FIG. 8A, an instruction sequence of A1 to A4 is generated for the register structural hazard, and the data of the register is stored. It is B1 about hazard
The instruction sequence of B8 is generated, the instruction sequence of C1 is generated for the PC structural hazard, and the instruction sequences of D1 and D2 are generated for the control hazard.

【0040】図7の(a),(b),(c)は上記した
手順で生成した、図8(b)の「レジスタの読み出しと
書き込みを同時に行うことができる」仕様記述のパイプ
ライン処理の検証のための命令列を示した図であり、同
図の「ALU」、「−−−」は図6と同様、それぞれ、
演算関係の命令、パイプライン動作を乱さない適当な命
令を意味する。
FIGS. 7A, 7B, and 7C show the pipeline processing of the specification described in FIG. 8B, "the register can be read and written simultaneously", generated by the above-described procedure. FIG. 7 is a diagram showing an instruction sequence for verifying the ALU. In FIG. 6, “ALU” and “−−−” are the same as in FIG.
Operation-related instructions, which are appropriate instructions that do not disturb the pipeline operation.

【0041】図7の(a),(b),(c)から明らか
なように、図8(b)の仕様記述のパイプライン処理に
おいては、ハザード回避機構により、レジスタの「占
有」の条件を回避しているため、レジスタの構造ハザー
ドの検証のための命令列は生成されず、図7の(a),
(b),(c)のレジスタのデータハザードについての
命令列B11〜B18、PCの構造ハザードについての
命令列C11、制御ハザードについての命令列D11,
D12が生成される。
As is clear from FIGS. 7A, 7B and 7C, in the pipeline processing of the specification description in FIG. 8B, the condition of "occupancy" of the register is determined by the hazard avoiding mechanism. Therefore, an instruction sequence for verifying the structural hazard of the register is not generated, and FIG.
(B) and (C), a sequence of instructions B11 to B18 for the data hazard of the register, a sequence of instructions C11 for the structural hazard of the PC, a sequence of instructions D11 for the control hazard,
D12 is generated.

【0042】図7の(d)は図8(b)の仕様記述のパ
イプライン処理における「レジスタの読み出しと書き込
みを同時に行うことができる」ようにしたハザード回避
機構を動作させる命令列E1〜E4を示す図であり、同
図の「ALU」、「−−−」は図6と同様、それぞれ、
演算関係の命令、パイプライン動作を乱さない適当な命
令を意味する。
FIG. 7D shows a sequence of instructions E1 to E4 for operating the hazard avoiding mechanism which makes it possible to simultaneously read and write registers in the pipeline processing of the specification description of FIG. 8B. FIG. 6 shows “ALU” and “−−−” as in FIG.
Operation-related instructions, which are appropriate instructions that do not disturb the pipeline operation.

【0043】図7の(d)の命令列は図6の命令列と、
図7(a),(b),(c)の命令列の差分より求める
ことができ、図6,図7から明らかなように、図7
(d)のハザード回避機構を動作させる命令列は図6
(a)レジスタの構造ハザードを検証する命令列と等し
くなっている。
The instruction sequence of FIG. 7D is the same as the instruction sequence of FIG.
It can be obtained from the difference between the instruction sequences in FIGS. 7A, 7B, and 7C. As is apparent from FIGS.
The instruction sequence for operating the hazard avoiding mechanism of (d) is shown in FIG.
(A) It is equal to the instruction sequence for verifying the structural hazard of the register.

【0044】[0044]

【発明の効果】以上説明したことから明らかなように、
本発明によれば、パイプライン仕様に基づきパイプライ
ン制御部の動作を検証する命令列を自動的に生成するこ
とができるので、パイプライン動作を網羅的に検証する
ことが可能な質の高い論理検証用プログラムを自動的に
生成することができ、その機構の複雑さのために設計誤
りが多く発生し、論理検証が重要であるにもかかわら
ず、多くの誤り可能性をカバーする論理検証プログラム
の作成が困難であったパイプライン動作の論理検証用プ
ログラムを人手を要することなく自動的に作成すること
ができる。
As is apparent from the above description,
According to the present invention, it is possible to automatically generate an instruction sequence for verifying the operation of the pipeline control unit based on the pipeline specification, so that a high-quality logic capable of comprehensively verifying the pipeline operation is provided. A logic verification program that can automatically generate a verification program, generates many design errors due to the complexity of its mechanism, and covers many possible errors despite the importance of logic verification Can be automatically created without the need for manual operations.

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

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

【図2】本発明の実施例を示すフローチャート(その
1)である。
FIG. 2 is a flowchart (part 1) illustrating an embodiment of the present invention.

【図3】本発明の実施例を示すフローチャート(その
2)である。
FIG. 3 is a flowchart (part 2) showing the embodiment of the present invention.

【図4】本発明の実施例を示すフローチャート(その
3)である。
FIG. 4 is a flowchart (part 3) showing the embodiment of the present invention.

【図5】本発明の実施例を示すフローチャート(その
4)である。
FIG. 5 is a flowchart (part 4) showing the embodiment of the present invention.

【図6】本発明の実施例により生成された命令列の一例
を示す図である。
FIG. 6 is a diagram showing an example of an instruction sequence generated according to the embodiment of the present invention.

【図7】本発明の実施例により生成された命令列の一例
を示す図(続き)である。
FIG. 7 is a diagram (continued) showing an example of an instruction sequence generated by the embodiment of the present invention.

【図8】パイプライン仕様の一例を示す図である。FIG. 8 is a diagram illustrating an example of a pipeline specification.

【図9】本発明の前提となるパイプライン処理の一例を
示す図である。
FIG. 9 is a diagram showing an example of a pipeline process which is a premise of the present invention.

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

101,102,103,104,105 パイプラ
イン・ステージ
101, 102, 103, 104, 105 Pipeline stage

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

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 パイプライン処理方式で構成されたプロ
セッサのパイプライン動作を検証するパイプライン動作
検証用命令列の自動生成方法であって、 各パイプライン・ステージに共有されるハードウェア資
源と、各パイプライン・ステージにおける共有資源の使
用状態と、それらの共有資源を使用する命令とを記述し
たパイプライン仕様を与え、 上記パイプライン仕様に基づき、各パイプライン・ステ
ージに共有される全ての共有資源について、先の命令の
実行により後の命令の実行が妨げられる命令列の全ての
組合せを得ることにより、 パイプライン制御部の動作を検証する命令列を自動的に
生成することを特徴とするパイプライン動作検証用命令
列の自動生成方法
1. A method of automatically generating a pipeline operation verification instruction sequence for verifying a pipeline operation of a processor configured by a pipeline processing method, comprising: a hardware resource shared by each pipeline stage; Given a pipeline specification that describes the usage status of shared resources in each pipeline stage and instructions that use those shared resources, all shared resources shared by each pipeline stage are based on the above pipeline specifications. For a resource, an instruction sequence for verifying the operation of the pipeline control unit is automatically generated by obtaining all combinations of instruction sequences in which execution of a previous instruction prevents execution of a later instruction. Automatic generation method of instruction sequence for pipeline operation verification.
【請求項2】 プロセッサの各命令で使用するハードウ
ェア資源に関するパイプライン仕様に基づきパイプライ
ンの構造ハザードを引き起こす命令列を自動的に生成す
ることを特徴とする請求項1のパイプライン動作検証用
命令列の自動生成方法
2. A pipeline operation verification system according to claim 1, wherein an instruction sequence causing a structural hazard of the pipeline is automatically generated based on a pipeline specification regarding hardware resources used in each instruction of the processor. automatic generation method of instruction sequence.
【請求項3】 パイプライン仕様に基づき、プロセッサ
の各命令の実行によりデータの正常な読み書きが妨げら
れる命令列を自動的に生成することにより、データ・ハ
ザードを引き起こす命令列を自動的に生成することを特
徴とする請求項1のパイプライン動作検証用命令列の自
動生成方法
3. An instruction sequence causing a data hazard is automatically generated based on a pipeline specification by automatically generating an instruction sequence in which execution of each instruction of a processor prevents normal reading and writing of data. 2. The method for automatically generating a pipeline operation verification instruction sequence according to claim 1, wherein:
【請求項4】 プロセッサの各命令におけるプログラム
・カウンタの内容の変更に関するパイプライン仕様に基
づき、制御ハザードを引き起こす命令列を自動的に生成
することを特徴とする請求項1のパイプライン動作検証
用命令列の自動生成方法
4. The pipeline operation verification system according to claim 1, wherein an instruction sequence causing a control hazard is automatically generated based on a pipeline specification relating to a change in the contents of a program counter in each instruction of the processor. automatic generation method of instruction sequence.
【請求項5】 パイプライン処理方法で構成されたプロ
セッサのハザード回避機構の動作を検証するパイプライ
ン動作検証用命令列の自動生成方法において、 ハザード回避機構を導入する前のパイプライン仕様に基
づきパイプライン制御部の動作を検証する第1の命令列
を自動的に生成するとともに、 ハザード回避機構を導入後のパイプライン仕様に基づき
パイプライン制御部の動作を検証する第2の命令列を自
動的に生成し、 第1の命令列と第2の命令列を比較することにより、ハ
ザード回避機構の動作を検証する命令列を自動的に生成
することを特徴とするパイプライン動作検証用命令列の
自動生成方法
5. A pipeline processing method pipeline operation automatic generation method of the verification instruction string to verify the operation of the processor configured hazard avoidance mechanism, the pipe on the basis of pipeline specifications prior to introduction of the hazard avoidance mechanism A first instruction sequence for verifying the operation of the line control unit is automatically generated, and a second instruction sequence for verifying the operation of the pipeline control unit is automatically generated based on the pipeline specification after the introduction of the hazard avoidance mechanism. And an instruction sequence for verifying the operation of the hazard avoidance mechanism is automatically generated by comparing the first instruction sequence with the second instruction sequence. Automatic generation method .
JP4145812A 1992-06-05 1992-06-05 Automatic generation of instruction sequence for pipeline operation verification Expired - Fee Related JP3040599B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4145812A JP3040599B2 (en) 1992-06-05 1992-06-05 Automatic generation of instruction sequence for pipeline operation verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4145812A JP3040599B2 (en) 1992-06-05 1992-06-05 Automatic generation of instruction sequence for pipeline operation verification

Publications (2)

Publication Number Publication Date
JPH05342055A JPH05342055A (en) 1993-12-24
JP3040599B2 true JP3040599B2 (en) 2000-05-15

Family

ID=15393715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4145812A Expired - Fee Related JP3040599B2 (en) 1992-06-05 1992-06-05 Automatic generation of instruction sequence for pipeline operation verification

Country Status (1)

Country Link
JP (1) JP3040599B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5983362B2 (en) * 2012-11-29 2016-08-31 富士通株式会社 Test method, test program, and test control apparatus
CN112445528B (en) * 2019-08-29 2022-09-13 无锡江南计算技术研究所 Result self-checking instruction sequence filling method based on pipeline constraint

Also Published As

Publication number Publication date
JPH05342055A (en) 1993-12-24

Similar Documents

Publication Publication Date Title
US4187539A (en) Pipelined data processing system with centralized microprogram control
JPS6239780B2 (en)
JP3338051B2 (en) Condition detection in asynchronous pipelines
JPH0346850B2 (en)
JP3237858B2 (en) Arithmetic unit
US4907147A (en) Pipelined data processing system with register indirect addressing
EP0223150B1 (en) Information processing apparatus
JPH05342084A (en) Device and method for storing data
JP3040599B2 (en) Automatic generation of instruction sequence for pipeline operation verification
JP3707729B2 (en) Address generation interlock detection method and system
JPH03271829A (en) Information processor
JPS58107977A (en) Accessing system for storage device
US11036503B2 (en) Predicate indicator generation for vector processing operations
JP3459495B2 (en) Microprocessor
JP2812610B2 (en) Pipeline control method
JP3451932B2 (en) Information processing apparatus and pipeline processing method
JPH0719221B2 (en) Memory control method
JP2626549B2 (en) Horizontal microprogram optimization method and apparatus
JPH0743668B2 (en) Access control device
JPS61288243A (en) Processing system for compare and swap instruction
JP2671161B2 (en) Register interference check method
JP2721364B2 (en) Diagram editing device
JP2689894B2 (en) Micro program control type information processing device
JPH0667879A (en) Pipeline processing computer
JPS6250855B2 (en)

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

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

Free format text: PAYMENT UNTIL: 20080303

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090303

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100303

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees