JPS6049337B2 - Pipeline control method - Google Patents

Pipeline control method

Info

Publication number
JPS6049337B2
JPS6049337B2 JP5317477A JP5317477A JPS6049337B2 JP S6049337 B2 JPS6049337 B2 JP S6049337B2 JP 5317477 A JP5317477 A JP 5317477A JP 5317477 A JP5317477 A JP 5317477A JP S6049337 B2 JPS6049337 B2 JP S6049337B2
Authority
JP
Japan
Prior art keywords
instruction
unit
instruction execution
execution
address
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
JP5317477A
Other languages
Japanese (ja)
Other versions
JPS53139448A (en
Inventor
英雄 前島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5317477A priority Critical patent/JPS6049337B2/en
Publication of JPS53139448A publication Critical patent/JPS53139448A/en
Publication of JPS6049337B2 publication Critical patent/JPS6049337B2/en
Expired legal-status Critical Current

Links

Description

【発明の詳細な説明】 本発明は、パイプライン制御方式、特に命令フエツチ部
と命令実行部との同期化をはかつてなるパイプライン制
御方式に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a pipeline control system, and more particularly to a pipeline control system that requires synchronization between an instruction fetch section and an instruction execution section.

従来からのパイプライン制御方式のデータ処理装置につ
いて第1〜6図を使つて説明する。
A conventional data processing device using a pipeline control method will be explained using FIGS. 1 to 6.

第1図はパイプライン制御方式データ処理装置のブロッ
ク図であるが、このパイプライン制御方式は特フに事務
用の大型機に用いられている。その構造は命令の読み出
しをする命令ユニット11、読み出した命令を実行する
演算ユニット12を核として記憶制御ユニット13、主
記憶14及び入出力バスI/ O−BUS)アドレスバ
スA−BUS)デー5タバスD−BUS)及びユニット
間インターフェイスUINTから成つている。命令ユニ
ット11は第2図に示した論理構造をもつており、命令
語の格納されている主記憶アドレスを格納するプログラ
ムカウンタをはじめ、オペランドのアドレスを作成する
ためのベースレジスタ、インデックスレジスタ等を格納
するレジスタ群21、該レジスタ群21の1つと命令語
の1部とを加算しアドレスバスA−BUSを介して出力
するアドレス加算器22、及びこれらを制御する命令制
御部23から成つている。従つて、本命令ユニット11
の動作は、(1)プログラムカウンタの内容をアドレス
バスA−BUSに送出し、命令語を読み出す。
FIG. 1 is a block diagram of a pipeline control type data processing apparatus, and this pipeline control type is particularly used in large office machines. Its structure consists of an instruction unit 11 that reads instructions, an arithmetic unit 12 that executes the read instructions, a storage control unit 13, a main memory 14, and an input/output bus (I/O-BUS) address bus A-BUS) data 5. (D-BUS) and an inter-unit interface UINT. The instruction unit 11 has the logical structure shown in FIG. 2, and includes a program counter for storing the main memory address where the instruction word is stored, a base register for creating operand addresses, an index register, etc. It consists of a register group 21 for storage, an address adder 22 that adds one of the register groups 21 and a part of the instruction word and outputs the result via an address bus A-BUS, and an instruction control unit 23 that controls these. . Therefore, this instruction unit 11
The operation is as follows: (1) Send the contents of the program counter to the address bus A-BUS and read the instruction word.

更に、プログラムカウンタをインクリメント(アップ)
する。(2)読み出された命令語に応じて、その指定す
る方法でオペランドのアドレスをアドレス加算器22に
より計算し、アドレスバスA−BUSに送出する。
Furthermore, the program counter is incremented (up).
do. (2) In accordance with the read instruction word, the address of the operand is calculated by the address adder 22 in the specified method and sent to the address bus A-BUS.

(3)命令ユニットの動作終了をユニット間インターフ
ェイスUINTを通じて演算ユニット12に連絡し、該
ユニット12を起動する。
(3) Notify the operation unit 12 of the completion of the operation of the instruction unit through the inter-unit interface UINT, and start the unit 12.

というような3機能に分けられ、これを順次実行する。It is divided into three functions, which are executed sequentially.

第3図は演算ユニット12の論理構造を示したものであ
るが、各種演算レジスタを格納するレジスタ群31,3
2、演算器33、及びこれらを制一御する命令実行制御
部34から成る。命令ユニット11の動作終了をユニッ
ト間インターフェイスUINTの信号に1つにより命令
ユニットからの連絡を受け、実行動作を開始する。次に
、命令ユニット11と演算ユニット12との関係を第4
〜6図を用いて説明する。
FIG. 3 shows the logical structure of the arithmetic unit 12, which includes register groups 31 and 3 that store various arithmetic registers.
2, an arithmetic unit 33, and an instruction execution control unit 34 that controls these. Upon receiving notification from the instruction unit that the operation of the instruction unit 11 has finished via a signal from the inter-unit interface UINT, the execution operation is started. Next, the relationship between the instruction unit 11 and the arithmetic unit 12 will be explained as follows.
This will be explained using Figures 6 to 6.

