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

JPS6359175B2 - - Google Patents

Info

Publication number
JPS6359175B2
JPS6359175B2 JP58143371A JP14337183A JPS6359175B2 JP S6359175 B2 JPS6359175 B2 JP S6359175B2 JP 58143371 A JP58143371 A JP 58143371A JP 14337183 A JP14337183 A JP 14337183A JP S6359175 B2 JPS6359175 B2 JP S6359175B2
Authority
JP
Japan
Prior art keywords
instruction
processing
stage
timing
execution
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
Application number
JP58143371A
Other languages
Japanese (ja)
Other versions
JPS6033635A (en
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 filed Critical
Priority to JP14337183A priority Critical patent/JPS6033635A/en
Publication of JPS6033635A publication Critical patent/JPS6033635A/en
Publication of JPS6359175B2 publication Critical patent/JPS6359175B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔発明の属する技術分野〕 本発明は、複数の命令を並列に実行するデータ
処理装置のパイプライン制御方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Technical field to which the invention pertains] The present invention relates to a pipeline control method for a data processing device that executes a plurality of instructions in parallel.

〔従来技術〕[Prior art]

マイクロコンピユータの如きデータ処理装置に
おいては、処理速度の高速化を達成するために、
動作クロツクを高める方法と、内部の制御方式を
改善する方法の2通りの手段がとられている。こ
のうち、動作クロツクを高める方法は、デバイス
技術に大きく依存しデバイス技術の改善に伴なつ
てせいぜい10%程度の高速化が達成させるにとど
まる。このため性能を抜本的に改善する場合には
パイプライン制御などの新しい内部の制御方式を
採用して対応している。
In data processing devices such as microcomputers, in order to achieve faster processing speed,
Two methods have been taken: increasing the operating clock and improving the internal control system. Among these methods, the method of increasing the operating clock largely depends on device technology, and as device technology improves, the speed can only be increased by about 10% at most. For this reason, new internal control methods such as pipeline control are adopted to dramatically improve performance.

パイプライン制御方式では、1つの命令の実行
で行なわれる一連の処理をいくつかの基本処理に
分割し、これらの基本処理毎にそれぞれの処理を
逐行するのに必要な専用ハードウエアを備えた複
数個の機能ユニツトを用意する。これらの機能ユ
ニツトを処理順序に従つて連続的に動作させる事
により、全体の処理速度の向上をはかるもので、
処理速度の向上によく使われている方法である。
In the pipeline control method, a series of processing performed by executing one instruction is divided into several basic processes, and the dedicated hardware necessary to perform each of these basic processes one by one is provided. Prepare multiple functional units. By operating these functional units continuously according to the processing order, the overall processing speed is improved.
This is a method often used to improve processing speed.

従来使用されているパイプライン制御方式を説
明する。まず第1図のブロツク図において、本従
来例における中央処理装置(以下、CPUとい
う。)が持つ3個の機能ユニツトの機能を説明す
る。バスインタフエース部1−1はメモリから命
令コードの読出しや、データの書込み読出しを行
ない、オペランドアドレス計算部1−2はメモリ
参照時、メモリのアドレス修飾を行ない、実行部
1−3は各種の転送、演算処理を行なう。
A conventionally used pipeline control method will be explained. First, referring to the block diagram of FIG. 1, the functions of three functional units of a central processing unit (hereinafter referred to as CPU) in this conventional example will be explained. The bus interface unit 1-1 reads instruction codes from memory, writes and reads data, the operand address calculation unit 1-2 modifies memory addresses when referencing memory, and the execution unit 1-3 performs various functions. Performs transfer and calculation processing.

第2図は、第1図に示した3個の機能ユニツト
から構成されるCPUのメモリ間の演算命令の動
作図である。これは、1つの命令の実行に際し、
各機能ユニツトがどのように使葉われてゆくかを
あらかじめ定められた時間単位(以下、ステージ
という。)に時間を追つて示したもので、各ステ
ージの長さは固定されている。すなわち、各機能
ユニツトは以下の順序で所定の動作を行う。
FIG. 2 is an operational diagram of arithmetic instructions between memories of a CPU composed of the three functional units shown in FIG. This means that when executing one instruction,
It shows how each functional unit is used over time in predetermined time units (hereinafter referred to as stages), and the length of each stage is fixed. That is, each functional unit performs a predetermined operation in the following order.

TA1の最初のステージの期間;バスインタフエー
ス部1−1で命令コードの読出しを行なう。
First stage period of T A1 : The bus interface section 1-1 reads out the instruction code.

TA2の2番目のステージの期間;実行部1−3で
命令の解読を行う。
Second stage period of T A2 : The execution unit 1-3 decodes the instruction.

TA3の3番目のステージの期間;オペランドアド
レス計算部1−2でメモリ参照時のアドレス修
飾を行なう。
Third stage period of T A3 : The operand address calculation unit 1-2 modifies the address when referring to the memory.

