WO1989004518A1 - Register interference preventing method - Google Patents

Register interference preventing method Download PDF

Info

Publication number
WO1989004518A1
WO1989004518A1 PCT/JP1988/001111 JP8801111W WO8904518A1 WO 1989004518 A1 WO1989004518 A1 WO 1989004518A1 JP 8801111 W JP8801111 W JP 8801111W WO 8904518 A1 WO8904518 A1 WO 8904518A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution code
register interference
register
code
execution
Prior art date
Application number
PCT/JP1988/001111
Other languages
French (fr)
Japanese (ja)
Inventor
Tadashi Okamoto
Yuji Tanikawa
Yasuhiro Nakakura
Akiyoshi Wakatani
Original Assignee
Matsushita Electric Industrial Co., 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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to KR1019890701233A priority Critical patent/KR920003495B1/en
Publication of WO1989004518A1 publication Critical patent/WO1989004518A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Definitions

  • the present invention relates to a pipeline type processor
  • the pipeline method is used as a general method for speeding up.
  • the pipeline system As an example of the pipeline system, a specific example will be described below.
  • Fig. 1 shows a schematic diagram of the configuration of a five-stage pipeline processor.
  • Processor 10 is the execution code footage stage (IF) 1, Register contents reading and decoding stage (RD) 2, first operation stage (ALU 1.) 3, second operation stage (ALU 2) 4, and register Write stage (WR) to write 5 stages, each of which is controlled by control lines 101 to 104. ing.
  • executing such an N0P instruction means inserting useless execution code, increasing the amount of execution code and fetching cycles. Increase. Therefore, the path traffic to the main memory 7 due to the instruction footing to the execution code 8 becomes congested, especially when the external memory constituting the main memory 7 is not fast. In addition, when the capacity is small even at high speed, the processing speed is reduced, which is an important problem.
  • the present invention has been made in view of such a problem, and has as its object to propose a method for preventing register interference without increasing the amount of execution code.
  • the above-mentioned object is achieved by a pipelined system consisting of at least an execution code offset X-execution, execution code decoding, and multiple operation stages involving register interference.
  • a specific field indicating register interference in the plurality of operation stages is provided on the execution code to be executed, and the execution code code is provided.
  • the stage refers to the above-mentioned register interference field, and according to the pattern, the internal code corresponding to the execution code corresponding to the plurality of operation stages described above. Issue one or more internal operations codes following the internal code corresponding to the execution code or corresponding execution code This is a method for preventing register interference. With this configuration, register interference is prevented without increasing the amount of execution code, and efficient and compact execution code can be created. It is. ⁇ -Brief description of the drawing
  • FIG. 1 is a schematic diagram of a conventional five-stage pipeline processor.
  • Figs. 2 and 3 are timing charts of the operation of the same processor.
  • FIG. 4 is a schematic diagram of a five-stage pi-pipe opening sensor showing an embodiment of the present invention, and
  • FIG. 5 is an operation timing chart of the same processor.
  • FIG. 1 An example of the method for preventing register interference according to the present invention is shown in FIG.
  • the execution card '48 having the register interference field 41c is transmitted to the processor 40 through the line 6.
  • the fetch stage 4 1 (first pipeline) that executes the execution code pusher receives and stores it.
  • the stage for reading and decoding the contents of the register that decodes this execution code (RD) 4 2 (2nd pipeline) is executed from the internal execution code line 401. Receive the code and refer to the 1-bit 'register interference field 4 ⁇ ⁇ c. If there is no register interference, the relevant internal execution code is used, and if there is register interference, the relevant internal execution code and the next cycle register are used. An internal operation code to prevent star interference is generated, and the first execution stage (ALU 1) 4 3 (No. 1) is generated by the internal execution code line 402. 3 Pipeline) After that, convey the execution contents. This 1st operation stage (ALU 1) 43.
  • the write stages (WR) 45 (fifth pipeline) to the registers are control signals transmitted from the internal execution code lines 402, 400, and 404 ', respectively.
  • the calculation is executed sequentially by.
  • the difference from the conventional method is that the no operation operation to prevent register interference is performed by reading the register contents and decoding stage.
  • the pixel ⁇ - age 41 (the first pipeline) ) Refer to the register interference field 4.1c of the execution code of 0P1 transmitted by the internal execution code line 401 and 0P1 and 0P. Judge that P2 is causing register interference.
  • the reading and decoding of the contents of the register of the next cycle and the decoding stage (RD) 42 (second pipeline) are performed by the no- Insert a click (N0P).
  • N0P no- Insert a click
  • the next cycle the first pipeline is in the ⁇ unit state, and the other pipelines execute the instruction.
  • a processor of the present invention using the register interference prevention method according to the present invention can execute an execution code at a stage where the execution code is decoded. Refer to the register interference field and insert the NOP execution code into the normal execution code inside the processor according to the presence or absence of register interference. Therefore, even in a program in which register interference has occurred, N0P as in the conventional example is not included in the execution code without increasing the code amount. Prevent register interference.
  • the fact that the code amount does not increase means that the number of times the execution code is footed from the main memory is reduced. This also reduces the need for fetching both the execution code and the data to be executed. Further, a case where the present invention is used in connection with a processor in which instruction cache memory is on-chip is described below.
  • the size of the cache memory and the size of the execution code in a loop are particularly important. In other words, if the looped execution code is smaller than the cache capacity, the cache memory will hit continuously and the processor will Process De Isamu at high speed. However, if an N0P instruction is inserted to prevent register interference as shown in the conventional example, the amount of execution code increases, and the execution code that is in a loop becomes key. If the capacity of the cache memory is exceeded, there may be no execution code in the cache memory. (Hereinafter, the absence of an execution code is referred to as a mission.) This is a factor that degrades the performance of the processor. In other words, reducing the amount of execution code for a processor with on-chip cache memory is crucial to maintaining performance.
  • the method for preventing register interference according to the present invention is applied to a processor of a pipeline type having an on-chip cache memory.
  • a processor of a pipeline type having an on-chip cache memory As a result, it is possible to prevent an increase in the code amount due to register interference, and thus, it is possible to prevent the cache memory from being missed. Therefore, it is possible to minimize the deterioration of the processor performance due to this.
  • what has been described above is the relationship between cache memory and main memory, but the same is true because the program becomes large and the execution code becomes large. On the main memory The relationship between the main memory when it is on the magnetic disk and the magnetic disk can also be said.
  • a pipeline-type processor using the method for preventing register interference according to the present invention provides a register interference filter with a stage that decodes an execution code. Insert N0P execution code into the normal execution gorge inside the processor according to the presence or absence of register interference, referring to the rules. Therefore, even in a program in which register interference has occurred, the amount of code can be increased without inserting N0P into the execution code as in the conventional example. To prevent register interference.
  • the fact that the code amount does not increase means that the number of times the execution code is flushed from the main memory is reduced. Therefore, it is also possible to ease the no-traffic when both the execution code and the data to be executed need to be footed.
  • the amount of execution code can be reduced so that the cache can be used more efficiently. The rate of missed hits can be reduced, and extremely high performance can be secured.