第4図は命令ユニット11のスタテイサズ実行中心に示
したフローチャートであるが、次の手順で演算ユニット
12と連絡をとりながら動作する・
3(1)命令ユニット1
1のスタテイサイズ開始の判定。
FIG. 4 is a flowchart mainly showing the status execution of the instruction unit 11, which operates while communicating with the arithmetic unit 12 in the following steps.
3(1) Instruction unit 1
Determination of start of state size in step 1.

演算ユニット12の命令実行(処理)によつてどの時点
からスタティサィズを開始できるかが決定される。例え
ば、命令ユニット11内のレジスタ群21内のプログラ
ムカウンタ、べ4.ースレジスタ、インデックスレジス
タ等を変更する命令(条件分岐、無条件分岐、サブルー
チン分岐、レジスタ書換え等)ではレジスタの内容変更
後にスタデイサイズを開始できるわけである。(Ii)
割込みの有無の判定、割込みのある場合にはスタテイサ
イズを実行してプログラムカウンタを更新してはならな
い。
The point in time when the static size can be started is determined by the instruction execution (processing) of the arithmetic unit 12. For example, the program counter in the register group 21 in the instruction unit 11; For instructions that change the base register, index register, etc. (conditional branch, unconditional branch, subroutine branch, register rewrite, etc.), the study size can be started after the contents of the register are changed. (Ii)
Determine whether or not there is an interrupt, and if there is an interrupt, do not execute the state size and update the program counter.

S(Iii)スタテイサイズの実行。S(iii) Execution of state size.

命令ユニット11がスタテイサイズ開始可能であつて、
割込みが無い場合はじめてスタテイサイズを実行する。
その動作内容は前述したので省略する。(Iv)演算ユ
ニット12が実行中かどうかの判定。
The command unit 11 is capable of starting the state size,
State size is executed only when there is no interrupt.
The details of the operation have been described above and will therefore be omitted. (Iv) Determining whether the arithmetic unit 12 is being executed.

O 演算ユニット12が前命令を実行中か否かにより、
命令ユニット11の実行結果を演算ユニット12に移し
て命令の実行を行わせるかを決める。演算ユニット12
が前命令の実行を終了すれば、ひき続き今回の命令の実
行を開始し、命″ 令ユニット11では次の命令フエツ
チの準備をする。このように、命令ユニット11と演算
ユニット12とは常に連絡をとり合つて動作し続けバイ
ブライン制御を実現する。
O Depending on whether the arithmetic unit 12 is executing the previous instruction,
It is determined whether the execution result of the instruction unit 11 is transferred to the arithmetic unit 12 to execute the instruction. Arithmetic unit 12
When the previous instruction finishes executing, the current instruction continues to be executed, and the instruction unit 11 prepares to fetch the next instruction.In this way, the instruction unit 11 and the arithmetic unit 12 are always It communicates and continues to operate to achieve vibration line control.

第5図は時間tの流れにl沿つたバイブライン制御の様
子を示した図である。命令ユニット11の動作(スタテ
イサイズ)が演算ユニット12の動作(前命令の実行)
よりも遅い場合には演算ユニット12は待たされるし(
図のT1区間)、命令ユニット11の動作完了が演算ユ
ニット12の動作完了よりも早い場合には命令ユニット
11の次の動作開始が待たされる(図のT2区間)。即
ち、処理Nのスタテイサイズ完了は演算ユニット12の
前命令N−1実行終了と一致し、演算ユニット12の処
理が継ぎ目なく行われた場合が時間t1を示し、処理N
+1では演算ユニット12の前命令処理Nとの間に持ち
が生じた場合が区附匡,の持ち時間を示す。この時には
、処理N+2は前命令N+1の終了までスタテイサイズ
を開始できない。更に次の命令ユニットのスタテイサイ
ズN+3が早く終了した場合が区間T2の持ち時間とな
る。以上のように命令ユニット11と演算ユニット12
はそれぞれには命令によつて種々の場合に伴なう持ちが
生じ、この持ちをユニット間インターフェイス信号によ
りタイミング的に同期化しているものが多い。
FIG. 5 is a diagram showing how the vibration line is controlled along the flow of time t. The operation of the instruction unit 11 (state size) is the operation of the arithmetic unit 12 (execution of previous instruction)
If it is slower than (
If the completion of the operation of the instruction unit 11 is earlier than the completion of the operation of the arithmetic unit 12, the start of the next operation of the instruction unit 11 is awaited (section T2 in the figure). That is, the completion of the state size of the process N coincides with the completion of the execution of the previous instruction N-1 of the arithmetic unit 12, and the case where the process of the arithmetic unit 12 is seamlessly performed indicates time t1, and the state size of the process N
+1 indicates the hold time when a hold occurs between the processing unit 12 and the previous instruction processing N. At this time, process N+2 cannot start state size until the previous instruction N+1 ends. Furthermore, if the state size N+3 of the next instruction unit is completed early, the duration of section T2 is reached. As described above, the instruction unit 11 and the arithmetic unit 12
In each case, a hold occurs in various cases depending on the command, and in many cases, this hold is synchronized in terms of timing by an inter-unit interface signal.

第6図は2つのユニット間インターフェイスの基本信号
を示したもので、命令ユニット11ののスタテイサイズ
終了を演算ユニット12に連絡する信号(EUSTAR
T)、演算ユニツ卜12の命令実行終了を命令ユニット
11に連絡する信号(IUSTART)の2本がある。
この2つの信号により両ユニット間の同期がとられてい
る。一方、バイブライン制御を行つているのは既に述べ
たように事務用の大型機に多く、命令語のスタック、主
記憶のインターリービツグといつた高度の技術を駆使し
ており、命令ユニット11と演算ユニット12の内部論
理はかなり複雑であり、更に2つのユニット間インター
フェイス信号はかツなり多くなる。
FIG. 6 shows the basic signals of the interface between the two units, including a signal (EUSTAR) that notifies the operation unit 12 of the end of the state size of the instruction unit 11
T), and a signal (IUSTART) that notifies the instruction unit 11 of the completion of instruction execution by the arithmetic unit 12.
These two signals provide synchronization between both units. On the other hand, as mentioned above, many large office machines are equipped with vibration line control, and they make full use of advanced technologies such as instruction word stacking and main memory interleaving. The internal logic of the arithmetic unit 12 is quite complex, and the number of interface signals between the two units is also quite large.

