JP2000267849A - Pipeline processor - Google Patents

Pipeline processor

Info

Publication number
JP2000267849A
JP2000267849A JP11071603A JP7160399A JP2000267849A JP 2000267849 A JP2000267849 A JP 2000267849A JP 11071603 A JP11071603 A JP 11071603A JP 7160399 A JP7160399 A JP 7160399A JP 2000267849 A JP2000267849 A JP 2000267849A
Authority
JP
Japan
Prior art keywords
instruction
time
time information
stage
pipeline processor
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.)
Pending
Application number
JP11071603A
Other languages
Japanese (ja)
Inventor
Kazutaka Nogami
一孝 野上
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP11071603A priority Critical patent/JP2000267849A/en
Publication of JP2000267849A publication Critical patent/JP2000267849A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To obtain a pipeline processor capable of shotening the total execution time without reducing the execution time of an instruction having the worst cycle time and performing a fast operation. SOLUTION: The number of clocks necessary to the processing stage of each instruction is set to each instruction, a clock generation circuit 17 generates a clock signal CLK in accordance with a stage needing the longest time among a series of instructions that are subjected to pipeline processing on the basis of the number of clocks supplied from an instruction decoder 15. For this reason, cycle time is not regulated by the worst cycle time, and processing time can be reduced because the cycle of the signal CLK is varied in accordance with a simultaneously executed instruction.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、例えば命令実行の
各ステップをオーバーラップさせ、複数個の命令を並列
に処理することが可能なパイプライン・プロセッサに関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a pipeline processor capable of processing a plurality of instructions in parallel, for example, by overlapping each step of instruction execution.

【0002】[0002]

【従来の技術】図9は、従来のパイプライン・プロセッ
サの動作を示している。この種のパイプライン・プロセ
ッサは、例えば命令のフェッチ(F)、デコード
(D)、演算の実行(E)、メモリアクセス(M)、レ
ジスタへの書き込み(W)からなるステージを有してい
る。前記命令のフェッチ(F)は、プログラムカウンタ
に従って命令メモリから命令を読み出す。デコード
(D)はこの読み出された命令を解読するとともにオペ
ランドアドレスを計算する。演算の実行(E)は、前記
デコード結果に応じて算術演算ユニット(ALU)や浮
動小数点演算処理ユニットにより演算を行う。この演算
の後、メモリアクセス(M)において例えばデータキャ
ッシュがアクセスされ、書き込みステージ(W)におい
て、演算結果がレジスタに書き込まれる。
2. Description of the Related Art FIG. 9 shows the operation of a conventional pipeline processor. This type of pipeline processor has, for example, stages composed of instruction fetch (F), decode (D), execution of operation (E), memory access (M), and writing to a register (W). . The instruction fetch (F) reads an instruction from an instruction memory according to a program counter. The decode (D) decodes the read instruction and calculates an operand address. The execution of the operation (E) is performed by an arithmetic operation unit (ALU) or a floating point operation processing unit according to the decoding result. After this operation, for example, the data cache is accessed in the memory access (M), and the operation result is written in the register in the write stage (W).

【0003】[0003]

【発明が解決しようとする課題】ところで、上記従来の
パイプライン・プロセッサは、全ての命令のパイプライ
ンステージにおいて、最も処理時間を要するステージに
より各ステージのサイクル時間が規定されている。この
ため、図9に示す例の場合、例えば命令0の演算実行
(E)ステージが、全ての命令のパイプラインステージ
において、最も長時間を要する場合、他のステージのサ
イクル時間もこのステージのサイクル時間に一致され
る。
In the above-mentioned conventional pipeline processor, the cycle time of each stage is defined by the stage requiring the longest processing time in the pipeline stages of all instructions. Therefore, in the case of the example shown in FIG. 9, for example, when the operation execution (E) stage of the instruction 0 takes the longest time in the pipeline stages of all the instructions, the cycle time of the other stages is also the cycle time of this stage. Matched with time.

【0004】このように、従来のパイプライン・プロセ
ッサは、例えば1つの命令のあるパイプラインステージ
が他の命令のパイプラインステージに比べて例えば1.
5倍時間がかかると、その命令は非常に希にしか使用さ
れない場合においても、プロセッサの各ステージのサイ
クル時間を殆どの命令が処理できるサイクル時間の1.
5倍に設定しなければならない。
As described above, in a conventional pipeline processor, for example, a pipeline stage having one instruction is compared with a pipeline stage of another instruction by, for example, 1.
If it takes five times as long, even if the instruction is used very rarely, the cycle time of each stage of the processor is 1.
Must be set to 5 times.