Abstract

A register interference field (41c) is provided in each instruction constituting an execution code (48), and a processor (40) refers to this field during the interpreting of the instruction and judges in the interior of a processor (40) whether a register interference is occurring or not. When a register interference is occurring, a non-operation (NOP) instruction is inserted between two adjacent instructions for execution. This enables the occurrence of register interference to be prevented without adding a meaningless non-operation (NOP) instruction to the inside of the execution code (48).

Description

明 細 書  Specification
発明の名称 Title of invention
レ ジ ス タ干渉防止方法  Register interference prevention method
技術分野 Technical field
本発明は、 パ イ プ ラ イ ン 方式の プ ロ セ ッ サ に 関す る も の であ 背景技術  The present invention relates to a pipeline type processor, and
現在、 データ を処理する プ ロ セ ッ サ において、 高速化のため の一般的手法と してパイ プラ イ ン方式が用い られている。 この パイ プラ イ ン方式の一例と して以下でその具体例をも と に説明 する。  At present, in processors that process data, the pipeline method is used as a general method for speeding up. As an example of the pipeline system, a specific example will be described below.
第 1図に 5段のパ イ プ ラ イ ン プ ロ セ ッ サ の構成概略図を示す = プ ロ セ ッ サ 1 0は、 実行コ ー ド フ ツ チ ス テ ー ジ ( I F ) 1、 レ ジ ス タ の内容読み込みと解読ス テージ ( R D ) 2、 第 1 の演 算ス テ ー ジ (A L U 1.) 3、 第 2の演算ス テ ー ジ (A L U 2 ) 4およびレ ジ ス タ へ の書き込みス テー ジ (WR ) 5の 5段階の ィ プラ イ ンに よ り なつてお り、 各 ィ プラ イ ン ス テージは制 御線 1 0 1〜 1 0 4に よ っ て制御されてい る。  Fig. 1 shows a schematic diagram of the configuration of a five-stage pipeline processor. = Processor 10 is the execution code footage stage (IF) 1, Register contents reading and decoding stage (RD) 2, first operation stage (ALU 1.) 3, second operation stage (ALU 2) 4, and register Write stage (WR) to write 5 stages, each of which is controlled by control lines 101 to 104. ing.
まず、 主記 it 7上にある実行コ ー ド 8か らパ ス ラ イ ン 6を介 し て プ ロ セ ッ サ 1 0に順次命令が入力, 解読され実行される こ と になる。 こ こ で、 一例と して、 以下の O P 1 と O P 2の 2つ の命令が実行される場合を第 1図, 第 2図を参照して考え る。  First, instructions are sequentially input to the processor 10 through the execution line 8 from the execution code 8 on the main note it7, decoded, and executed. Here, as an example, a case where the following two instructions, OP1 and OP2, are executed will be considered with reference to FIGS.
0 P 1; c = a氺 ( b + 1 ) 式 ( 1 )  0 P 1; c = a 氺 (b + 1) Equation (1)
0 P 2: d = a氺 ( c + 1 ) 式 ( 2 )  0 P2: d = a 氺 (c + 1) Equation (2)
主記憶 7上の実行コ ー ド 8か ら 0 P 1 の ア ド レ ス が プ ロ セ ッ サ 1 0に よ り ア ク セ ス さ れ、 0 P 1の命令が実行コ ー ド フ ェ ツ チス テージ 1に読み込まれる。 これが、 第 2図の期間 T 1であ り、 更に次の期間 T 2では第 2パイ プラ イ ンである レ ジ ス タ の 内容読み込みと解読ス テージ ( RD ) 2で、 命令の.内容が命令 の オ ペ レ ー シ ョ ン フ ィ ール ド 1 aおよびオ ペ ラ ン ド フ ィ ール ド 1 6に従い読み出され、 データ a, bが読み込まれる。 From execution code 8 on main memory 7 to address 0P1 It is accessed by the source 10 and the instruction at 0P1 is loaded into the execution code fetch stage 1. This is the period T1 in Fig. 2, and in the next period T2, the contents of the instruction are read and decoded at the stage 2 (RD) 2 of the register, which is the second pipeline. The data is read according to the operation field 1a of the instruction and the operation field 16 and the data a and b are read.
次に、 期間 T 3に於て、 第 1 の演算ス テージ ( A L U 1 ) 3 で ( b + 1 ) の演算が行われ、 こ の結果が期間 T 4で第 2の演 算ス テー ジ (A L U 2 ) 4で使用され、 a氺 ( b + 1 ) の演算 が行われる。 最後に、 期間 T 5ではレ ジ ス タ への書き込みス テ ー ジ (WR) 5で書き込みス テ ー ジ (WR) 5内 の レ ジ ス タ へ の デー タ の書き込みが行われる。 . と こ ろで、 命令 0 P 1に関しては、 これで命令が完全に実行 されるが、 命令を連続的に行う パイ プラ イ ン処理を行っている ために、 こ の 0 P 1命令の後にす ぐ 0 P 2命令が並列して実行 されてお り、 第 2図の期間 T 4では、 O P 1命令の演算結果、 即ち cを用いた加算 ( c + 1 ) が、 第 1の演算ス'テー ジ ( A L U 1 ) 3で実行される こ と になる。 しかし、 こ の cの値は、 同 じ期間 T 4で第 2の演算ス テ ー ジ (A L U 2.) 4,で の演算が終 了する までは確定しておらず、 仮にこ の時、 書き込みス テージ (WR) 5内の レ ジ スタの cの値を用いる と、 演算は正し く な いも のになる。 こ のよ う な状態の こ とを一般的にレ ジ スタ干渉 とい う。  Next, in the period T3, the operation of (b + 1) is performed in the first operation stage (ALU1) 3, and the result is calculated in the second operation stage (ALU1) in the period T4. Used in ALU2) 4, the operation of a 氺 (b + 1) is performed. Finally, in a period T5, data is written to the registers in the write stage (WR) 5 at the write stage (WR) 5 for the register. At this point, as for instruction 0 P1, the instruction is completely executed by this. However, since the pipeline processing for continuously executing the instruction is performed, the instruction after the 0 P 1 instruction is executed. Immediately 0 P 2 instructions are being executed in parallel, and during period T 4 in FIG. 'Will be executed on stage (ALU 1) 3. However, the value of c is not determined until the operation in the second operation stage (ALU 2.) 4 is completed in the same period T4, and at this time, Using the value of c in the register in the write stage (WR) 5, the operation will be incorrect. Such a state is generally called register interference.
そ こで第 3図の タ イ ミ ン グチ ャ ー ト のよ う に、 O P 1命令と 0 P 2命令の間に意味のない命令 ( ノ ーオペレ ー シ ョ ン命令 ( N 0 P ) ) を挿入する こ と によ り、 パイ プラ イ ン処理内でのレ ジ ス 夕 に保たれるデータ に矛盾がないよ う されている。 こ れが, 第 1 図の実行コ ー ド 8上の N O P命令であ る。 Therefore, as shown in the timing chart of FIG. 3, there is no meaningful instruction (no operation instruction (OP) between the OP1 instruction and the 0P2 instruction. The insertion of N 0 P)) ensures that there is no inconsistency in the data stored in the register during pipeline processing. This is the NOP instruction on execution code 8 in Fig. 1.
し かし、 こ の よ う な N 0 P命令を揷 する こ とは、 無駄な実 行コ ー ドを挿入する こ と を意味し、 実行コ ー ド量の増加と フ エ ツ チサイ ク ルの増加を招 く。 こ のため実行コ ー ド 8 への命令フ ツ チによ る主記憶 7へのパ ス ト ラ フ ィ ッ ク が混雑し、 特に、 主記憶 7 を構成する外部メ モ リ が高速でない場合や、 高速でも 小容量な場合は、 処理ス ピ ー ド の低下をまねき重要な問題とな る。  However, executing such an N0P instruction means inserting useless execution code, increasing the amount of execution code and fetching cycles. Increase. Therefore, the path traffic to the main memory 7 due to the instruction footing to the execution code 8 becomes congested, especially when the external memory constituting the main memory 7 is not fast. In addition, when the capacity is small even at high speed, the processing speed is reduced, which is an important problem.
発明の開示 ' ' Disclosure of invention ''
本発明は、 かかる問題点を鑑みなされたも の で、 実行コ ー ド. 量の増加な し に レ ジ ス タ干渉を防止する方法を提案する こ とを 目的と している。  The present invention has been made in view of such a problem, and has as its object to propose a method for preventing register interference without increasing the amount of execution code.
上記目的は、 少な く と も実行コ ー ド フ X ツ チ, 実行コ ー ドデ コ ー ド及びレ ジ ス タ干渉を伴う複式の演算ス テージ よ り構成さ れるパイ プ ラ イ ン方式のプ ロ セ ッ サにおいて、 実行される実行 コ ー ド上に前記複数の演算ス テ ー ジ で の レ ジ ス タ干渉を示す特 定の フ ィ ー ル ド を設け、 前記実行コー ドデコ ー ド ス テージ は、 前記レ ジ ス タ干渉フ ィ ール ド を参照し、 そ のパ タ ー ン に従い前 記複数の演算ス テ ー ジ に対し、 該当する実行コ ー'ド に対応する 内部コ ー ドか、 ある いは、 該当する実行コ ー ド に対応する 内部 コ ー ド に ひ き つづい て、 1 つま たは複数の ノ ー オ ペ レ ー シ ョ ン の内部コ ー ド を発行する こ とを特徴とする レ ジ ス タ干渉防止方 法である。 こ の構成によ り、 実行コ ー ド量を増加させる こ と な く レ ジ ス タ干渉を防止し、 効率的でコ ン パク ト な実行コ ー ド の作成を可 能な ら しめ るも のである。 · - 図面の簡単な説明 The above-mentioned object is achieved by a pipelined system consisting of at least an execution code offset X-execution, execution code decoding, and multiple operation stages involving register interference. In the processor, a specific field indicating register interference in the plurality of operation stages is provided on the execution code to be executed, and the execution code code is provided. The stage refers to the above-mentioned register interference field, and according to the pattern, the internal code corresponding to the execution code corresponding to the plurality of operation stages described above. Issue one or more internal operations codes following the internal code corresponding to the execution code or corresponding execution code This is a method for preventing register interference. With this configuration, register interference is prevented without increasing the amount of execution code, and efficient and compact execution code can be created. It is. ·-Brief description of the drawing
第 1 図は、 従来の 5段のパイ プ ラ イ ン プ ロ セ ッ サの構成概略 図、 第 2図およ び第 3 図は同プ ロ セ ッ サの動作タ イ ミ ン グチ ヤ ー ト 図、 第 4図は本発明の一実施例を示す 5段パイ プラ イ ンプ 口セ ッ サの搆成概略図、 第 5図は同プ ロ セ ッ サ の動作タイ ミ ン グチ ヤ ー ト 図である。  Fig. 1 is a schematic diagram of a conventional five-stage pipeline processor. Figs. 2 and 3 are timing charts of the operation of the same processor. FIG. 4 is a schematic diagram of a five-stage pi-pipe opening sensor showing an embodiment of the present invention, and FIG. 5 is an operation timing chart of the same processor. FIG.
発明を実施するための最良の形態 BEST MODE FOR CARRYING OUT THE INVENTION
以下、 本発明の実行例に基づき説明する。  Hereinafter, a description will be given based on execution examples of the present invention.
•本発明にかかる レ ジ ス タ干渉防止方法の一例を第 4図に示す。 レ ジ ス タ干渉フ ィ ール ド 4 1 c を持つ実行ゴー ド' 4 8 は、 Ί ラ イ ン 6 を通してプ ロ セ ッ サ 4 0 に伝えられる。 実行コ ー ド フ ヱ ツ チを実行する フ ェ ッ チ ス テ ー ジ 4 1 (第 1 パイ プ ラ イ ン ) は、 こ れを受け取り格納する  • An example of the method for preventing register interference according to the present invention is shown in FIG. The execution card '48 having the register interference field 41c is transmitted to the processor 40 through the line 6. The fetch stage 4 1 (first pipeline) that executes the execution code pusher receives and stores it.
こ の実行コ ー ドをデコー ドする レ ジ ス タ の内容読み込みと解 読ス テージ ( R D ) 4 2 (第 2 パイ プ ラ イ ン ) は、 内部実行コ — ド線 4 0 1 よ り実行コー ドを受けと り その中の 1 ビ ッ ト'の レ ジ ス タ干渉フ ィ ール ド 4 Γ c を参照する。 そ し て レ ジ ス タ干渉 がない場合には、 該当する 内部実行コ ー ドを、 レ ジ ス タ干渉が ある場合には、 該当する内部実行コ ー ド と さ ら に次サイ ク ルレ ジ ス タ干渉を防 ぐ内部ノ ーオペレ ー シ ョ ン コ ー ドを生成し、 内 部実行コ ー ド線 4 0 2 に よ り、 第 1 の演算ス テ ー ジ ( A L U 1 ) 4 3 (第 3 パイ プ ラ イ ン ) 以降に、 実行内容を伝える。 こ の第 1 の演算ス テ ー ジ ( A L U 1 ) 43. (第 3パ イ プ ラ イ ン ) 、 第 2の演算ス テ ー ジ (A L U 2 ) 4 4 (第 4パイ プ ラ イ ン ) およ びレ ジ ス タ への書き込みス テー ジ (WR) 4 5 (第 5パイ プラ イ ン ) は、 それぞれ、 内部実行コ ー ド線 4 0 2, 4 0 3, 40 4 'よ り 伝え られる制御信号に よ り 順次演算を実行する。 The stage for reading and decoding the contents of the register that decodes this execution code (RD) 4 2 (2nd pipeline) is executed from the internal execution code line 401. Receive the code and refer to the 1-bit 'register interference field 4 干 渉 c. If there is no register interference, the relevant internal execution code is used, and if there is register interference, the relevant internal execution code and the next cycle register are used. An internal operation code to prevent star interference is generated, and the first execution stage (ALU 1) 4 3 (No. 1) is generated by the internal execution code line 402. 3 Pipeline) After that, convey the execution contents. This 1st operation stage (ALU 1) 43. (3rd pipeline), 2nd operation stage (ALU2) 4 4 (4th pipeline) and The write stages (WR) 45 (fifth pipeline) to the registers are control signals transmitted from the internal execution code lines 402, 400, and 404 ', respectively. The calculation is executed sequentially by.
こ こ で、 従来と異なる点は、 レ ジ ス タ干渉を防 ぐた めの ノ ー オペ レ ー ^ ョ ン操作をレ ジ ス タ の内容読み込み と解読ス テ ー ジ Here, the difference from the conventional method is that the no operation operation to prevent register interference is performed by reading the register contents and decoding stage.
(R D ) 4 2 (第 2パイ プ ラ イ ン ) で判断し、 挿入する点であ る。 (RD) 4 2 (2nd pipeline) Judgment and insertion point.
以下では、 レ ジ ス タ干渉防止の過程を第 5図の タ イ ミ ン グチ ヤ ー ト 図を も と に説明する。 こ こ で、 駆動 ク ロ ッ ク は、 1 サイ ク ノレ 2相ク ロ ッ ク と し、 プ ロ セ ッ サでは 0 P 1 か ら の連続的な 実行コ ー ド が処理さ れる とする。  In the following, the process of register interference prevention will be described with reference to the timing chart of FIG. Here, it is assumed that the drive clock is a one-cycle two-phase clock, and the processor processes continuous execution code from 0P1.
こ こ で例えば、 前述の例に示し たよ う に 0 P 1 と 0 P 2の間 に レ ジ ス タ 干渉があ る場合、 フ ヱ ツ チ ス τー ジ 4 1 (第 1 パイ プ ラ イ ン ) は内部実行コ ー ド線 4 0 1 に よ っ て伝え ら れた 0 P 1 の実行コ ー ド の レ ジ ス タ 干渉フ ィ ール ド 4.1 c ,を参照 し 0 P 1 と 0 P 2がレ ジ ス タ干渉を行し てい る こ と を判断する。  Here, for example, as shown in the above example, when there is register interference between 0P1 and 0P2, the pixel τ- age 41 (the first pipeline) ) Refer to the register interference field 4.1c of the execution code of 0P1 transmitted by the internal execution code line 401 and 0P1 and 0P. Judge that P2 is causing register interference.
そ し て、 次サ イ ク ルの レ ジ ス タ の内容読み込み と解読ス テ ー ジ ( R D ) 42 (第 2パイ プ ラ イ ン ) は、 ノ ー ォ,ペ レ ー シ ヨ ン サ イ ク ル ( N 0 P ) を挿入する。 さ ら に次サ イ ク ル、 第 1パイ プラ イ ン は、 ゥ ユ ー ト 状態、 それ以外のパイ プ ラ イ ン は命令を 実行する。  The reading and decoding of the contents of the register of the next cycle and the decoding stage (RD) 42 (second pipeline) are performed by the no- Insert a click (N0P). In addition, the next cycle, the first pipeline is in the ユ unit state, and the other pipelines execute the instruction.
こ の よ う にする こ と によ り、 前述の背景技術の中で述べた よ う な場合で も、 第 1 の命令 0 P 1 に よ り デー タ cが確定し た後 に、 O P 2命令が実行される。 By doing so, even after the data c is determined by the first instruction 0P1 even in the case described in the above-mentioned background art, Next, the OP2 instruction is executed.
特徴としては、 本発明では、 従来のも の と異なり実行コ ー ド 上への N 0 Pの挿入がないため、 実行コ ー ド量の増加なし にレ ジ ス タ干渉を防止する こ と ができ る点である。  Characteristically, in the present invention, unlike the conventional one, there is no insertion of N0P on the execution code, so that it is possible to prevent register interference without increasing the amount of execution code. It is possible.
以上要約する と本発明による レ ジス タ干渉防止方法を用いた ノ、 °ィ プ ラ イ ン方式のプ ロ セ ッ サ は、 実行コ一. ド を'デ コ ー ド する ス テー ジで レ ジ ス タ干渉フ ィ ール ドを参照し、 レ ジ ス タ干渉の 有無に従い、 プロ セ ヅ サ内部で通常の実行コ ー ド中に N O Pの 実行コー ドを挿入する。 よ って、 レ ジ ス タ干渉を生じたプロ グ ラ ム で も、 従来例にあげたよ う な N 0 Pを実行コ ー ド中に入れ る こ とな く コー ド量を増加させずにレ ジス タ干渉を防止する。  In summary, a processor of the present invention using the register interference prevention method according to the present invention can execute an execution code at a stage where the execution code is decoded. Refer to the register interference field and insert the NOP execution code into the normal execution code inside the processor according to the presence or absence of register interference. Therefore, even in a program in which register interference has occurred, N0P as in the conventional example is not included in the execution code without increasing the code amount. Prevent register interference.
さ らに、 コ ー ド量が増加しない とい う こ とは、 主記憶から実 行コ ー ドを フ ツ チする回数が抑えられる。 よ って実行コ ー ド と実行されるデータ の双方をフ ェ ッ チ しなければなら ない場合 での パ ス ト ラ フ ィ ッ ク の緩和にも つながる。 また、 命令用キ ヤ ッ シ -ュ メ モ リ をオ ン チ ッ プィ匕している よ う なプ ロ セ ッ サに関し て本発明を利用する場合について以下に説明する。  Furthermore, the fact that the code amount does not increase means that the number of times the execution code is footed from the main memory is reduced. This also reduces the need for fetching both the execution code and the data to be executed. Further, a case where the present invention is used in connection with a processor in which instruction cache memory is on-chip is described below.
こ の場合、 特に、 キ ャ ッ シ ュ メ モ リ の容量とループ状になつ てい る実行コ ー ドの大き さ とが問題になる。 つま り、 ループ状 にな ってい る実行コ ー ドがキ ヤ ッ シュ の容量よ り小さ ければ、 キ ャ ツ シ ュ メ モ リ は連続的に ヒ ッ ト し、 プ ロ セ ッ サは高速にデ 一夕 を処理する。 しかし、 従来例に示すよ う にレ ジ ス タ干渉を 防 ぐために N 0 P命令を挿入すれば、 実行コ ー ド量が増加し、 ル一プ状に な っ てい る実行コ ー ド がキ ヤ ッ シ ュ 人モ リ の容量を 超えた場合、 キ ャ ッ シ ュ メ モ リ 上に実行コ ー ドが無い こ と があ る よ う にな り、 (以下実行コ ー ド が無い こ と を ミ ス ヒ ッ ト と呼 ぶ) プ ロ セ ッ サ の性能が落ち る要因と な る。 つ ま り、 キ ヤ ッ シ ュ メ モ リ をオ ン チ ッ プィ匕し たプ ロ セ ッ サに と っ て実行コ ー ド量 を減 ら すこ と は、 性能を保った めに極めて重要な こ と であ る。 そ し て、 本発明に よ る レ ジ ス タ 干渉防止方法を、 オ ン チ ッ プの キ ャ ッ シ ュ メ モ リ を持つパ イ プ ラ イ ン方式のプ ロ セ ッ サ に採用 する こ と に よ り、 レ ジ ス タ 干渉に.よ る コ ー ド量の増加を防 ぐ こ と が可能と な り、 よ っ て、 キ ャ ッ シ ュ メ モ リ の ミ ス ヒ ッ ト によ る プ ロ セ ッ サ の性能の低下を最小限に抑え る こ とが可能と な る。 ま た、 先に述べた こ と は、 キ ャ ッ シ ュ メ モ リ と主記憶と の関係 であ るが、 同様の こ とがプ ロ グ ラ ムが大き く な り実行 コ ー ドが 主記憶上 磁気デ ィ ス ク上にあ る場合の主記憶と、 磁気デ ィ ス ク と の関係についても言え る。 In this case, the size of the cache memory and the size of the execution code in a loop are particularly important. In other words, if the looped execution code is smaller than the cache capacity, the cache memory will hit continuously and the processor will Process De Isamu at high speed. However, if an N0P instruction is inserted to prevent register interference as shown in the conventional example, the amount of execution code increases, and the execution code that is in a loop becomes key. If the capacity of the cache memory is exceeded, there may be no execution code in the cache memory. (Hereinafter, the absence of an execution code is referred to as a mission.) This is a factor that degrades the performance of the processor. In other words, reducing the amount of execution code for a processor with on-chip cache memory is crucial to maintaining performance. That is what it is. Then, the method for preventing register interference according to the present invention is applied to a processor of a pipeline type having an on-chip cache memory. As a result, it is possible to prevent an increase in the code amount due to register interference, and thus, it is possible to prevent the cache memory from being missed. Therefore, it is possible to minimize the deterioration of the processor performance due to this. Also, what has been described above is the relationship between cache memory and main memory, but the same is true because the program becomes large and the execution code becomes large. On the main memory The relationship between the main memory when it is on the magnetic disk and the magnetic disk can also be said.
産業上の利用可能性 Industrial applicability
本発明に よ る レ ジ ス タ干渉防止方法を用いたパイ プ ラ イ ン方 式の プ ロ セ ッ サは、 実行コ ー ド をデコ ー ド する ス テー ジ で レ ジ ス タ 干渉フ ィ ール ド を参照 し、 レ ジ ス タ干渉の有無に従い プロ セ ッ サ内部で通常の実行ゴー ド 中に N 0 P の実行コ ー ド を挿入 する。 よ っ て、 レ ジ ス タ干渉を生じ た プ ロ グ ラ ムでも、 従来例 にあ げたよ う な N 0 P を実行コ ー ド 中に入れる こ と な く、 コ ー ド量を増加 させずに レ ジ ス タ 干渉を防止する。  A pipeline-type processor using the method for preventing register interference according to the present invention provides a register interference filter with a stage that decodes an execution code. Insert N0P execution code into the normal execution gorge inside the processor according to the presence or absence of register interference, referring to the rules. Therefore, even in a program in which register interference has occurred, the amount of code can be increased without inserting N0P into the execution code as in the conventional example. To prevent register interference.
さ ら に、 コ ー ド量が増加し ない と い う こ と は、 主記憶か ら実 行コ 一 ド を フ ユ ツ チする 回数が抑え ら れる。 よ っ て実行コ ー ド と実行される デー タ の双方を フ ツ チ し な ければな ら ない場合 でのノ ス ト ラ フ ィ ッ ク の緩和に も つながる。 また、 キ ャ ッ シ ュ メ モ リ をオ ン チ ッ プィヒしたプロ セ ッ サでも 実行コ ー ド量を減らすこ と によ り、 キ ャ ッ シ ュ の有効利用をは か り 実行コ ー ド の ミ ス ヒ ッ ト率を抑え る こ とが出来、 極めて高 い性能を確保でき る。 Furthermore, the fact that the code amount does not increase means that the number of times the execution code is flushed from the main memory is reduced. Therefore, it is also possible to ease the no-traffic when both the execution code and the data to be executed need to be footed. In addition, even if the processor has cache memory turned on, the amount of execution code can be reduced so that the cache can be used more efficiently. The rate of missed hits can be reduced, and extremely high performance can be secured.