この結果、2つのユニットをそれぞれ1つのLSIチッ
プで構成しようとする場合、2チップ間のインターフェ
イス信号が多くなる。しかしパッケージピン数の制約の
ため実現は難かしい。本発明は前述した従来技術の欠点
に鑑みなされたものであり、その目的は命令ユニット、
演算ユニットそれぞれを1つのLSIチップ等の単一回
路で構成する場合の2つのチップ間のインターフェイス
信号を少なくし、更にそれぞれの動作のずれ5を補正す
るバイブライン制御方式を提供することにある。
As a result, when each of the two units is configured with one LSI chip, the number of interface signals between the two chips increases. However, it is difficult to realize this because of restrictions on the number of package pins. The present invention has been made in view of the drawbacks of the prior art described above, and its purpose is to provide an instruction unit,
It is an object of the present invention to provide a vibe line control system which reduces interface signals between two chips when each arithmetic unit is constructed of a single circuit such as one LSI chip, and further corrects a deviation 5 in their respective operations.

上記目的を達成する為に、本発明はマイクロプログラム
制御になるバイブライン可能なデータ処理装置の演算ユ
ニットの命令実行が命令ユニットのスタテイサイズより
も先に終了した場合に限つて、命令ユニットの発生する
マイクロプログラム分岐アドレスに修飾を加え、固定番
地に変換し、該固定番地に無実行マイクロ命令を格納す
ることにより演算ユニットを持ち状態とすることを特徴
とする。
In order to achieve the above object, the present invention provides that the instruction unit of an instruction unit of a microprogram-controlled data processing device that is capable of vibrating is completed only when the instruction execution of the arithmetic unit of the data processing device is completed before the state size of the instruction unit. It is characterized in that it modifies the generated microprogram branch address, converts it to a fixed address, and stores a non-executable microinstruction at the fixed address, thereby bringing the arithmetic unit into a holding state.

以下図面に基ついて本発明の好適な実施例を詳細に説明
する。
Preferred embodiments of the present invention will be described in detail below with reference to the drawings.

尚、以下の説明では、チップなる表現を使用しているが
、これはLSlを前提にしているためである。チップの
内部機能は共に述べたユニットとほぼ同一である。勿論
、本発明の特有な技術が付加されているため、実質的に
同一ということはない。第7図は本発明に係るマイクロ
サイクル同期化装置を内蔵したバイブライン制御可能の
データ処理装置のブロック図である。
Note that in the following explanation, the expression "chip" is used, but this is because it is based on the premise of LSL. The internal functionality of the chip is almost identical to the previously mentioned units. Of course, since the unique technology of the present invention is added, they are not substantially the same. FIG. 7 is a block diagram of a data processing device capable of controlling the vibe line and incorporating a microcycle synchronization device according to the present invention.