【0005】また、プロセッサの設計を考慮した場合、
全ての命令、全てのパイプラインステージのうち、ワー
ストのサイクル時間、すなわち、最もサイクル時間が長
いパイプラインステージの処理時間を短くしなければ、
プロセッサの性能が向上しない。しかし、ワーストのサ
イクル時間を有する命令は、一般に、複雑な処理を行っ
ている。このため、このワーストのサイクル時間を有す
る命令を高速に処理可能とするには、複雑な処理を簡略
化したり、回路設計や製造プロセス等を再検討する必要
がある。したがって、非常に多くの労力を要するととも
に、製造コストの高騰を招くため得策ではない。
In consideration of the design of a processor,
If the worst cycle time of all instructions and all pipeline stages, that is, the processing time of the pipeline stage with the longest cycle time is not shortened,
Processor performance does not improve. However, instructions with the worst cycle time generally perform complex processing. For this reason, in order to be able to process instructions having the worst cycle time at high speed, it is necessary to simplify complicated processing and reconsider the circuit design and manufacturing process. Therefore, it requires a great deal of labor and increases the production cost, which is not an advantage.

【0006】本発明は、上記課題を解決するためになさ
れたものであり、その目的とするところは、ワーストの
サイクル時間を有する命令の実行時間を短縮することな
く、全体の実行時間を短縮でき、高速動作が可能なパイ
プライン・プロセッサを提供しようとするものである。
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to reduce the overall execution time without reducing the execution time of an instruction having the worst cycle time. And a pipeline processor capable of high-speed operation.

【0007】[0007]

【課題を解決するための手段】本発明のパイプライン・
プロセッサは、上記課題を解決するため、複数のステー
ジを有し、複数の命令が1ステージずつずれて同時に実
行されるパイプライン・プロセッサであって、前記複数
の命令の前記同時に実行される異なるステージにそれぞ
れ設定された処理に必要な時間を示す時間情報のうち、
最大の時間情報を選択する選択回路と、前記パイプライ
ン・プロセッサの動作周波数より高い周波数のサブクロ
ック信号を用いて前記選択回路により選択された時間情
報からクロック信号を生成するクロック信号生成回路と
を具備している。
SUMMARY OF THE INVENTION The pipeline of the present invention
In order to solve the above-mentioned problem, a processor is a pipeline processor that has a plurality of stages and a plurality of instructions are simultaneously executed while being shifted by one stage, wherein the different stages of the plurality of instructions that are simultaneously executed are different. Of the time information indicating the time required for the process set in
A selection circuit that selects the maximum time information; and a clock signal generation circuit that generates a clock signal from the time information selected by the selection circuit using a subclock signal having a frequency higher than the operating frequency of the pipeline processor. I have it.

【0008】前記パイプライン・プロセッサは、前記時
間情報を各命令のコマンドをアドレスとして記憶するメ
モリと、前記命令の読み出し時に、読み出された命令の
コマンドをアドレスとして前記メモリに記憶された時間
情報を読み出し、前記読み出された命令に付加する付加
回路とをさらに具備している。
The pipeline processor is configured to store the time information as a command of each instruction as an address, and to read the time information stored in the memory using the read command as an address when reading the instruction. And an additional circuit for reading the read instruction and adding the read instruction to the read instruction.

【0009】前記パイプライン・プロセッサは、前記時
間情報を各命令のコマンドをアドレスとして記憶するメ
モリと、前記命令のデコード時に、デコードされる命令
のコマンドをアドレスとして前記メモリに記憶された時
間情報を読み出し、前記デコードされる命令に付加する
付加回路とをさらに具備している。
The pipeline processor stores the time information as a command of each instruction as an address, and decodes the time information stored in the memory using the command of the decoded instruction as an address when decoding the instruction. An additional circuit for reading and adding the instruction to the decoded instruction.

【0010】[0010]