Claims

請 求 の 範 囲 The scope of the claims
1 . 少な く と も実行コ ー ド フ ツ チ, 実行コ ー ドデコ ー ド及び レ ジ ス タ干渉.を伴う複数の演算ス テージ よ り構成されるパイ プ ラ イ ン方式のプロ セ ッ サにおいて、 実行される実行コ ー ド上に 前記複数の演算ス テ ー ジ で の レ ジ ス タ干渉を示す特定の フ ィ ー ル ド を設け、 前記実行コ ー ド デ コ ー ド ス テ ー ジ は、 前記レ ジ ス タ干渉フ ィ ール ドを参照し、 そ のパタ ー ン に従い前記複数の演 算ス テー ジ に対し、 該当する実行コ ー ド に対応する内部コ ー ド かあるいは該当する実行コ ー ド に対応する 内部コ'一 ド にひ きつ づいて、 1 つま たは複数の ノ ーオ ペ レ ー シ ョ ン の内部コ ー ドを 発行する こ と を特徴とす る レ ジ ス タ干渉防止方法。  1. At least a pipelined processor consisting of multiple operation stages with execution code footing, execution code decoding, and register interference. , A specific field indicating register interference in the plurality of operation stages is provided on the execution code to be executed, and the execution code and the decoding state are provided. The reference to the register interference field refers to the internal code corresponding to the execution code corresponding to the execution code corresponding to the plurality of operation stages in accordance with the pattern. The internal code of one or more no-operations is issued following the internal code corresponding to the relevant execution code. Register interference prevention method.
PCT/JP1988/001111 1987-11-02 1988-10-31 Register interference preventing method WO1989004518A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019890701233A KR920003495B1 (en) 1987-11-02 1988-10-31 Register inteference preventing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP62/277623 1987-11-02
JP62277623A JPH01119829A (en) 1987-11-02 1987-11-02 Register interference preventing method