本データ処理装置は命令フエツチチツプ71、命令実行
チップ72、マイクロ命令アドレスレジスタ73、該レ
ジスタ73からアドレスバスADDR−BUSを通して
送られるアドレスによりアクセスされるマイクロプログ
ラムメモリ74から構成され、マイクロプログラムメモ
リ74の命令フエツチチツプ71を制御する部分1は命
令フエツチチツプ71内から発生されるマイクロプログ
ラム分岐アドレスとを時分割して使用し、マイクロ命令
バスMI−BUSlを通してマイクロ命令アドレスレジ
スタ73に供給されている。また、命令実行チップ72
は常にマイクロプログラムメモリ74の一部Eによりマ
イクロ命令バスMI−BUS2を通して制御されており
、マイクロ命令アドレスレジスタ73のモード(カウン
ト/ロード)制御信号e1命令実行終了信号0を出力し
、後者は命令フエツチチツプ71に供給されている。ま
た、本発明に直接関係はないが命令フエツチチツプ71
のアドレス出力、命令実行チップ72のデータ入出力は
共通のデータ◆アドレスバスD−A−BUSで連結され
、チップ間のデータの授受も可能なようになつている。
命令フエツチチツプ71と命令実行チップ72はマイク
ロプログラムメモリ74のそれぞれI,E部により独立
に制御、され、更に命令フエツチチツプ71におけるス
タテイサイズ制御はマイクロ命令によらずハードウェア
制御するものとする。そのハードウェアについては本発
明に直接的な影響はないので省略する。次に、第8図を
用いて命令フエツチチツプ71のマイクロプログラム分
岐制御部について説明する。
This data processing device is composed of an instruction fetch chip 71, an instruction execution chip 72, a microinstruction address register 73, and a microprogram memory 74 that is accessed by an address sent from the register 73 through an address bus ADDR-BUS. Part 1 for controlling the instruction fetch chip 71 uses a microprogram branch address generated from within the instruction fetch chip 71 in a time-sharing manner, and supplies the microprogram branch address to the microinstruction address register 73 through the microinstruction bus MI-BUS1. In addition, the instruction execution chip 72
is always controlled by part E of the microprogram memory 74 through the microinstruction bus MI-BUS2, and outputs the mode (count/load) control signal e1 of the microinstruction address register 73 and the instruction execution end signal 0; It is supplied to the fetish tip 71. Although not directly related to the present invention, the instruction fetish chip 71
The address output of the instruction execution chip 72 and the data input/output of the instruction execution chip 72 are connected by a common data◆address bus DA-BUS, so that data can be exchanged between the chips.
It is assumed that the instruction fetch chip 71 and the instruction execution chip 72 are independently controlled by the I and E sections of the microprogram memory 74, respectively, and the state size control in the instruction fetch chip 71 is controlled by hardware rather than by microinstructions. Since the hardware has no direct influence on the present invention, it will be omitted. Next, the microprogram branch control section of the instruction fetch chip 71 will be explained using FIG.

本制御部は時分割制御するマイクロ命令バスMI−BU
Slからのマイクロ命令入力バッファ8)1、マイクロ
プログラム分岐アドレス送出の為の出力バッファ82、
マイクロ命令レジスタ83とそのデコーダ84、本発明
の中心となるマイクロサイクル同期化装置85、(マク
ロの)命令レジスタ86から構成される。通常マイクロ
命令バス5MI−BUSlは入力方向側で動作しており
、マイクロプログラムメモリ74から読み出されたマイ
クロ命令は入力バッファ81を介しマイクロ命令レジス
タ83に置数され、マイクロ命令デコーダ84により命
令フエツチチツプ71内の各部を制御″θする。しかし
、命令フエツチチツプ71がスタテイサイズを開始しよ
うとする時はスタテイサイズ開始を指示するマイクロ命
令を入力バッファ81、マイクロ命令レジスタ83、マ
イクロ命令デコーダ84を通じてスタート信号sを発生
させ、マイクロサイクル同期化装置85に連絡する。割
込み信号1により割込みの無い場合、以下のマイクロ命
令の実行を禁止する信号nをデコーダ84に返答し、マ
イクロサイクル同期化装置85は動作状態に入る。該同
期化装置85はマクロの命令レジスタ86の命令コード
から各命令に応じたマイクロプログラムの先頭番地を作
成し、命令実行チップ72の前命令実行終了信号0によ
り出力バッファ82が開放され(この時マイクロプログ
ラムメモリ74のI部は禁止)マイクロ命令レジスタ7
3に置数する。しかし、命令フエツチチツプ71のスタ
テイサイズ動作が完了していない時にはマイクロサイク
ル同期化装置85の分岐アドレス出力は固定番地であり
、スタテイサイズ完了まで命令実行チップ72はその固
定番地のマイクロ命令(無実行命令)を実行し続けて命
令フエツチチツプ71との同期をとる。第9図は本発明
になるマイクロサイクル同期化装置85の詳細図てある
This control unit uses the microinstruction bus MI-BU for time-sharing control.
Microinstruction input buffer 8) 1 from Sl, output buffer 82 for sending microprogram branch address,
It consists of a microinstruction register 83 and its decoder 84, a microcycle synchronization device 85, which is the core of the present invention, and a (macro) instruction register 86. Normally, the microinstruction bus 5MI-BUSl operates in the input direction, and the microinstruction read from the microprogram memory 74 is placed in the microinstruction register 83 via the input buffer 81, and the microinstruction decoder 84 outputs the instruction fetch chip. However, when the instruction fetch chip 71 wants to start the state size, it sends a microinstruction to start the state size through the input buffer 81, the microinstruction register 83, and the microinstruction decoder 84. A start signal s is generated and communicated to the microcycle synchronization device 85. If there is no interrupt due to the interrupt signal 1, a signal n that prohibits the execution of the following microinstructions is returned to the decoder 84, and the microcycle synchronization device 85 The synchronizer 85 creates the starting address of the microprogram according to each instruction from the instruction code of the instruction register 86 of the macro, and outputs the start address of the microprogram to the output buffer 82 according to the previous instruction execution end signal 0 of the instruction execution chip 72. is released (at this time, the I part of the microprogram memory 74 is prohibited) and the microinstruction register 7 is opened.
Set the number to 3. However, when the state size operation of the instruction fetch chip 71 is not completed, the branch address output of the microcycle synchronizer 85 is a fixed address, and until the state size is completed, the instruction execution chip 72 executes the microinstruction (invalid) at that fixed address. The execution command) is continued to be executed and synchronized with the command fetch chip 71. FIG. 9 is a detailed diagram of a microcycle synchronizer 85 according to the present invention.