【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0011】図1は、本発明のパイプライン・プロセッ
サを示している。このパイプライン・プロセッサ11
は、例えばプログラムカウンタ12に接続された命令メ
モリ13、この命令メモリ13に接続された命令レジス
タ14、この命令レジスタ14に接続された命令デコー
ダ15、サブクロック発生器16、このサブクロック発
生器16及び前記命令デコーダ15に接続されたクロッ
ク生成回路17、このクロック生成回路17に接続され
た算術演算ユニット(ALU)18、データキャッシュ
メモリ19、レジスタ20により構成されている。
FIG. 1 shows the pipeline processor of the present invention. This pipeline processor 11
Are, for example, an instruction memory 13 connected to the program counter 12, an instruction register 14 connected to the instruction memory 13, an instruction decoder 15 connected to the instruction register 14, a subclock generator 16, and a subclock generator 16. And a clock generation circuit 17 connected to the instruction decoder 15, an arithmetic operation unit (ALU) 18 connected to the clock generation circuit 17, a data cache memory 19, and a register 20.

【0012】前記プログラムカウンタ12は命令の実行
順序を制御する。このプログラムカウンタ12の出力信
号に応じて命令メモリ13に記憶されている1つの命令
が読み出され、命令レジスタ14にロードされる。この
命令レジスタ14に記憶された命令は命令デコーダ15
によりデコードされる。
The program counter 12 controls the order of instruction execution. One instruction stored in the instruction memory 13 is read out according to the output signal of the program counter 12 and loaded into the instruction register 14. The instruction stored in the instruction register 14 is an instruction decoder 15
Is decoded by

【0013】サブクロック発振器16は、例えば水晶発
振器により構成され、このプロセッサの動作周波数より
数倍高い周波数のサブクロック信号を発生する。このサ
ブクロック信号はクロック生成回路17に供給される。
このクロック生成回路17は、命令デコーダ15のデコ
ード結果に応じて、サブクロック信号を制御し、クロッ
ク信号を発生する。
The subclock oscillator 16 is composed of, for example, a crystal oscillator, and generates a subclock signal having a frequency several times higher than the operating frequency of the processor. This sub clock signal is supplied to the clock generation circuit 17.
The clock generation circuit 17 controls a sub-clock signal according to a decoding result of the instruction decoder 15 to generate a clock signal.

【0014】ところで、この実施例において、前記命令
には、例えば命令を処理する各ステージの処理時間に関
する情報が、前記サブクロック信号のクロック数(以
下、単にクロック数と称す)に対応して予め設定されて
いる。
In this embodiment, the instruction includes, for example, information on the processing time of each stage for processing the instruction in advance corresponding to the number of clocks of the subclock signal (hereinafter simply referred to as the number of clocks). Is set.

【0015】図2は、命令の一例を示している。この例
の場合、命令20にこの命令のデコード(D)、実行
(E)、メモリアクセス(M)、レジスタへの書き込み
(W)に要するクロック数群21がそれぞれ“3”、
“4”、“1”、“2”と設定されている。尚、後述す
るように、命令のフェッチサイクルは各命令とも同一で
あるため、各命令毎に設定する必要はない。
FIG. 2 shows an example of the instruction. In this example, the number of clocks 21 required for decoding (D), execution (E), memory access (M), and writing to a register (W) of the instruction 20 is “3”,
“4”, “1”, and “2” are set. As described later, since the fetch cycle of the instruction is the same for each instruction, it is not necessary to set the fetch cycle for each instruction.

【0016】また、前記命令デコーダ15は、命令20
をデコードするとともに、順次デコードされる複数の命
令のクロック数群21を保持する複数の例えばシフトレ
ジスタを有している。
The instruction decoder 15 has an instruction 20
And a plurality of shift registers, for example, that hold a clock number group 21 of a plurality of instructions to be sequentially decoded.

【0017】図3は、前記命令デコーダ15に設けられ
た複数のシフトレジスタR0〜R3を示している。シフ
トレジスタR0には最も先にデコードされた命令0のク
ロック数群が保持され、シフトレジスタR3には最も後
にデコードされた命令3のクロック数群が保持されてい
る。各シフトレジスタR0〜R3に保持されたクロック
数は、例えばクロック生成回路17から供給されるクロ
ック信号CLKに応じてシフトされ、パイプラインステ
ージの進行に従って出力される。図3に示す破線は、各
シフトレジスタR0〜R3から現在出力されている信号
を示すとともに、プロセッサの現在の処理ステージ状態
を示している。すなわち、命令0は書き込み(W)、命
令1はメモリアクセス(M)、命令2は実行(E)、命
令3は命令デコード(D)の状態であることを示してい
る。これらシフトレジスタR0〜R3から出力されるク
ロック数群は、クロック生成回路17に供給される。
FIG. 3 shows a plurality of shift registers R0 to R3 provided in the instruction decoder 15. The shift register R0 holds a group of clock numbers of the first decoded instruction 0, and the shift register R3 holds a group of clock numbers of the last decoded instruction 3. The number of clocks held in each of the shift registers R0 to R3 is shifted according to, for example, a clock signal CLK supplied from the clock generation circuit 17, and output as the pipeline stage progresses. The broken lines shown in FIG. 3 indicate the signals currently output from each of the shift registers R0 to R3 and indicate the current processing stage state of the processor. That is, the instruction 0 indicates a write (W), the instruction 1 indicates a memory access (M), the instruction 2 indicates an execution (E), and the instruction 3 indicates an instruction decode (D). The group of clock numbers output from the shift registers R0 to R3 is supplied to the clock generation circuit 17.