TA4の4番目のステージの期間;バスインタフエ
ース部1−1において、メモリからのデータの
読出しを行なう。
Fourth stage period of T A4 : The bus interface section 1-1 reads data from the memory.

TA5の5番目のステージの期間;実行部1−3で
演算処理を行なう。
Fifth stage period of T A5 : The execution unit 1-3 performs arithmetic processing.

TA6の6番目のステージの期間;バスインタフエ
ース部1−1で、演算結果をメモリへ格納す
る。
Period of the 6th stage of T A6 : The bus interface unit 1-1 stores the calculation result in the memory.

本従来例で説明するCPUは、他にも多くの命
令を持ち様々な処理が可能であるが、1つの命令
に対して機能ユニツトが使われる順序はどれも等
しく、従つて、すべての命令は、第2図の動作図
に示す通りに各機能ユニツトが使われ処理が進め
られる。
The CPU described in this conventional example has many other instructions and is capable of various processing, but the order in which functional units are used for one instruction is the same, so all instructions are , each functional unit is used and processing proceeds as shown in the operational diagram of FIG.

次に第2図の動作図に示す様な6個のステージ
から構成される動作図を持つ命令をパイプライン
制御で処理するときの制御方法を説明する。
Next, a control method will be described when an instruction having an operation diagram consisting of six stages as shown in the operation diagram of FIG. 2 is processed by pipeline control.

命令の処理をパイプライン式に進める際に問題
になるのは、1つの命令を実行中に次の命令の実
行を開始するタイミングである。
When processing instructions in a pipeline manner, a problem arises in the timing of starting execution of the next instruction while one instruction is being executed.

第3図a〜fの動作図は、1つの命令の実行中
に次の命令を開始するステージ毎の各ユニツトの
動作状態を示したものである。この第3図a〜f
の動作図に示す通り、Bの命令を実行中に、第3
図bに示すタイミングで次のA命令を開始する
と、バスインタフエース部1−1のTB6のステー
ジで、又、第3図cに示すタイミングでは、バス
インタフエース部1−1のTB4ステージと実行部
1−3のTB5ステージで、又、第3図eに示すタ
イミングでは、バスインタフエース部1−1の
TB6のステージで、それぞれ命令Aにおける処理
と命令Bにおける処理が衝突する。
The operation diagrams in FIGS. 3a to 3f show the operating state of each unit at each stage when one instruction is being executed and the next instruction is started. This figure 3 a-f
As shown in the operation diagram, while executing the instruction B, the third
When the next A instruction is started at the timing shown in FIG . and at the T B5 stage of the execution unit 1-3, and at the timing shown in Figure 3e, the bus interface unit 1-1
At stage T B6 , the processing in instruction A and the processing in instruction B conflict.

第4図の衝突図は、第3図aから第3図fに示
した次の命令の各起動タイミングに対応して命令
の実行中に機能ユニツト内で衝突が発生するかど
うかを示したものである。衝突図の各例は次の命
令の開始タイミングを示し、表内の0はそのタイ
ミングで次の命令を開始しても衝突がなく、パイ
プライン動作が正常に維持される事を、1はその
タイミングで次の命令を開始したら必らず機能ユ
ニツト内で、前の命令と次の命令の処理が衝突
し、パイプラインの正常動作が継続できない事を
表わしている。
The collision diagram in Figure 4 shows whether or not a collision occurs within the functional unit during the execution of an instruction corresponding to each activation timing of the next instruction shown in Figures 3a to 3f. It is. Each example in the collision diagram indicates the start timing of the next instruction, and 0 in the table indicates that there will be no collision even if the next instruction is started at that timing, and the pipeline operation will be maintained normally. If the next instruction starts at the right timing, the processing of the previous instruction and the next instruction will inevitably conflict within the functional unit, indicating that normal operation of the pipeline cannot continue.

本従来例の第4図の衝突図では1つの命令の実
行中tA1,tA4,tA6のタイミングで、次の命令を開
始すれば衝突はないが、tA2,tA3,tA5では衝突が
発生する。この衝突図に基づいて、パイプライン
制御で最も重要な次の命令の開始タイミングが決
定される。
In the collision diagram of FIG. 4 of this conventional example, there is no collision if the next instruction is started at timings t A1 , t A4 , and t A6 during the execution of one instruction, but at t A2 , t A3 , and t A5 . A collision occurs. Based on this collision diagram, the start timing of the next instruction, which is most important in pipeline control, is determined.

次に第5図に示すパイプライン制御回路のブロ
ツク図で、次の命令の開始タイミングを決定する
ハードウエア構成及び動作を説明する。
Next, the hardware configuration and operation for determining the start timing of the next instruction will be explained using the block diagram of the pipeline control circuit shown in FIG.