該装置85は割込み信号1のインバータ91、スタテイ
サイズ開始信号を得る為のナンドゲート92、スタテイ
サイズ開始を表示するフリップフロップ93、割込み受
付け信号を得る為のナンドゲート9牡割込みの受付けを
表示するフリップフロップ95、命令レジスタ86の命
令コードに変更を与える為の3入力5のアンドゲート9
6a−hから成る。9ビットの分岐アドレスB−ADD
Rの最上位ビットはフリップフロップ95のQ出力端子
の信号をもつて形成し、2ビット目以降はゲート96a
〜96hの出力をもつて形成している。
The device 85 includes an inverter 91 for interrupt signal 1, a NAND gate 92 for obtaining a state size start signal, a flip-flop 93 for displaying the state size start, and a NAND gate 9 for obtaining an interrupt acceptance signal. Flip-flop 95, AND gate 9 with 3 inputs and 5 for changing the instruction code of the instruction register 86
Consisting of 6a-h. 9-bit branch address B-ADD
The most significant bit of R is formed by the signal of the Q output terminal of the flip-flop 95, and the second and subsequent bits are formed by the signal of the Q output terminal of the flip-flop 95.
It is formed with an output of ~96h.

マイクロ命令によりス3タテイサイズ開始を指示すると
セット信号sが入力し、この時、割込み信号1が゛0゛
(割込み無し)ならばナンドゲート92を介してフリッ
プフロップ93がセットされ、フリップフロップ95は
セットされない。従つて、命令レジスタ86の5命令コ
ード(オペランドコード)が例えば(11101000
)であつたとした場合、スタテイサイズの終了によつて
ハードウェアが発生する終了信号eがフリップフロップ
93に入力するまでそのQ端子ぱ“0゛である故アンド
ゲード群96a〜4hはオフ状態となり、且つフリップ
フロップ95のQ端子を゜40゛である故、マイクロプ
ログラム分岐アドレスは(イ)00000000)と0
番地を指している。終了信号eが入力するとフリップフ
ロップ93はリセットされ、その結果、アンドゲート群
96a−hがオン状態となり分岐アドレスは(0111
01000)と命令コードに応じたアドレスを発生させ
る(尚、このアドレスの先頭ビットはフリップフロップ
95のQ端子の信号によつて規定されるため“0゛とな
つている)。また、割込み信号1が66F3(割込み有
り)ならばフリップフロップ95だけがセットされ、そ
の結果、ゲート群96a−hはオフ状態のままであるた
め分岐アドフレスは命令レジスタ86の内容によらず(
100000000)を発生する。
When the microinstruction instructs to start the state size, the set signal s is input, and at this time, if the interrupt signal 1 is "0" (no interrupt), the flip-flop 93 is set via the NAND gate 92, and the flip-flop 95 is set. Not done. Therefore, the 5 instruction codes (operand codes) in the instruction register 86 are, for example, (11101000
), the Q terminal is "0" until the end signal e generated by the hardware upon completion of the state size is input to the flip-flop 93, so the AND gate groups 96a to 4h are in the off state. , and since the Q terminal of the flip-flop 95 is 40°, the microprogram branch address is (a) 00000000) and 0.
Pointing to the address. When the end signal e is input, the flip-flop 93 is reset, and as a result, the AND gates 96a to 96h are turned on, and the branch address becomes (0111
01000) and an address corresponding to the instruction code (note that the first bit of this address is determined by the signal at the Q terminal of the flip-flop 95, so it is "0"). If 66F3 (with an interrupt), only the flip-flop 95 is set, and as a result, the gate group 96a-h remains off, so the branch address is independent of the contents of the instruction register 86 (
100000000).

そして、フリップフロップ95は次のマイクロ命令にて
リセット信号rによりリセットされ、初期状態に戻る。
また、フリップフロップ93のQ端子出力がマイクロ命
令のデコード禁止信号nとなつており、この結果スター
ト信号sがあり、且つ割込み信号しかない場合のみ禁止
信号nが発生することになる。次に、命令実行チップ7
2側の詳細を第10図を用いて説明する。
Then, the flip-flop 95 is reset by the reset signal r in response to the next microinstruction, and returns to the initial state.
Further, the Q terminal output of the flip-flop 93 serves as a microinstruction decoding prohibition signal n, and as a result, the prohibition signal n is generated only when there is a start signal s and only an interrupt signal. Next, the instruction execution chip 7
The details of the second side will be explained using FIG.