【0018】図4は、クロック生成回路17の一例を示
している。このクロック生成回路17は例えばレジスタ
17a、17b、17c、17d、17eを有してい
る。前記命令デコーダ15から供給される各ステージの
クロック数は例えばレジスタ17b、17c、17d、
17eにそれぞれ供給される。すなわち、レジスタ17
b、17c、17d、17eには、図3に破線で囲まれ
た部分のクロック数がそれぞれ供給される。尚、命令の
フェッチ(F)に要するサイクル数は前述したように各
命令で同一であるため、レジスタ17aには例えばクロ
ック数“2”が予め設定される。また、前記レジスタ1
7a〜17eはクロック数が“1”の場合、“000
1”がセットされ、クロック数が“2”の場合“001
1”がセットされ、クロック数が“3”の場合、“01
11”、クロック数が“4”の場合“1111”が設定
される。
FIG. 4 shows an example of the clock generation circuit 17. The clock generation circuit 17 has, for example, registers 17a, 17b, 17c, 17d, and 17e. The number of clocks of each stage supplied from the instruction decoder 15 is, for example, the registers 17b, 17c, 17d,
17e. That is, the register 17
To b, 17c, 17d, and 17e, the number of clocks in a portion surrounded by a broken line in FIG. 3 is supplied. Since the number of cycles required for the instruction fetch (F) is the same for each instruction as described above, the clock number "2" is set in advance in the register 17a, for example. The register 1
7a to 17e are “000” when the number of clocks is “1”.
"1" is set, and when the number of clocks is "2", "001" is set.
When "1" is set and the number of clocks is "3", "01" is set.
When the number of clocks is "4", "1111" is set.

【0019】上記各レジスタ17a〜17eの各ビット
の信号はオア回路17f、17g、17h、17iに供
給される。これらオア回路17f〜17iの出力信号は
スイッチ回路17kを構成する各スイッチ17m、17
n、17o、17pの入力端にそれぞれ供給される。さ
らに、スイッチ回路17kはスイッチ17lを有してい
る。このスイッチ17lの入力端には電源Vssが供給さ
れ、出力端は前記スイッチ17m、17n、17o、1
7pの出力端とともに、アンド回路17qの反転入力端
に接続されている。このアンド回路17qの他方入力端
には前記サブクロック発振器16から出力されるサブク
ロック信号が供給されている。前記スイッチ17l〜1
7pは例えばMOSトランジスタ又はトランスファーゲ
ートにより構成される。前記スイッチ17l、17m、
17n、17o、17pは前記サブクロック発振器16
から出力されるサブクロック信号により順次制御され
る。前記スイッチ17lは制御信号を発生する機能を有
している。
The signals of the respective bits of the registers 17a to 17e are supplied to OR circuits 17f, 17g, 17h and 17i. The output signals of these OR circuits 17f to 17i are connected to the switches 17m and 17m constituting the switch circuit 17k.
n, 17o, 17p. Further, the switch circuit 17k has a switch 17l. The power supply Vss is supplied to the input terminal of the switch 17l, and the output terminal is connected to the switches 17m, 17n, 17o,
The output terminal 7p and the inverting input terminal of the AND circuit 17q are connected together. The subclock signal output from the subclock oscillator 16 is supplied to the other input terminal of the AND circuit 17q. The switches 17l to 1
7p is composed of, for example, a MOS transistor or a transfer gate. The switches 17l, 17m,
17n, 17o and 17p are the sub-clock oscillators 16
Are sequentially controlled by the sub-clock signal output from. The switch 171 has a function of generating a control signal.