レジスタ5−1−0からレジスタ5−1−5
は、第4図の衝突図に示したパイプライン処理中
に衝突が発生するかどうかのデータを保持する。
この6個のレジスタ5−1−5からレジスタ5−
1−0でシフトレジスタ5−1を構成する。
Register 5-1-0 to register 5-1-5
holds data on whether a collision occurs during pipeline processing shown in the collision diagram of FIG.
These six registers 5-1-5 to 5-
1-0 constitutes a shift register 5-1.

シフトクロツク5−2は各ステージにおける処
理が終了する毎にアクテイブになりシフトレジス
タ5−1内のデータを左シフトする。シフトレジ
スタ5−1の最終出力であるレジスタ5−1−5
の出力は命令開始信号5−3で、パイプライン制
御における次の命令の開始を制御する。“0”な
らば次の命令を起動し“1”ならば起動しない。
初期衝突データ発生回路5−4は、次の命令が開
始されたときに、シフトレジスタ5−1内のデー
タを補正するのに使用される。組みゲート5−5
は、命令開始信号5−3の制御でシフトレジスタ
5−1内の次の段のレジスタへ入力するデータを
選択するもので、命令開始信号5−3が“0”な
らば、シフトレジスタ5−1内の各レジスタのデ
ータと初期衝突データ発生回路5−4の対応する
ビツトの論理和が次段のレジスタに入力する。
“1”ならば、各レジスタ内のデータが単純に次
段のレジスタに入力する。
The shift clock 5-2 becomes active every time the processing at each stage is completed and shifts the data in the shift register 5-1 to the left. Register 5-1-5 which is the final output of shift register 5-1
The output is an instruction start signal 5-3, which controls the start of the next instruction in pipeline control. If it is "0", the next instruction will be activated; if it is "1", it will not be activated.
The initial collision data generation circuit 5-4 is used to correct the data in the shift register 5-1 when the next instruction is started. Assembled gate 5-5
selects the data to be input to the next stage register in the shift register 5-1 under the control of the instruction start signal 5-3.If the instruction start signal 5-3 is "0", the data to be input to the next stage register in the shift register 5-1 is selected. The logical sum of the data in each register in 1 and the corresponding bit of the initial collision data generation circuit 5-4 is input to the next stage register.
If it is "1", the data in each register is simply input to the next register.

第6図の動作図は、第5図のレジスタ5−1−
5からレジスタ5−1−0までのレジスタで構成
されるシフトレジスタ5−1のデータ保持状態を
ステージ毎に表わしたものである。初期状態で
は、レフトレジスタ5−1内には、第4図の衝突
図に示された“0”、“1”、“1”、“0”、“1”

“0”がこの順に格納されている。最初の命令が
実行されると、その最初の第1ステージで、シフ
トレジスタ5−1の最終出力である命令開始信号
5−3の状態をチエツクする。この信号の状態が
“0”なので、次の第2ステージで、次命令をた
だちに開始する。同時に新しく命令が開始された
事により衝突図の補正が必要となり、組みゲート
5−5の制御で初期衝突データ発生回路5−4で
補正された衝突データが左シフトされ、これによ
り、シフトレジスタ5−1の内容は、第6図の第
2ステージに示すデータとなる。第2ステージ内
で再び、命令開始信号5−3の状態をチエツクす
る。今度は“1”なので、次の第3ステージは第
3の命令の起動はしない。又、組みゲート5−5
の制御で、シフトレジスタ5−1内で単純にデー
タの左シフトを行なう。以下同様に、各ステージ
の期間で命令開始信号5−3の状態をチエツク
し、上に記した処理をくりかえす。
The operation diagram in FIG. 6 is based on the register 5-1- in FIG.
The data holding state of the shift register 5-1, which is composed of registers 5 to 5-1-0, is expressed for each stage. In the initial state, the left register 5-1 contains "0", "1", "1", "0", "1" as shown in the collision diagram of FIG.
,
“0” is stored in this order. When the first instruction is executed, in the first stage, the state of the instruction start signal 5-3, which is the final output of the shift register 5-1, is checked. Since the state of this signal is "0", the next instruction is immediately started in the next second stage. At the same time, since a new command is started, it becomes necessary to correct the collision diagram, and the collision data corrected by the initial collision data generation circuit 5-4 is shifted to the left under the control of the assembly gate 5-5. The contents of -1 become the data shown in the second stage of FIG. In the second stage, the state of the command start signal 5-3 is checked again. Since it is "1" this time, the third instruction will not be activated in the next third stage. Also, assembled gate 5-5
Under the control of , the data is simply shifted to the left within the shift register 5-1. Similarly, the state of the command start signal 5-3 is checked during each stage, and the above-described process is repeated.

以上説明した通り、従来のパイプライン制御方
式は複雑な制御アルゴリズムに基づいた特殊な制
御回路を使用している。
As explained above, the conventional pipeline control method uses a special control circuit based on a complicated control algorithm.