該チップ72の本発明に係るのはマイクロ命令バスMI
−BUSからのマイクロ命令を取り込む入力バッファ1
01、マイクロ命令レジスタ102、分岐制御回路10
3である。入力バッファ101を介してマイクロ命令レ
ジスタ102に置数されたマイクロ命令アドレスレジス
タ73のモード(カウント/ロードすなわちインクリメ
ント/ジャンプ)制御信号′、命令実行終了信号0を出
力すると共に、信号′の決定要因として命令実行チップ
72内部のテストコードの1つtを取り込んでいる。分
岐制御回路103の詳細説明に入る前に命令実行チップ
72を制御する12ビットより成るマイクロ命令を第1
1図に示す。大別して4種(演算、条件分岐、リテラル
、その他)であるが、通常第1ビット位置が660″で
あればマイクロ命令アドレスレジスタ73はインクリメ
ントモード“1゛であればジャンプモードであり、第1
,第2ビット位置の内容が(01)の形成では第11,
第12ビット位置のEフィールドが“゜1”の時に限つ
て命令実行終了を表わす。このマイクロ命令によつて分
岐制御回路103の動作を第12図を用いて説明する。
該回路は第1ビット位置(BitO)のインバータ12
1、該出力、第1ビット位置(Bitl)第11,第1
2ビット位置(Bitll)のナンドゲート(デコーダ
)122、モード変更を行なうか否かを決定するゲート
123、モード変更を行なう排他論理和ゲート124か
ら成る。BltOは前記排他論理和ゲート124の1入
力に供給され、前記ゲート123出力が゜゜0゛である
限り、BitOの情報を変更することなくマイクロ命令
アドレスレジスタ73のモード制御信号′として送出す
る。モード変更が行われるのは命令実行終了時(Bit
O=“0゛,Bitl,Bitll=″R5の時)にイ
ンクリメントモードがジャンプモード変更される場合と
、条件分岐時(BitO=66r′,Bitl=4′0
0,テストビットTBから″0″の時、即ちt=0の時
すなわち条件不成立の時)にジャンプモードがインクリ
メントモードに変更される場合である。尚、信号eぱ゜
0゛の時インクリメントモード、“1゛の時ロードモー
ドを示すことは云うまでもない。以上、命令フエツチチ
ツプ71、命令実行チップ72について説明したが、こ
れら2つの関係を第13図にタイムチャートで示す、該
タイムチャートは割込み無し(1=“゜0゛)の場合で
あり、命令フエツチチツプ71がスタテイサイズ実行中
に命令実行チップ72が命令終了信号0を出力した場合
にはO番地が分岐アドレスとなり(事例、Casel)
、スタテイサイズ完了後には命令コードに応じた分岐ア
ドレスとなる事を示している(事例、Case2)。
According to the present invention, the chip 72 has a microinstruction bus MI.
- Input buffer 1 that takes in micro instructions from BUS
01, microinstruction register 102, branch control circuit 10
It is 3. The mode (count/load, increment/jump) control signal ' of the microinstruction address register 73 placed in the microinstruction register 102 via the input buffer 101 and the instruction execution end signal 0 are output, and the determining factor of the signal ' One of the test codes t inside the instruction execution chip 72 is taken in as follows. Before entering into a detailed explanation of the branch control circuit 103, a microinstruction consisting of 12 bits that controls the instruction execution chip 72 will be explained first.
Shown in Figure 1. There are four types (operations, conditional branches, literals, and others), but normally if the first bit position is 660'', the microinstruction address register 73 is in the increment mode, and if it is ``1'', it is jump mode;
, when the content of the second bit position is (01), the 11th,
The end of instruction execution is indicated only when the E field at the 12th bit position is "°1". The operation of the branch control circuit 103 based on this microinstruction will be explained using FIG. 12.
The circuit is an inverter 12 at the first bit position (BitO).
1, the output, 1st bit position (Bitl) 11th, 1st
It consists of a NAND gate (decoder) 122 for 2 bit positions (Bitll), a gate 123 for determining whether or not to change the mode, and an exclusive OR gate 124 for changing the mode. BltO is supplied to one input of the exclusive OR gate 124, and as long as the output of the gate 123 is ゜゜0゛, the information of BitO is sent out as the mode control signal' of the microinstruction address register 73 without being changed. The mode is changed at the end of instruction execution (Bit
When the increment mode is changed to jump mode when O = "0゛, Bitl, Bitll = "R5), and when conditional branching (BitO = 66r', Bitl = 4'0)
0, when the test bit TB is "0", that is, when t=0, that is, when the condition is not satisfied), the jump mode is changed to the increment mode. It goes without saying that when the signal e is 0, it indicates the increment mode, and when it is 1, it indicates the load mode.The instruction fetch chip 71 and the instruction execution chip 72 have been explained above, but the relationship between these two will be explained below. The time chart shown in FIG. 13 is for the case where there is no interrupt (1 = “゜0゛)” and when the instruction execution chip 72 outputs the instruction end signal 0 while the instruction fetch chip 71 is executing the state size. Address O becomes the branch address (Example, Case)
, indicates that after the state size is completed, the branch address will be in accordance with the instruction code (Example, Case 2).