【0020】上記構成において、スイッチ17p、17
o、17n、17mの入力端に供給されている信号が、
例えば全て“1”である場合、サブクロック信号に応じ
てスイッチ17p、17o、17n、17mが順次オン
とされると、スイッチ17p、17o、17n、17m
の出力端はハイレベルとなる。このため、アンド回路1
7qから出力されるクロック信号CLKは、図5に示す
ように、ローレベルとなる。この後、スイッチ17lが
オンとされ、このスイッチ17lから出力される制御信
号がローレベルとなると、アンド回路17qからハイレ
ベルのクロック信号CLKが出力される。以下、サブク
ロック信号に応じてスイッチ17p、17o、17n、
17m、17lが順次オンとされる。
In the above configuration, the switches 17p, 17
o, the signal supplied to the input terminal of 17n, 17m,
For example, if all of them are "1", and the switches 17p, 17o, 17n, and 17m are sequentially turned on in accordance with the subclock signal, the switches 17p, 17o, 17n, and 17m are turned on.
Is at a high level. Therefore, the AND circuit 1
The clock signal CLK output from 7q becomes low level as shown in FIG. Thereafter, the switch 17l is turned on, and when the control signal output from the switch 17l goes low, the AND circuit 17q outputs a high-level clock signal CLK. Hereinafter, the switches 17p, 17o, 17n,
17m and 17l are sequentially turned on.

【0021】このように、スイッチ17p、17o、1
7n、17mの入力端に供給されている信号が全て
“1”である場合、現在の処理において最も長時間を要
する命令1のメモリアクセス(M)に対応して、クロッ
ク信号CLKの周期がサブクロック信号の周期の5倍と
される。以下、同様にしてプロセッサの動作サイクル毎
に各命令のうち最長の時間を要するステージに対応して
クロック信号CLKの周期が設定される。
As described above, the switches 17p, 17o, 1
When the signals supplied to the input terminals of 7n and 17m are all “1”, the cycle of the clock signal CLK is set to the sub-cycle corresponding to the memory access (M) of the instruction 1 which requires the longest time in the current processing. It is set to five times the period of the clock signal. Hereinafter, similarly, the cycle of the clock signal CLK is set corresponding to the stage requiring the longest time among the instructions for each operation cycle of the processor.

【0022】上記クロック生成回路17から供給される
クロック信号CLKは、前記プログラムカウンタ12、
命令メモリ13、命令レジスタ14、命令デコーダ1
5、算術演算ユニット18、データキャッシュ19、レ
ジスタ20にそれぞれ供給され、このクロック信号CL
Kの基づいて各ステージの動作が実行される。
The clock signal CLK supplied from the clock generation circuit 17 is supplied to the program counter 12,
Instruction memory 13, instruction register 14, instruction decoder 1
5, the arithmetic operation unit 18, the data cache 19, and the register 20, respectively.
The operation of each stage is executed based on K.

【0023】図6は、命令0〜命令4とプロセッサの処
理サイクルの関係を示している。図6から明らかなよう
に、プロセッサの処理サイクルは同時に実行される命令
のステージに応じて変化している。すなわち、この実施
例の場合、各サイクルの時間が従来のようにワーストサ
イクルに規定されていない。したがって、プロセッサの
全体的な処理時間を短縮できる。
FIG. 6 shows the relationship between instructions 0 to 4 and the processing cycle of the processor. As is apparent from FIG. 6, the processing cycle of the processor changes according to the stage of the instruction executed at the same time. That is, in the case of this embodiment, the time of each cycle is not defined as the worst cycle as in the related art. Therefore, the overall processing time of the processor can be reduced.

【0024】尚、図6において、例えば最も長時間を要
するサイクル4が、命令1の実行ステージ(E)により
規定されていると仮定する。この場合、他の命令のステ
ージ(M)(D)(F)は、命令1の実行ステージ
(E)の処理が終了する以前に終了している。図6にお
いて、斜線部は、命令1の処理終了を待つ待ち時間を示
している。
In FIG. 6, it is assumed that, for example, cycle 4 requiring the longest time is defined by the execution stage (E) of instruction 1. In this case, the stages (M), (D), and (F) of the other instructions are completed before the processing of the execution stage (E) of the instruction 1 is completed. In FIG. 6, a hatched portion indicates a waiting time to wait for the processing of the instruction 1 to be completed.