CPUが持つすべての命令のステージ毎の各機
能ユニツトの処理手順を、すべて同一としてすべ
ての命令が同一の動作図を持つため、レジスタ間
転送といつた簡単な命令からメモリ間の演算の様
な複雑な命令を持つデータ処理装置へは応用が難
しいという第1の大きな欠点がある。
The processing steps of each functional unit for each stage of all instructions in the CPU are all the same, and all instructions have the same operation diagram, so it is possible to perform operations ranging from simple instructions such as register-to-register transfer to memory-to-memory operations. The first major drawback is that it is difficult to apply to data processing devices with complex instructions.

又、各ステージの処理時間が一律に定められた
方式のため、1ステージの処理時間を伸ばして、
1つの機能ユニツト内での処理量を高める事が容
易でなく、パイプラインの融通性に欠けるという
第2の欠点がある。
In addition, since the processing time for each stage is fixed uniformly, the processing time for one stage can be extended,
The second drawback is that it is difficult to increase the amount of processing within one functional unit, and the pipeline lacks flexibility.

特に、バスとのインタフエース部ではメモリの
アクセス時間が長い場合には、1ステージ処理時
間内にメモリの参照が完了せず、このためこの部
分だけを特別にパイプライン処理からはずした
り、又は、使用するメモリを高速メモリに限ると
いつた様々な制約がつくという第3の欠点があ
る。
In particular, if the memory access time is long in the interface part with the bus, the memory reference will not be completed within the processing time of one stage, so this part may be specially removed from pipeline processing, or The third drawback is that there are various restrictions such as limiting the memory used to high-speed memory.

更にこのパイプライン制御方式を、マイクロコ
ンピユータに応用すると、パイプライン制御用回
路が必要なため、回路を複雑するばかりでなくチ
ツプサイズを大きくするという第4の欠点があ
る。
Furthermore, when this pipeline control method is applied to a microcomputer, a pipeline control circuit is required, which has the fourth disadvantage of not only complicating the circuit but also increasing the chip size.

〔発明の目的〕[Purpose of the invention]

本発明の目的は、上記の諸欠点を取り除き、マ
イクロコンピユータに最も適したパイプライン制
御方式を提供する事にある。
An object of the present invention is to eliminate the above-mentioned drawbacks and provide a pipeline control system most suitable for microcomputers.

〔発明の構成〕[Structure of the invention]

本発明によるパイプライン制御方式は、複数の
相異なる処理をそれぞれ行なう複数の機能ユニツ
トであつて実行すべき命令の処理手順に応じて同
じ機能ユニツトが同一の命令に対し異なる時間に
違う処理を行なうように構成された複数の機能ユ
ニツトと、実行中の命令のデータと次に実行すべ
き命令のデータとが衝突しないように実行中の命
令のどの処理手順において次の命令の実行を開始
させるかを指定するタイミング信号を発生するタ
イミング制御手段と、前記複数の機能ユニツトの
それぞれに対応して設けられ当該機能ユニツトの
処理の完了状態を保持する複数の保持手段と、こ
れら保持手段のすべてが処理完了状態を保持する
ことに応答して各機能ユニツトに対し処理開始信
号を送出し各機能ユニツトが次の処理を同時に開
始するように制御する処理開始制御手段と、前記
タイミング信号に応答し次の命令の実行を前記処
理開始信号に同期して開始させる手段とを備える
ことを特徴とする。
The pipeline control method according to the present invention has a plurality of functional units each performing a plurality of different processes, and the same functional unit performs different processes on the same instruction at different times depending on the processing procedure of the instruction to be executed. In order to avoid conflicts between the data of the instruction being executed and the data of the next instruction to be executed, at what processing step of the instruction being executed should the execution of the next instruction be started? a timing control means that generates a timing signal specifying a timing signal; a plurality of holding means provided corresponding to each of the plurality of functional units and holding the completion status of the processing of the functional unit; a processing start control means that sends a processing start signal to each functional unit in response to maintaining the completion state and controls each functional unit to start the next processing at the same time; The method is characterized by comprising means for starting execution of an instruction in synchronization with the processing start signal.

〔実施例の説明〕[Explanation of Examples]

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

第7図は本発明の一実施例を適用したCPUの
ブロツク図である。
FIG. 7 is a block diagram of a CPU to which an embodiment of the present invention is applied.