これをマイクロプログラムメモリ74上で表現したのが
第14図である。右側に矢印で示した部分は対応番地の
コード内容を示している。今、β番地のマイクロ命令が
命令実行終了を発したとするとスタテイサイズ完了の場
合、gのように直接命令処理先頭番地αへジャンプし、
スタテイサイズ未完の場合、先ずO番地へジャンプし、
そのマイクロ命令で無実行かつ実行終了を出し続け、ス
タテイサイズ完了を待つてα番地へジャンプする。一方
、割込みが有る場合にはスタテイサイズは起動しないか
ら命令実行終了とともに10〜0番地へジャンプし、割
込み処理用マイクロプログラムを起動する。以上のよう
に、図示した実施例によれば命令フエツチチツプと命令
実行チップとの間のインターフェイス信号を最小とし、
かつ円滑なマイクロサイクル同期化が可能である。
FIG. 14 shows this expressed on the microprogram memory 74. The part indicated by the arrow on the right side shows the code content of the corresponding address. Now, if the microinstruction at address β issues an instruction execution end, if the state size is completed, it jumps directly to the instruction processing start address α as shown in g,
If the state size is not completed, first jump to address O,
The microinstruction continues to issue no execution and execution completion, waits for the state size to complete, and jumps to address α. On the other hand, if there is an interrupt, the state size does not start, so when the instruction execution ends, it jumps to addresses 10 to 0 and starts the interrupt processing microprogram. As described above, according to the illustrated embodiment, the interface signal between the instruction fetch chip and the instruction execution chip is minimized;
Moreover, smooth microcycle synchronization is possible.

以上の本発明では、LSI化した場合の事例であつたが
、一般の命令フエツチ部と命令実行部との2つの機能を
持つ回路構成であつても適用可能てある。
Although the present invention has been described above as an example of an LSI implementation, it is also applicable to a general circuit configuration having two functions: an instruction fetch section and an instruction execution section.

また場合によつては、同期化装置を単独に取り出した回
路構成でも適用可能てある。以上詳細に説明したように
、本発明によれば、バイブライン制御する2ユニット間
のインターフェイス信号を最小とし、円滑なマイクロサ
イクル同期化が可能となる効果を奏する。
In some cases, a circuit configuration in which the synchronization device is taken out independently may also be applicable. As described in detail above, according to the present invention, it is possible to minimize the interface signal between the two units controlling the vibe line and to achieve smooth microcycle synchronization.

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

第1図は一般のバイブライン制御データ処理装置を示す
図、第2図は命令ユニットのブ殆ツク図、第3図は演算
ユニットのブロック図、第4図は命令ユニットのスタテ
イサイズフロー図、第5図はバイブライン制御の実例を
示す図、第6図は2ユニット間の基本インターフェイス
信号を示す図、第7図は本発明の実施例のバイブライン
制御データ処理装置を示す図、第8図は命令フエツチチ
ツプのマイクロプログラム分岐制御部を示す図、第9図
は本発明になるマイクロサイクル同期化装置の詳細説明
図、第10図は命令実行チップの分岐制御回路の周辺を
示す図、第11図は命令実行チップのマイクロ命令形式
を表わす図、第12図はその分岐制御回路の詳細説明図
、第13図は分岐アドレス発生のタイムチャート、第1
4図はマイクロプログラム上のマイクロ命令の動きを示
す図である。 91,121・・・・・・インバータ、92,94,1
22・・・・・・ナンドゲート、93,95・・・・・
フリップ5フロップ、96a−h・・・・・・アンドゲ
ート、123・・・・ゲート、124・・・・・排他論
理和ゲート。
Fig. 1 is a diagram showing a general vibe line control data processing device, Fig. 2 is a block diagram of the instruction unit, Fig. 3 is a block diagram of the arithmetic unit, and Fig. 4 is a state size flow diagram of the instruction unit. , FIG. 5 is a diagram showing an actual example of vibration line control, FIG. 6 is a diagram showing basic interface signals between two units, FIG. 7 is a diagram showing a vibration line control data processing device according to an embodiment of the present invention, and FIG. 8 is a diagram showing the microprogram branch control section of the instruction fetch chip, FIG. 9 is a detailed explanatory diagram of the microcycle synchronization device according to the present invention, and FIG. 10 is a diagram showing the periphery of the branch control circuit of the instruction execution chip. Fig. 11 is a diagram showing the microinstruction format of the instruction execution chip, Fig. 12 is a detailed explanatory diagram of its branch control circuit, Fig. 13 is a time chart of branch address generation,
FIG. 4 is a diagram showing the movement of microinstructions on a microprogram. 91,121...Inverter, 92,94,1
22...Nand Gate, 93,95...
Flip 5 flop, 96a-h...AND gate, 123...gate, 124...exclusive OR gate.

Claims (1)