Publications (1)

Publication Number Publication Date
WO1989004518A1 true WO1989004518A1 (en) 1989-05-18

Family

ID=17586001

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1988/001111 WO1989004518A1 (en) 1987-11-02 1988-10-31 Register interference preventing method

Country Status (3)

Country Link
JP (1) JPH01119829A (en)
KR (1) KR920003495B1 (en)
WO (1) WO1989004518A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0862116A2 (en) * 1997-02-28 1998-09-02 Vlsi Technology, Inc. A smart debug interface circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370638B1 (en) 1997-11-21 2002-04-09 Matsushita Electric Industrial Co., Ltd. Apparatus and method of computer program control in computer systems using pipeline processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor
JPS5626870B2 (en) * 1977-11-07 1981-06-22

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor
JPS5626870B2 (en) * 1977-11-07 1981-06-22

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0862116A2 (en) * 1997-02-28 1998-09-02 Vlsi Technology, Inc. A smart debug interface circuit
EP0862116A3 (en) * 1997-02-28 2000-01-05 Vlsi Technology, Inc. A smart debug interface circuit

Also Published As

Publication number Publication date
JPH01119829A (en) 1989-05-11
KR920003495B1 (en) 1992-05-01
KR890702115A (en) 1989-12-22

Similar Documents