【0025】上記実施例によれば、各命令に、各命令の
処理ステージに必要なクロック数を設定し、クロック生
成回路17は、命令デコーダ15から供給される前記ク
ロック数に基づいて、パイプライン処理される一連の命
令のうち、最長の時間を要するステージに応じてクロッ
ク信号CLKを発生している。このため、クロック信号
CLKの周期が同時に実行される命令に応じて可変され
るため、例えば同時に実行される命令のステージが処理
時間が短いステージのみで構成される場合、この処理サ
イクルを短時間に終了することができる。したがって、
プロセッサの全体的な処理時間を短縮できる。
According to the above embodiment, the number of clocks required for the processing stage of each instruction is set for each instruction, and the clock generation circuit 17 performs the pipeline based on the number of clocks supplied from the instruction decoder 15. The clock signal CLK is generated according to the stage requiring the longest time in a series of instructions to be processed. For this reason, since the cycle of the clock signal CLK is changed according to the instruction executed at the same time, for example, when the stage of the instruction executed at the same time is constituted only by the stage having a short processing time, this processing cycle can be shortened. Can be terminated. Therefore,
The overall processing time of the processor can be reduced.

【0026】また、ワースト時間を有する命令が希にし
か使用されない場合、この命令を高速にする必要がな
い。このため、この希にしか使用されない命令を高速化
するために再設計する必要がないため、開発労力及び開
発コストを削減することが可能である。
When an instruction having the worst time is rarely used, it is not necessary to increase the speed of the instruction. For this reason, it is not necessary to redesign the rarely used instructions in order to increase the speed, and thus it is possible to reduce development effort and development cost.

【0027】尚、上記実施例では、各命令に予め各ステ
ージのクロック数を設定した場合について説明したが、
これに限定されるものではない。
In the above embodiment, the case where the number of clocks of each stage is set in advance for each instruction has been described.
It is not limited to this.

【0028】図7は、前記命令メモリ13においてクロ
ック数を付加する例を示している。この例の場合、例え
ばROM51には各命令のコマンドをアドレスとして、
各命令の各ステージに応じたクロック数が記憶されてい
る。命令メモリを構成する命令キャッシュメモリ52と
例えばダイナミックRAMからなる主記憶装置53の相
互間には前記ROM51の読み出し回路54が接続され
ている。
FIG. 7 shows an example in which the number of clocks is added in the instruction memory 13. In the case of this example, for example, the command of each instruction is
The number of clocks corresponding to each stage of each instruction is stored. A read circuit 54 of the ROM 51 is connected between an instruction cache memory 52 constituting the instruction memory and a main storage device 53 composed of, for example, a dynamic RAM.

【0029】上記構成において、プログラムカウンタの
動作に応じて、命令キャッシュメモリ52がアクセスさ
れる。この際、命令キャッシュメモリ52においてミス
ヒットした場合、主記憶装置53がアクセスされ、この
主記憶装置53から対応する命令が読み出される。この
読み出された命令は、命令キャッシュメモリ52に記憶
される。
In the above configuration, the instruction cache memory 52 is accessed according to the operation of the program counter. At this time, if a miss occurs in the instruction cache memory 52, the main storage device 53 is accessed, and the corresponding instruction is read from the main storage device 53. The read instruction is stored in the instruction cache memory 52.

【0030】また、前記主記憶装置53から命令が読み
出されると、読み出し回路54により、この読み出され
た命令のコマンドをアドレスとしてROM51に記憶さ
れた対応する命令のクロック数が読み出される。この読
み出されたクロック数は命令キャッシュメモリ52に供
給され、前記読み出された命令に付加される。以下の動
作は、上記実施例と同様である。
When an instruction is read from the main storage device 53, the read circuit 54 reads the clock number of the corresponding instruction stored in the ROM 51 using the read instruction command as an address. The read clock number is supplied to the instruction cache memory 52 and added to the read instruction. The following operation is the same as in the above embodiment.

【0031】図8は、前記命令レジスタ14と命令デコ
ーダ15の間でクロック数を付加する場合を示してい
る。例えばROM61には前記ROM51と同様に、各
命令のコマンドをアドレスとして、各命令の各ステージ
に応じたクロック数が記憶されている。命令レジスタ1
4と命令デコーダ15の相互間には前記ROM61の読
み出し回路62が接続されている。
FIG. 8 shows a case where the number of clocks is added between the instruction register 14 and the instruction decoder 15. For example, similarly to the ROM 51, the ROM 61 stores the number of clocks corresponding to each stage of each instruction using the command of each instruction as an address. Instruction register 1
The read circuit 62 of the ROM 61 is connected between the instruction decoder 4 and the instruction decoder 15.