CPUが、命令実行手順に従つて分けられた3
つの相位なる基本処理を専門に実行する3個の機
能ユニツト、バスインタフエース部7−1、オペ
ランド計算部7−2、実行部7−3と、実行中の
命令の次の命令の実行開始タイミングをすべての
命令にわたつて制御するタイミング制御手段とし
てのタイミング記憶部7−8と、前記機能ユニツ
ト毎にそれぞれ前記基本処理の完了状態を保持す
る保持手段としての第1、第2、第3のステージ
終了フリツプフロツプ(以下、ステージ終了F/
Fという。)7−4,7−5,7−6と、この保
持手段の保持状態に対応して前記機能ユニツトに
前記基本処理の開始信号を送出する処理開始制御
手段としてのANDゲート7−7とを備え、第1、
第2、第3のステージ終了F/F7−4,7−
5,7−6が前記基本処理の完了状態を保持する
ことに同期してANDゲート7−7から送出され
る命令開始信号7−7′によりバスインタフエー
ス部7−1、オペランド計算部7−2、実行部7
−3のすべてが前記命令実行手順に従つて次の基
本処理を同時に開始すると共にタイミング記憶部
7−8からのタイミング信号7−8′より所定の
次の命令の実行を起動させることから構成され
る。
CPU is divided according to instruction execution procedure 3
Three functional units that specialize in executing three phased basic processes: a bus interface section 7-1, an operand calculation section 7-2, an execution section 7-3, and the execution start timing of the next instruction after the instruction currently being executed. a timing storage section 7-8 as a timing control means for controlling the basic processing over all instructions, and a first, second, and third storage section as holding means for holding the completion state of the basic processing for each functional unit. Stage end flip-flop (hereinafter referred to as stage end F/
It's called F. ) 7-4, 7-5, 7-6, and an AND gate 7-7 as processing start control means for sending a start signal of the basic processing to the functional unit in accordance with the holding state of the holding means. Preparation, first,
2nd and 3rd stage end F/F7-4,7-
5 and 7-6 maintain the completed state of the basic processing, the bus interface unit 7-1 and the operand calculation unit 7- 2. Execution unit 7
-3 all simultaneously start the next basic process according to the instruction execution procedure, and also start the execution of a predetermined next instruction from the timing signal 7-8' from the timing storage section 7-8. Ru.

なお、タイミング記憶部7−8は本実施例では
バスインタフエース部7−1内に設けてあるが、
これは機能ユニツト外にまとめて設けても良く、
又必要に応じ各機能ユニツト内に分散して設けら
れる。
Note that although the timing storage section 7-8 is provided within the bus interface section 7-1 in this embodiment,
This may be provided outside the functional unit,
Further, they are provided in a distributed manner within each functional unit as necessary.

本実施例は第1図に示した従来例のCPUに適
用したものであり、バスインタフエース部7−
1,オペランドアドレス計算部7−2、実行部7
−3の3個の機能ユニツトは、第1図の従来例の
ブロツク図に示したCPUの各機能ユニツトと同
一の処理を行なう。
This embodiment is applied to the conventional CPU shown in FIG.
1, operand address calculation unit 7-2, execution unit 7
The three functional units No.-3 perform the same processing as each functional unit of the CPU shown in the block diagram of the conventional example in FIG.

第1のステージ終了F/F7−4、バスインタ
フエース部7−1の1ステージ分の処理が完了す
るとセツトされる。第2のステージ終了F/F7
−5は、オペランドアドレス計算部7−2の1ス
テージ分の処理が完了するとセツトされる。第3
のステージ終了F/F7−6は実行部7−3の1
ステージ分の処理が完了するとセツトされる。
The first stage end F/F 7-4 is set when one stage of processing by the bus interface section 7-1 is completed. 2nd stage end F/F7
-5 is set when the operand address calculation unit 7-2 completes one stage of processing. Third
The stage end F/F7-6 is 1 of the execution section 7-3.
It is set when the processing for a stage is completed.

ステージ開始信号7−7′はANDゲート7−7
により得られた、第1、第2、第3のステージ終
了F/F7−4,7−5,7−6の各出力の論理
積で、この信号が入力すると、バスインタフエー
ス部7−1、オペランドアドレス計算部7−2、
実行部7−3の各機能ユニツトは、第1、第2、
第3のステージ終了F/F7−4,7−5,7−
6をリセツトし、同時に次の1ステージ分の処理
を開始する。タイミング記憶部7−8は、あらか
じめ次の信号を衝突なしに開始できるようにセツ
トされたタイミング信号が保持させられており、
所定のタイミングでそのタイミング信号を送出す
る。
Stage start signal 7-7' is AND gate 7-7
When this signal is inputted, the bus interface section 7-1 , operand address calculation unit 7-2,
Each functional unit of the execution section 7-3 includes a first, second,
3rd stage end F/F7-4,7-5,7-
6 and at the same time start processing for the next one stage. The timing storage section 7-8 stores timing signals set in advance so that the next signal can be started without collision.
The timing signal is sent out at a predetermined timing.

第8図aの動作図は、本実施例に基づくCPU
のメモリ間の演算命令の動作図で、各機能ユニツ
ト毎の処理動作は、第2図に示す従来例のものと
TC5の第5ステージを除いて同一である。TC5
第5ステージでは実行部7−3において、バスイ
ンタフエース部7−2で読出されたデータと所定
レジスタとの間での演算のほかに、次の命令を起
動させる。
The operation diagram in Figure 8a shows the CPU based on this embodiment.
This is an operational diagram of arithmetic instructions between memories, and the processing operations for each functional unit are the same as those of the conventional example shown in Figure 2.
Identical except for the fifth stage of T C5 . In the fifth stage of T C5 , the execution unit 7-3 activates the next instruction in addition to the operation between the data read by the bus interface unit 7-2 and a predetermined register.

第8図bは、同様に本実施例に基づくCPUの
レジスタ間の転送命令の動作図で、TD1の最初の
ステージの期間、バスインタフエース部7−1で
命令コードの読出しを行なう。TD2の2番目のス
テージの期間実行部7−3で命令の解読を行な
う。TD3の3番目のステージの期間実行部7−3
でデータの転送を行なうほか、次の命令を起動さ
せる。
FIG. 8b is an operational diagram of a transfer instruction between registers of the CPU based on this embodiment, in which the instruction code is read by the bus interface section 7-1 during the first stage of T D1 . During the second stage of T D2 , the execution unit 7-3 decodes the instruction. Period execution part 7-3 of the third stage of T D3
In addition to transferring data, it also activates the next command.

次に、第9図に示す本実施例のタイミング図を
参照して、第8図a,bの動作図に示した2つの
命令が連続的に処理される場合の動作を説明す
る。
Next, with reference to the timing diagram of this embodiment shown in FIG. 9, the operation when the two instructions shown in the operation diagrams of FIGS. 8a and 8b are successively processed will be described.

tC1のタイミングで命令C(メモリ間の演算命
令)が起動され、同時にオペランドアドレス計算
部7−2、実行部7−3も、TC1の期間1ステー
ジ分の処理を行なう。TC1の終わりまでに各機能
ユニツトは1ステージ分の処理を終え、それぞ
れ、第1、第2、第3のステージ終了F/F7−
4,7−5,7−6をセツトする。これらの出力
の論理積がANDゲート7−7によりステージ開
始信号7−7′となり第1、第2、第3のステー
ジ終了F/F7−4,7−5,7−6をリセツト
すると同時に、次のTC2に相当する第2番目のス
テージの処理を、バスインタフエース部7−1、
オペランドアドレス計算部7−2、実行部7−3
に一斉に起動させる。
At the timing of t C1 , instruction C (inter-memory operation instruction) is activated, and at the same time, the operand address calculation unit 7-2 and the execution unit 7-3 also perform one stage of processing during the period of T C1 . By the end of T C1 , each functional unit has completed one stage of processing, and each functional unit has completed the first, second, and third stages, respectively.
Set 4, 7-5, 7-6. The logical product of these outputs becomes the stage start signal 7-7' by the AND gate 7-7, and at the same time, the first, second, and third stage end F/Fs 7-4, 7-5, and 7-6 are reset. The bus interface unit 7-1 performs the second stage processing corresponding to the next T C2 .
Operand address calculation unit 7-2, execution unit 7-3
start all at once.

以上の処理を続け、TC5の第5番目のステージ
の起動に同期して、あらかじめ命令C(メモリ間
の演算命令)で定められた通りタイミング記憶部
7−8から読出されたタイミング信号7−8′に
より次の命令D(レジスタ間の転送命令)の実行
を開始する。同時に、TC7のD命令における第3
番目のステージの起動に同期してD命令(レジス
タ間の転送命令)にあらかじめ定められた通り、
タイミング記憶部7−8から読出されたタイミン
グ信号7−8′により次の命令Eの実行を開始す
る。
Continuing the above processing, in synchronization with the activation of the fifth stage of T C5 , the timing signal 7-8 is read out from the timing storage section 7-8 as determined in advance by instruction C (inter-memory operation instruction). 8' starts execution of the next instruction D (transfer instruction between registers). At the same time, the third command in D command of T C7
In synchronization with the activation of the th stage, as predetermined by the D instruction (transfer instruction between registers),
Execution of the next instruction E is started according to the timing signal 7-8' read from the timing storage section 7-8.

以上説明した通り、本発明の一実施例を適用し
たCPUは、次の命令の起動タイミングは、衝突
図を引くのではなく、各命令毎に次の命令を起動
してもすべての命令に対して衝突が発生しないタ
イミングで命令毎にあらかじめ定められているの
で、パイプライン動作をスケジユールするため
の、従来必要とされた第5図に示す起動タイミン
グ決定用のパイプライン制御回路が不要となり制
御回路を著しく簡略化する事が可能である。
As explained above, the CPU to which one embodiment of the present invention is applied does not determine the activation timing of the next instruction by drawing a collision diagram, but even if the next instruction is activated for each instruction, Since the timing is predetermined for each instruction at a timing at which no collision occurs, the pipeline control circuit for determining the startup timing shown in Fig. 5, which was conventionally required to schedule pipeline operations, is no longer required. can be significantly simplified.

又、各機能ユニツト間の同期関係が、従来の様
に固定された特定の期間に一律に同期するもので
はなく、1ステージ分の処理が単位となつて各機
能ユニツト間の1ステージ分の処理がすべて完了
してから次のステージへ移る。従つて、機能ユニ
ツトの設計では処理内容に融通性が増し、特にバ
スインタフエース部も、メモリのアクセス時間に
関係なくメモリ参照が完了した時点で1ステージ
分の処理の完了とする事ができ、パイプライン動
作の中にかなりの柔軟性が生じる。
In addition, the synchronization relationship between each functional unit is not uniformly synchronized during a fixed specific period as in the past, but the processing for one stage is a unit, and the processing for one stage between each functional unit is Once all is completed, move on to the next stage. Therefore, in the design of functional units, there is increased flexibility in the processing content, and especially in the bus interface section, one stage of processing can be completed when a memory reference is completed, regardless of the memory access time. Considerable flexibility occurs in pipeline operation.

又、命令の動作図は、一律ではなく命令毎に最
適化されているので、汎用のデータ処理装置にも
容易に応用する事ができる。
Further, since the instruction operation diagrams are not uniformly optimized but are optimized for each instruction, it can be easily applied to general-purpose data processing devices.

〔発明の効果〕〔Effect of the invention〕

以上詳細に説明した通り、本発明のパイプライ
ン制御方式は、上記の構成をとることにより、従
来のようにすべての命令が同一の動作図でなく命
令毎に最も適した動作図を持ち、各機能ユニツト
の同期関係は従来のように一律に固定された周期
ではなく1ステージ内の1処理の完了に基づいて
おり、又、命令の開始タイミングは従来のように
衝突図によるのではなく各命令毎に次の命令を起
動してもすべての命令に対して衝突が発生しない
タイミングをあらかじめ規定しているので、従来
のパイプライン制御方式に比較して、ハードウエ
ア量の増加も最少限に抑えられ、かつ設計におけ
る融通性も備えた高速なパイプライン制御方式を
得ることができるという効果を有している。
As explained in detail above, by adopting the above configuration, the pipeline control method of the present invention has the most suitable operation diagram for each instruction instead of the same operation diagram for all instructions as in the past, and each The synchronization relationship of functional units is based on the completion of one process in one stage, rather than a uniformly fixed period as in the past, and the start timing of an instruction is determined based on each command rather than based on a collision diagram as in the past. Since the timing at which collisions do not occur for all instructions is predefined even if the next instruction is started each time, the increase in hardware amount is kept to a minimum compared to the conventional pipeline control method. This has the effect of providing a high-speed pipeline control system that is flexible in design and has flexibility in design.

特に、高性能化が著しいマイクロコンピユータ
へ応用した場合には、ハードウエア量の増加が最
少限であり、逐次処理に比較すると、大幅な処理
速度の改善が期待でき、実用効果を最も顕著に発
揮できる。
In particular, when applied to microcomputers with remarkable performance improvements, the increase in hardware amount is minimal, and compared to sequential processing, a significant improvement in processing speed can be expected, and the practical effect is most noticeable. can.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、従来のパイプライン制御方式の一例
に用いたCPUのブロツク図、第2図は第1図に
示したCPUの命令の動作図、第3図a〜fは、
第2図に示した動作図で次の命令を各ステージ毎
に起動させた時の動作図、第4図は第2図に示し
た動作図によるCPUの衝突図、第5図は第2図
に示した動作図によるCPUのパイプライン制御
回路のブロツク図、第6図は第5図のパイプライ
ン制御回路のデータの変化を示す動作図、第7図
は本発明の一実施例に用いたCPUのブロツク図、
第8図a,bは第7図に示すCPUの命令の動作
図、第9図は第7図に示したCPUのタイムチヤ
ートである。 1−1……バスインタフエース部、1−2……
オペランドアドレス計算部、1−3……実行部、
5−1……シフトレジスタ、5−1−0,5−1
−1,5−1−2,5−1−3,5−1−4,5
−1−5……レジスタ、5−2……シフトクロツ
ク、5−3……命令開始信号、5−4……初期衝
突データ発生回路、5−5……組みゲート、7−
1……バスインタフエース部、7−2……オペラ
ンド計算部、7−3……実行部、7−4,7−
5,7−6……第1、第2、第3のステージ終了
フリツプフロツプ、7−7……ANDゲート、7
−7′……命令開始信号、7−8……タイミング
信号記憶部、7−8′……タイミング信号、TA1
〜TA6,TB1〜TB11,TC1〜TC6,TD1〜TD3……ス
テージ、tA1〜tA6,TC1〜tC8……タイミング。
FIG. 1 is a block diagram of a CPU used in an example of a conventional pipeline control method, FIG. 2 is an operational diagram of the CPU instructions shown in FIG. 1, and FIGS.
Figure 2 is an operation diagram when the next instruction is started at each stage in the operation diagram shown in Figure 2, Figure 4 is a CPU collision diagram according to the operation diagram shown in Figure 2, and Figure 5 is the same as the one shown in Figure 2. 6 is an operational diagram showing changes in data in the pipeline control circuit of FIG. 5, and FIG. 7 is a block diagram of the pipeline control circuit of the CPU according to the operation diagram shown in FIG. CPU block diagram,
8a and 8b are operation diagrams of instructions of the CPU shown in FIG. 7, and FIG. 9 is a time chart of the CPU shown in FIG. 7. 1-1... Bus interface section, 1-2...
Operand address calculation section, 1-3...execution section,
5-1...Shift register, 5-1-0, 5-1
-1,5-1-2,5-1-3,5-1-4,5
-1-5...Register, 5-2...Shift clock, 5-3...Instruction start signal, 5-4...Initial collision data generation circuit, 5-5...Gate gate, 7-
1... Bus interface section, 7-2... Operand calculation section, 7-3... Execution section, 7-4, 7-
5, 7-6...1st, 2nd, 3rd stage end flip-flop, 7-7...AND gate, 7
-7'...Instruction start signal, 7-8...Timing signal storage section, 7-8'...Timing signal, T A1
~T A6 , T B1 ~ T B11 , T C1 ~ T C6 , T D1 ~ T D3 ... stage, t A1 ~ t A6 , T C1 ~ t C8 ... timing.

Claims (1)

【特許請求の範囲】[Claims] 1 複数の相異なる処理をそれぞれ行なう複数の
機能ユニツトであつて実行すべき命令の処理手順
に応じて同じ機能ユニツトが同一の命令に対し異
なる時間に違う処理を行なうように構成された複
数の機能ユニツトと、実行中の命令のデータと次
の命令のデータとが衝突しないように実行中の命
令のどの処理手順において次の命令の実行を開始
させるかを指定するタイミング信号を発生するタ
イミング制御手段と、前記複数の機能ユニツトの
それぞれに対応して設けられ当該機能ユニツトの
処理の完了状態を保持する複数の保持手段と、こ
れら保持手段のすべてが処理完了状態を保持する
ことに応答して各機能ユニツトに対し処理開始信
号を送出し各機能ユニツトが次の処理を同時に開
始するように制御する処理開始制御手段と、前記
タイミング信号に応答し次の命令の実行を前記処
理開始信号に同期して開始させる手段とを備える
ことを特徴とするパイプライン制御方式。
1 A plurality of functional units each performing a plurality of different processes, each of which is configured such that the same functional unit performs different processes at different times for the same command, depending on the processing procedure of the command to be executed. and a timing control means for generating a timing signal that specifies at which processing step of the instruction being executed the execution of the next instruction is to be started so as to prevent data of the instruction being executed from colliding with data of the next instruction. and a plurality of holding means provided corresponding to each of the plurality of functional units to hold the processing completion state of the functional unit, and in response to all of these holding means holding the processing completion state. processing start control means for sending a processing start signal to the functional units so that each functional unit starts the next processing at the same time; A pipeline control method comprising: means for starting the pipeline.
JP14337183A 1983-08-05 1983-08-05 Pipeline controlling system Granted JPS6033635A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14337183A JPS6033635A (en) 1983-08-05 1983-08-05 Pipeline controlling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14337183A JPS6033635A (en) 1983-08-05 1983-08-05 Pipeline controlling system

Publications (2)

Publication Number Publication Date
JPS6033635A JPS6033635A (en) 1985-02-21
JPS6359175B2 true JPS6359175B2 (en) 1988-11-18

Family

ID=15337225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14337183A Granted JPS6033635A (en) 1983-08-05 1983-08-05 Pipeline controlling system

Country Status (1)

Country Link
JP (1) JPS6033635A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0616662Y2 (en) * 1988-07-29 1994-05-02 日立工機株式会社 Driving machine

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
JPS57105044A (en) * 1980-12-23 1982-06-30 Fujitsu Ltd Interlock control system

Also Published As

Publication number Publication date
JPS6033635A (en) 1985-02-21

Similar Documents

Publication Publication Date Title
JPH0346850B2 (en)
JPS63307535A (en) Pipeline control circuit
JPS6359175B2 (en)
JPS60195661A (en) Data processing system
JP2758624B2 (en) Speed control method of micro program
JP3043341B2 (en) Microcomputer system
JP4818820B2 (en) Bus system, bus slave and bus control method
WO1991015815A1 (en) System for executing instruction of pc
JPH04280334A (en) One chip microcomputer
JP2002268876A (en) Pipeline processing method and information processing device
US20040103267A1 (en) Data processor having cache memory
JP2721611B2 (en) Programmable controller
JP2721610B2 (en) Programmable controller
JPH113592A (en) Access control circuit for synchronous RAM, data processor, and control method therefor
JPH0333951A (en) Microcomputer system
JPH0683639A (en) Register device
JPH11167519A (en) Memory refresh control circuit, memory, memory module, and digital device
JPH031252A (en) Page fault processing system
JPH04326126A (en) Register file for digital computer and instruction execution system using the same
JPS62209650A (en) Memory access system
JPH0561660B2 (en)
JPH04181321A (en) Microprogram loading system
JPH11306018A (en) Information processor and pipeline processing method
JPH09160786A (en) Microprocessor
JPH0652482B2 (en) Sequence controller