【特許請求の範囲】 1 命令のフエツチと命令の実行をマイクロプログラム
領域でそれぞれ独自に行う命令フエツチ部と命令実行部
とを具え、両者をパイプライン制御により同期をとりな
がら制御するパイプライン制御方式に於て、前記命令実
行部は常にマイクロプログラムにより制御されており、
命令フエツチ部のスタテイサイズ実行中に命令実行部の
命令実行処理が先に処理完了となつた場合、前記命令フ
エツチ部からのアドレス指定によつて前記マイクロプロ
グラムメモリの特定アドレスに予め格納された無実行マ
イクロ命令を前記命令実行部に与えて無実行処理を行わ
せ、スタテイサイズの終了をもつて命令フエツチ部に命
令実行部との同期をとるようにしたパイプライン制御方
式。 2 命令のフエツチと命令の実行をマイクロプログラム
領域でそれぞれ独自に行う命令フエツチ部と命令実行部
とを具え、両者をパイプライン制御により同期をとりな
がら制御するパイプライン制御方式に於いて、上記命令
実行部に、命令実行の終了を検知し、且つマイクロプロ
グラムの流れを変更するための指示フラグを発生させる
機能を設け;上記命令フエツチ部に、外部からの割込み
要求の際にはあらかじめ定めた特定アドレスの割込み要
求処理のマイクロ命令を上記指示フラグの制御のもとに
アクセスしてフエツチを行い、且つ該命令フエツチ部自
身によるスタテイサイズ実行中に上記命令実行部の命令
実行の処理の終了の検知があつた場合には上記指示フラ
グの制御のもとに上記特定アドレスとは異なる特定アド
レスの無実行マイクロ命令をアクセスしてフエツチを行
う機能を設け;該無実行マイクロ命令のフエツチに伴う
無実行処理を上記命令実行部に行わせると共に、実行中
のスタテイサイズの終了をもつて、上記命令フエツチ部
のスタテイサイズ実行中に命令実行部の命令実行処理の
終了の検知があつた場合の命令フエツチ部と命令実行部
との同期化を行わせるようにしたパイプライン制御方式
[Scope of Claims] 1. A pipeline control system that includes an instruction fetch section and an instruction execution section that independently perform instruction fetch and instruction execution in a microprogram area, and that control both while maintaining synchronization through pipeline control. In this case, the instruction execution section is always controlled by a microprogram,
If the instruction execution process of the instruction execution unit is completed first during the execution of the state size of the instruction fetch unit, the state size is stored in advance at a specific address in the microprogram memory according to the address specification from the instruction fetch unit. A pipeline control system in which a non-executable microinstruction is given to the instruction execution unit to cause the instruction execution unit to perform non-execution processing, and the instruction fetch unit is synchronized with the instruction execution unit when the state size ends. 2. In the pipeline control method, which is equipped with an instruction fetch unit and an instruction execution unit that independently perform instruction fetch and instruction execution in the microprogram area, and in which both are controlled while being synchronized by pipeline control, the above-mentioned instruction The execution unit is equipped with a function that detects the end of instruction execution and generates an instruction flag to change the flow of the microprogram; A microinstruction for processing an interrupt request for an address is accessed and fetched under the control of the instruction flag, and the instruction execution unit executes the instruction execution process while the instruction fetch unit itself is executing the state size. When detected, a function is provided to access and fetch a non-executable microinstruction at a specific address different from the specific address above under the control of the instruction flag; When the instruction execution unit executes the execution process and the state size being executed ends, the end of the instruction execution process of the instruction execution unit is detected while the instruction fetch unit is executing the state size. A pipeline control method that synchronizes the instruction fetch section and instruction execution section of the system.
JP5317477A 1977-05-11 1977-05-11 Pipeline control method Expired JPS6049337B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5317477A JPS6049337B2 (en) 1977-05-11 1977-05-11 Pipeline control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5317477A JPS6049337B2 (en) 1977-05-11 1977-05-11 Pipeline control method

Publications (2)

Publication Number Publication Date
JPS53139448A JPS53139448A (en) 1978-12-05
JPS6049337B2 true JPS6049337B2 (en) 1985-11-01

Family

ID=12935484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5317477A Expired JPS6049337B2 (en) 1977-05-11 1977-05-11 Pipeline control method

Country Status (1)

Country Link
JP (1) JPS6049337B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55123736A (en) * 1979-03-16 1980-09-24 Hitachi Ltd Interrupt control system
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
US4573118A (en) * 1983-03-31 1986-02-25 Fairchild Camera & Instrument Corporation Microprocessor with branch control
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
JPH0827713B2 (en) * 1986-02-25 1996-03-21 株式会社日立製作所 Data processing device

Also Published As

Publication number Publication date
JPS53139448A (en) 1978-12-05

Similar Documents

Publication Publication Date Title
JPS6239780B2 (en)
NZ201809A (en) Microprocessor
KR100210205B1 (en) Apparatus and method for providing a stall cache
JPS6049337B2 (en) Pipeline control method
JP2548428B2 (en) Timing generator
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
JPH0377137A (en) Information processor
JP2552738B2 (en) Data processing device
JPS6242301B2 (en)
JP2758624B2 (en) Speed control method of micro program
US5062036A (en) Instruction prefetcher
JPH0687221B2 (en) Information processing equipment
JP2825315B2 (en) Information processing device
JPS6148189B2 (en)
JP2544015B2 (en) Micro program processor
JPS60134346A (en) Parity error detecting system
JPH0317135B2 (en)
JPS6353644A (en) Instruction control device
JPS5896346A (en) Hierarchical arithmetic system
JPS6217840A (en) Microprogram control system based upon attribution flag
JPH04367034A (en) Interruption controller
JPH0340075A (en) Microcomputer
JPS6028014B2 (en) microprocessor
JPH04213120A (en) Information processor
JPH0243626A (en) Apparatus for controlling execution speed of computer processor