【0032】上記構成において、命令レジスタ14から
命令デコーダ15に命令が転送される際、読み出し回路
62により、この転送された命令のコマンドをアドレス
としてROM61に記憶された対応する命令のクロック
数が読み出される。この読み出されたクロック数は命令
デコーダ15に供給され、このクロック数が前記転送さ
れた命令に付加される。これ以降の動作は、上記実施例
と同様である。
In the above configuration, when an instruction is transferred from the instruction register 14 to the instruction decoder 15, the read circuit 62 reads the clock number of the corresponding instruction stored in the ROM 61 using the transferred instruction command as an address. It is. The read clock number is supplied to the instruction decoder 15, and the clock number is added to the transferred instruction. Subsequent operations are the same as in the above embodiment.

【0033】図7、図8に示す構成とすれば、命令の読
み出し時や転送時にクロック数が付加され、命令自体に
はクロック数が設けられていないため、命令セットの構
成を簡略化することが可能である。また、実施のプロセ
ッサのスピードを評価した上でROM51、61にクロ
ック数を設定することにより、最適なクロック数を設定
できる利点を有している。
With the configuration shown in FIGS. 7 and 8, the number of clocks is added at the time of reading or transferring an instruction, and the number of clocks is not provided in the instruction itself. Therefore, the configuration of the instruction set can be simplified. Is possible. Further, by setting the number of clocks in the ROMs 51 and 61 after evaluating the speed of the processor to be implemented, there is an advantage that the optimum number of clocks can be set.

【0034】尚、図7、図8において、クロック数を記
憶する手段は、ROMに限定されるものではなく、RA
M等のメモリを適用可能である。
In FIGS. 7 and 8, the means for storing the number of clocks is not limited to a ROM.
A memory such as M can be applied.

【0035】その他、本発明の要旨を変えない範囲にお
いて種々変形実施可能なことは勿論である。
Of course, various modifications can be made without departing from the spirit of the present invention.

【0036】[0036]

【発明の効果】以上、詳述したように本発明によれば、
ワーストのサイクル時間を短縮することなく、全体の処
理に必要な時間を短縮でき、高速動作が可能なパイプラ
イン・プロセッサを提供できる。
As described in detail above, according to the present invention,
The time required for the entire processing can be reduced without reducing the worst cycle time, and a pipeline processor capable of high-speed operation can be provided.

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

【図1】図1は本発明の実施例を示す回路構成図。FIG. 1 is a circuit diagram showing an embodiment of the present invention.

【図2】図2は本発明に適用される命令の一例を示す
図。
FIG. 2 is a diagram showing an example of an instruction applied to the present invention.

【図3】図1に示す命令デコーダの動作を説明するため
に示す図。
FIG. 3 is a view for explaining an operation of the instruction decoder shown in FIG. 1;

【図4】図1に示すクロック発生回路の一例を示す回路
図。
FIG. 4 is a circuit diagram illustrating an example of a clock generation circuit illustrated in FIG. 1;

【図5】図4の動作を示す波形図。FIG. 5 is a waveform chart showing the operation of FIG.

【図6】図1の動作を説明するために示す図。FIG. 6 is a view for explaining the operation of FIG. 1;

【図7】図1に示す命令メモリの変形例を示す構成図。FIG. 7 is a configuration diagram showing a modified example of the instruction memory shown in FIG. 1;

【図8】図1に示す命令デコーダの変形例を示す構成
図。
FIG. 8 is a configuration diagram showing a modification of the instruction decoder shown in FIG. 1;

【図9】従来のパイプライン・プロセッサの動作を説明
するための図。
FIG. 9 is a diagram for explaining the operation of a conventional pipeline processor.

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