Publication Publication Date Title
US20210072998A1 (en) Reducing data hazards in pipelined processors to provide high processor utilization
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5604878A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
JP2002007141A (en) Loop cache memory for pipe lined microprocessor and cache controller
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JP2620511B2 (en) Data processor
EP0378415A2 (en) Multiple instruction dispatch mechanism
US5504923A (en) Parallel processing with improved instruction misalignment detection
JPH04188229A (en) Floating-point arithmetic processing unit
US20020116599A1 (en) Data processing apparatus
US4812970A (en) Microprogram control system
WO1989004518A1 (en) Register interference preventing method
US5237664A (en) Pipeline circuit
JP3182591B2 (en) Microprocessor
US4566062A (en) Timing control system in data processor
EP0573071A2 (en) A microprocessor
JP2004508607A (en) Apparatus and method for reducing register write traffic in a processor having an exception routine
JP2503223B2 (en) Prior control method
JP2555664B2 (en) Branch history table writing control method
US20050228970A1 (en) Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
KR950014161B1 (en) Two stage instructin pipe-line processing method of array processor
JP3405106B2 (en) Programmable controller
JP2511063B2 (en) Pipeline control method
JP2851192B2 (en) Addition / subtraction processing method with carry in parallel processing unit
KR100515039B1 (en) Pipeline status indicating circuit for conditional instruction

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): KR US