11…パイプライン・プロセッサ、 12…プログラムカウンタ、 13…命令メモリ、 14…命令レジスタ、 15…命令デコーダ、 16…サブクロック発振器、 17…クロック発生回路、 18…ALU、 19…データキャッシュ、 20…レジスタ、 51、61…ROM、 54、62…読み出し回路。 DESCRIPTION OF SYMBOLS 11 ... Pipeline processor, 12 ... Program counter, 13 ... Instruction memory, 14 ... Instruction register, 15 ... Instruction decoder, 16 ... Subclock oscillator, 17 ... Clock generation circuit, 18 ... ALU, 19 ... Data cache, 20 ... Registers 51, 61 ROM, 54, 62 read circuit.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 複数のステージを有し、複数の命令が1
ステージずつずれて同時に実行されるパイプライン・プ
ロセッサであって、 前記複数の命令の前記同時に実行される異なるステージ
にそれぞれ設定された処理に必要な時間を示す時間情報
のうち、最大の時間情報を選択する選択回路と、 前記パイプライン・プロセッサの動作周波数より高い周
波数のサブクロック信号を用いて前記選択回路により選
択された時間情報からクロック信号を生成するクロック
信号生成回路とを具備することを特徴とするパイプライ
ン・プロセッサ。
1. A method comprising: a plurality of stages;
A pipeline processor which is simultaneously executed while being shifted by stages, wherein the maximum time information among the time information indicating the time required for the processes respectively set in the different stages to be simultaneously executed of the plurality of instructions is set as the maximum time information. A selecting circuit for selecting, and a clock signal generating circuit for generating a clock signal from time information selected by the selecting circuit using a subclock signal having a frequency higher than an operating frequency of the pipeline processor. And a pipeline processor.
【請求項2】 前記時間情報を各命令のコマンドをアド
レスとして記憶するメモリと、 前記命令の読み出し時に、読み出された命令のコマンド
をアドレスとして前記メモリに記憶された時間情報を読
み出し、前記読み出された命令に付加する付加回路とを
さらに具備することを特徴とする請求項1記載のパイプ
ライン・プロセッサ。
2. A memory for storing the time information as a command of each instruction as an address, and at the time of reading the instruction, reading the time information stored in the memory using the command of the read instruction as an address. 2. The pipeline processor according to claim 1, further comprising an additional circuit for adding the issued instruction.
【請求項3】 前記時間情報を各命令のコマンドをアド
レスとして記憶するメモリと、 前記命令のデコード時に、デコードされる命令のコマン
ドをアドレスとして前記メモリに記憶された時間情報を
読み出し、前記デコードされる命令に付加する付加回路
とをさらに具備することを特徴とする請求項1記載のパ
イプライン・プロセッサ。
3. A memory for storing the time information as a command of each instruction as an address, and at the time of decoding the instruction, reading the time information stored in the memory with the command of the decoded instruction as an address. 2. The pipeline processor according to claim 1, further comprising an additional circuit for adding an instruction to the instruction.
JP11071603A 1999-03-17 1999-03-17 Pipeline processor Pending JP2000267849A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11071603A JP2000267849A (en) 1999-03-17 1999-03-17 Pipeline processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11071603A JP2000267849A (en) 1999-03-17 1999-03-17 Pipeline processor

Publications (1)

Publication Number Publication Date
JP2000267849A true JP2000267849A (en) 2000-09-29

Family

ID=13465409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11071603A Pending JP2000267849A (en) 1999-03-17 1999-03-17 Pipeline processor

Country Status (1)

Country Link
JP (1) JP2000267849A (en)

Similar Documents

Publication Publication Date Title
US5056004A (en) Program control system which simultaneously executes a program to be repeated and decrements repetition numbers
US4870562A (en) Microcomputer capable of accessing internal memory at a desired variable access time
KR970066864A (en) Variable pipeline singular data processing unit
CN100538623C (en) A kind of 8 8-digit microcontrollers
US5504923A (en) Parallel processing with improved instruction misalignment detection
US5909588A (en) Processor architecture with divisional signal in instruction decode for parallel storing of variable bit-width results in separate memory locations
JPH1091430A (en) Instruction decoding device
JP2000267849A (en) Pipeline processor
US5572479A (en) Semiconductor integrated circuit having a synchronous type memory
JPH0844560A (en) Memory control circuit and integrated circuit element incorporating this circuit
US5301307A (en) Microprocessor having waiting function
JP2000020309A (en) Digital signal processor
JP5414323B2 (en) Semiconductor integrated circuit device
JPH1020959A (en) Low power consumption micro processor
US5768554A (en) Central processing unit
JP2001109657A (en) Address generating circuit
JP2002116951A (en) Address generation circuit
JPH06103152A (en) Central processing unit
JPH0792902A (en) Programmable controller
JPH08106383A (en) Arithmetic processor
JPH05173779A (en) Digital arithmetic integrated circuit
JP2004086374A (en) Semiconductor device
JPS5932819B2 (en) address control device
JP2003122628A (en) Digital signal processor, program converter and communication system having digital signal processor
JPH0877003A (en) Dsp program parallel process controller