JPH0431133B2 - - Google Patents
Info
- Publication number
- JPH0431133B2 JPH0431133B2 JP19465085A JP19465085A JPH0431133B2 JP H0431133 B2 JPH0431133 B2 JP H0431133B2 JP 19465085 A JP19465085 A JP 19465085A JP 19465085 A JP19465085 A JP 19465085A JP H0431133 B2 JPH0431133 B2 JP H0431133B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- pipeline
- control
- read
- 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
Links
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 7
- 230000010365 information processing Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】
〔概要〕
1サイクルに1命令ずつ入力可能なパイプライ
ン制御の情報処理装置において、オペランド用バ
ツフアメモリと命令用バツフアメモリとを別々に
設け、それぞれ独立にパイプライン制御されるよ
うにして、オペランドと命令の読出し競合をなく
す。[Detailed Description of the Invention] [Summary] In a pipeline-controlled information processing device that can input one instruction per cycle, an operand buffer memory and an instruction buffer memory are provided separately so that each can be pipeline-controlled independently. to eliminate read conflicts between operands and instructions.
本発明は、パイプライン制御の情報処理装置に
関するものであり、特にオペランドおよび命令の
読出しのためのパイプライン制御方法に関する。
The present invention relates to an information processing device for pipeline control, and particularly to a pipeline control method for reading operands and instructions.
パイプライン制御は、1つの命令の処理を複数
のステージ(ステツプ)に分け、複数の命令を所
定のサイクルずつずらせて入力し、各ステージで
重複しないように並行処理することにより、1命
令当たりの平均処理時間を短縮するものである。
Pipeline control divides the processing of one instruction into multiple stages (steps), inputs multiple instructions at predetermined cycle intervals, and processes them in parallel to avoid duplication at each stage. This shortens the average processing time.
一般に命令の処理は、命令の読出し、命令の解
読、オペランドの読出し、命令の実行に大きく分
けることができ、これらはさらにいくつかの細か
いステージに分割される。 In general, instruction processing can be broadly divided into instruction reading, instruction decoding, operand reading, and instruction execution, which are further divided into several detailed stages.
このようなパイプライン制御を用いた情報処理
装置では、パイプライン中にできるだけ多くの命
令を空白なしに詰め込み、待ちをできるだけ少な
くすることが重要である。 In an information processing device using such pipeline control, it is important to pack as many instructions as possible into the pipeline without any blank spaces, and to minimize waiting time.
従来、パイプライン制御には、2サイクルごと
に1命令ずつ入力するサイクルパイプライン方式
が多く用いられている。この2サイクルパイプラ
イン方式の場合、オペランドあるいは命令の高速
読出しのためのバツフアメモリのアクセスに2サ
イクルがあてられており、ブランチ命令や並行処
理される命令間でのオペランドの読出しと命令の
読出しとの競合が避けられるように工夫されてい
る。 Conventionally, a cycle pipeline method in which one instruction is input every two cycles is often used for pipeline control. In the case of this two-cycle pipeline method, two cycles are allocated to buffer memory access for high-speed reading of operands or instructions. Designed to avoid conflicts.
これに対して、最近高速化に対する要求から1
サイクルごとに1命令ずつ入力する1サイクルパ
イプライン方式の装置が現れている。この1サイ
クルパイプライン方式の場合はオペランド読出し
と命令読出しのバツフアクセスが競合すると、待
ちを生じる可能性がある。 On the other hand, due to the recent demand for faster speeds,
One-cycle pipeline type devices have appeared in which one instruction is input in each cycle. In the case of this one-cycle pipeline system, if buffer accesses for operand reading and instruction reading conflict, a wait may occur.
従来の1サイクルパイプライン方式では、オペ
ランドや命令読出しのためのバツアメモリアクセ
スで待ちが生じた場合、パイプラインは完全にイ
ンターロツク状態となり、その待ち時間は命令の
実行時間に加算されるため、パイプラインの性能
を低下させるという問題があつた。
In the conventional one-cycle pipeline method, if a wait occurs during buffer memory access to read an operand or instruction, the pipeline becomes completely interlocked and the wait time is added to the instruction execution time. , there was a problem of degrading pipeline performance.
本発明は、1サイクルパイプライン方式におい
て、オペランド用バツフアメモリと命令用バツフ
アメモリとを別個に設け、それぞれのアクセスを
独立したパイプラインで制御できるように構成す
ることにより、オペランドと命令のバツフアメモ
リアクセスの競合による待ちの発生を防止するも
のである。なおこのため、バツフアメモリとも
に、アドレス計算用加算器およびアドレス変換バ
ツフアも、オペランド用と命令読出し用とに別個
に設けられる。
The present invention provides buffer memory access for operands and instructions by separately providing a buffer memory for operands and a buffer memory for instructions in a one-cycle pipeline system, and configuring each access to be controlled by an independent pipeline. This prevents waiting due to contention. For this reason, in addition to the buffer memory, an adder for address calculation and an address conversion buffer are provided separately for operands and for reading instructions.
第1図は、本発明の原理的構成を示す図であ
る。図において、1は汎用レジスタGR、2はベ
ースレジスタBR、3はインデクスレジスタXR、
4はデイスプレイスメントレジスタDR、5はオ
ペランドアドレス用加算器、6はオペランド実効
アドレスレジスタOEAR、7はオペランド用バ
ツフアメモリ部O−LBS、8はオペランドワー
ドOWR、9は命令アドレスレジスタIARA、1
0は命令アドレスレジスタIARB、11はインク
リメントレジスタPFO、12は命令読出しアド
レス用加算器、13はセレクタ、14は命令実効
アドレスレジスタIEAR、15は命令用バツフア
メモリ部I−LBS、16は命令バツフア、17
は命令ワードレジスタIWRを表す。 FIG. 1 is a diagram showing the basic configuration of the present invention. In the figure, 1 is general-purpose register GR, 2 is base register BR, 3 is index register XR,
4 is a displacement register DR, 5 is an adder for operand addresses, 6 is an operand effective address register OEAR, 7 is a buffer memory section for operands O-LBS, 8 is an operand word OWR, 9 is an instruction address register IARA, 1
0 is an instruction address register IARB, 11 is an increment register PFO, 12 is an adder for instruction read address, 13 is a selector, 14 is an instruction effective address register IEAR, 15 is an instruction buffer memory unit I-LBS, 16 is an instruction buffer, 17
represents the instruction word register IWR.
ここで、図の上段および下段は、それぞれ独立
したパイプラインを構成し、またオペランド用バ
ツフアメモリ部O−LBS7および命令用バツフ
アメモリ部I−LBS15は、それぞれバツフア
メモリとともに、アドレス変換バツフアとTLB
(テーブル・ルツクアサイド・バツフア)および
TAG(タグ部)とを含んでいる。 Here, the upper and lower stages of the diagram constitute independent pipelines, and the operand buffer memory section O-LBS7 and the instruction buffer memory section I-LBS15 each constitute an address conversion buffer and a TLB.
(table rutsquaside batshua) and
It includes TAG (tag section).
実行すべき命令は、命令バツフア16から取り
出され、命令デコードサイクルDで解読されて、
一部は汎用レジスタGRIを経て、オペランドアド
レスのベース、インデクス、デイスプレイスメン
トの各値が、それぞれBR2、XR3、DR4に設
定される。 The instruction to be executed is taken from the instruction buffer 16, decoded in an instruction decode cycle D, and
A portion of the data passes through the general-purpose register GRI, and the base, index, and displacement values of the operand address are set in BR2, XR3, and DR4, respectively.
オペランド用加算器5は、アドレス計算サイク
ルAで、BR2、XR3、DR4の各値を加算し
て、オペランドアクセスの場合、オペランド実効
アドレスを生成し、OEAR6に格納し、またブ
ランチ命令のブランチ先ターゲツト命令の読出し
アクセスの場合には、命令実効アドレスを生成
し、セレクタ13を介してIEAR14に格納す
る。 Operand adder 5 adds the values of BR2, In the case of instruction read access, an instruction effective address is generated and stored in the IEAR 14 via the selector 13.
オペランドアクセスの場合、次のアドレス変換
サイクルTで、オペランド用バツフアメモリ部O
−LBS7において、オペランド実効アドレスは、
アドレス変換バツフアを介してTLBで仮想記憶
のための論理アドレスから実アドレスへの変換が
行われる。 In the case of operand access, in the next address conversion cycle T, the operand buffer memory section O
- In LBS7, the operand effective address is
Translation from a logical address for virtual storage to a real address is performed in the TLB via an address translation buffer.
さらに次のバツフアサイクルBで、バツフアメ
モリをアクセスするためのTAG参照が行われ、
ヒツトした場合に、バツフアメモリから読出され
たオペランドが、OWR8に格納される。 Furthermore, in the next buffer cycle B, a TAG reference is made to access the buffer memory.
When a hit occurs, the operand read from the buffer memory is stored in OWR8.
OWR8のオペランドは、次の実行サイクルE
で、演算回路へ転送され、処理される。 The operand of OWR8 is the next execution cycle E
Then, it is transferred to an arithmetic circuit and processed.
また命令読出しアクセスの場合には、IEAR1
4に設定された命令実効アドレスについて命令用
バツフアメモリ部I−LBS15において、Tサ
イクル,Bサイクルで、それぞれ同様なアドレス
変換およびバツフアメモリアクセスが行われ、読
出された命令は、IWR17を介して、命令バツ
フア16に格納される。 In addition, in the case of instruction read access, IEAR1
Similar address conversion and buffer memory access are performed in the instruction buffer memory unit I-LBS 15 in the T cycle and B cycle for the instruction effective address set to 4, and the read instruction is read out via the IWR 17. It is stored in the instruction buffer 16.
命令実効アドレスは、セレクタ13の出口か
ら、IARA9およびIAR10のいずれか一方にも
格納され、命令読出しアドレス用加算器12によ
りPFO11のインクリメント値(命令幅でたと
えば8バイト)を加算されることにより、次の順
位の命令実効アドレスが生成される。 The instruction effective address is stored in either IARA 9 or IAR 10 from the exit of selector 13, and is added with the increment value of PFO 11 (for example, 8 bytes in instruction width) by instruction read address adder 12. The next order of instruction effective address is generated.
本発明によれば、たとえばブランチ命令の実行
時にオペランドアドレス用の加算器を用いてブラ
ンチ先アドレスを計算し、そのアドレスを命令読
出しアドレスとする事で、ブランチ命令のブラン
チ先の命令の読出しに関する制御をオペランドパ
イプラインから命令読出しパイプラインへ完全移
行させ、オペランドパイプラインを次の命令に対
して、開放することができる。
According to the present invention, for example, when a branch instruction is executed, a branch destination address is calculated using an adder for operand addresses, and that address is used as an instruction read address, thereby controlling the reading of the branch destination instruction of the branch instruction. The operand pipeline can be completely transferred from the operand pipeline to the instruction read pipeline, and the operand pipeline can be opened for the next instruction.
また逆に、オペランドパイプラインが、バツフ
アメモリにオペランドがないなどの別の原因でイ
ンターロツクされていても、命令読出しパイプラ
インに制御を移行することにより、ブランチ先の
命令の読出しを早く行うことが可能となる。 Conversely, even if the operand pipeline is interlocked due to another reason such as no operand in the buffer memory, by transferring control to the instruction read pipeline, the branch destination instruction can be read quickly. It becomes possible.
第2図、第3図、第4図は、それぞれ本発明に
よるパイプラインの命令実行制御シーケンス例を
示すフローである。
FIG. 2, FIG. 3, and FIG. 4 are flowcharts each showing an example of a pipeline instruction execution control sequence according to the present invention.
図示の例は、いずれもブランチ命令がブランチ
先のアドレスを計算し、そのターゲツトの命令を
読出す処理について示している。各図中、5はオ
ペランドアドレス用加算器、9は命令実効アドレ
スレジスタIARA、12は命令読出しアドレス用
加算器、15は命令用バツフアメモリ部I−
LBSである。またDは命令デコード、Aはアド
レス計算、Tはアドレス変換、Bはバツフアアク
セス、Eは実行、Wは書き込み、Iは命令のアド
レス生成の各サイクルを表している。 The illustrated examples all show processing in which a branch instruction calculates a branch destination address and reads the target instruction. In each figure, 5 is an adder for operand addresses, 9 is an instruction effective address register IARA, 12 is an adder for instruction read addresses, and 15 is an instruction buffer memory section I-
It is LBS. Further, D stands for instruction decoding, A for address calculation, T for address translation, B for buffer access, E for execution, W for writing, and I for instruction address generation.
第2図の例では、オペランドパイプラインのオ
ペランドアドレス用加算器5が、Aサイクルでブ
ランチ命令のブランチ先アドレスを計算し、命令
読出しパイプラインに実行を要求し、転送する。
命令読出しパイプラインは直ちに受付け、そのT
サイクル、Dサイクルで命令用バツフアメモリ部
I−LBS15により、アドレス変換およびバツ
フアアクセスを行い、ブランチ先の命令を読出
す。読出されたブランチ先命令は無条件にオペラ
ンドパイプラインに投入されるが、先のブランチ
命令の実行においてブランチ条件が満足された場
合にだけ実行されるように制御される。 In the example of FIG. 2, the operand address adder 5 of the operand pipeline calculates the branch destination address of the branch instruction in the A cycle, requests the instruction read pipeline to execute it, and transfers it.
The instruction read pipeline accepts the instruction immediately and its T
In cycle and D cycle, the instruction buffer memory unit I-LBS15 performs address conversion and buffer access, and reads out the branch destination instruction. The read branch destination instruction is unconditionally input into the operand pipeline, but is controlled to be executed only if the branch condition is satisfied in the execution of the previous branch instruction.
第3図は、第2図の場合と異なり、オペランド
パイプラインから命令読出しパイプラインへの要
求が直ちには受付けられないため、Iサイクルで
一旦IARA9にアドレスを格納しておいて、1サ
イクル後にアドレス変換およびバツフアアクセス
が実行される例である。 In Fig. 3, unlike the case in Fig. 2, a request from the operand pipeline to the instruction read pipeline is not accepted immediately, so the address is temporarily stored in IARA9 in the I cycle, and then the address is returned after one cycle. This is an example in which conversion and buffer access are performed.
第4図は、オペランドパイプラインがブランチ
命令のAサイクルでインターロツクしたが、命令
読出しパイプラインはインターロツクししないた
め、ブランチ先命令の先行読出しが実行され、イ
ンターロツク解除後に、ブランチ条件が満足され
ていれば、そのブランチ先命令が直ちに実行され
る例である。 In Figure 4, the operand pipeline interlocks in the A cycle of the branch instruction, but the instruction read pipeline does not interlock, so the pre-read of the branch destination instruction is executed, and after the interlock is released, the branch condition is satisfied. This is an example in which the branch destination instruction is executed immediately.
本発明によれば、オペランドパイプラインと命
令読出しパイプラインとが分離され、それぞれ独
立に制御可能にされたことにより、オペランドア
クセスと、命令読出しアクセスとの完全な並行理
が実現でき、待ち時間の減少により、性能向上を
図ることができる。
According to the present invention, since the operand pipeline and the instruction read pipeline are separated and can be controlled independently, it is possible to realize complete parallelism between operand access and instruction read access, and to reduce latency. By reducing this, performance can be improved.
第1図は本発明の原理的構成図、第2図、第3
図、第4図はそれぞれ本発明の実施例によるパイ
プラインの命令実行制御シーケンスのフロー図で
ある。
第1図中、5……オペランドアドレス用加算
器、7……オペランド用バツフアメモリ部O−
LBS、12……命令読出しアドレス用加算器、
15……命令用バツフアメモリ部。
Figure 1 is a basic configuration diagram of the present invention, Figures 2 and 3.
4 are flowcharts of a pipeline instruction execution control sequence according to an embodiment of the present invention. In Fig. 1, 5...adder for operand address, 7... buffer memory unit for operand O-
LBS, 12...Adder for instruction read address,
15...Buffer memory section for instructions.
Claims (1)
オペランド制御用のパイプラインと命令読出し制
御用のパイプラインとを備え、 それぞれのパイプラインには、オペランド用の
バツフアメモリ及びアドレス変換バツフアと、命
令用のバツフアメモリ及びアドレス変換バツフア
とを独立に設けるとともに、オペランドアドレス
計算用の加算器5と命令読出しアドレス計算用の
加算器12とを独立に設け、 前記オペランドアドレス計算用の加算器5で計
算されたアドレスと、前記命令読出しアドレス計
算用の加算器12で計算されたアドレスの一方を
選択して命令読出し用のアドレスとして命令読出
し制御用のパイプラインに与える選択手段を有
し、 プランチ命令以外の通常の命令の時はオペラン
ド制御用のパイプラインと命令読出し制御用のパ
イプラインは独立に動作し、 前記オペランド制御用のパイプラインにブラン
チ命令が投入された時は、ブランチ先命令アドレ
スの計算は、オペランドアドレス計算用の加算器
5で、前記オペランド制御用のパイプラインのア
ドレス計算のタイミング時に計算し、 前記オペランドアドレス計算用の加算器5で計
算された前記ブランチ先命令アドレスは、前記加
算器5による計算後、前記選択手段によつて命令
読出し制御用のパイプラインに与えられ、以降の
命令読出しに関する制御は命令読出し制御用のパ
イプライン側に移行して行うことを特徴とするパ
イプライン制御方法。 2 特許請求の範囲第1項において、 前記選択手段によつて命令読出し制御用のパイ
プラインに与えられたブランチ先アドレスは、前
記命令用のアドレス変換バツフアでアドレス変換
された後に命令読出し用のバツフアメモリからブ
ランチ先命令を読出すものであつて、 前記オペランド制御用のパイプラインのアドレ
ス計算用の加算器5でアドレス計算のタイミング
時に計算されたブランチ先アドレスは、前記アド
レス計算のタイミング時に前記選択手段によつて
命令読出し制御用のパイプラインに渡されて命令
読出しアクセスが要求され、前記命令読出し制御
用のパイプラインが当該要求を直ちに受付られな
い場合は、前記ブランチ先アドレスを命令読出し
制御用のパイプラインに設けられた命令アドレス
レジスタ9にいつたん保持し、前記命令読出し制
御用のパイプラインに前記オペランド制御用のパ
イプラインからブランチ先アドレスを渡したタイ
ミングの後のタイミングで、前記命令読出し制御
用のパイプラインに設けられた命令アドレスレジ
スタ9に保持されたブランチ先アドレスを当該命
令読出し制御用のパイプラインのアドレス変換バ
ツフアに送つてアドレス変換し前記命令読出し用
のバツフアメモリからブランチ先命令を読み出す
ことを特徴とするパイプライン制御方法。[Claims] 1. In a pipeline control information processing device,
A pipeline for operand control and a pipeline for instruction read control are provided, and each pipeline is independently provided with a buffer memory and address translation buffer for operands, and a buffer memory and address translation buffer for instructions, An adder 5 for calculating an operand address and an adder 12 for calculating an instruction read address are provided independently, and the address calculated by the adder 5 for calculating the operand address and the adder 12 for calculating the instruction read address are provided independently. It has a selection means that selects one of the addresses calculated in and supplies it to the instruction read control pipeline as the instruction read address, and when the instruction is a normal instruction other than a plant instruction, the operand control pipeline and the instruction The pipeline for read control operates independently, and when a branch instruction is input to the pipeline for operand control, the branch destination instruction address is calculated by the adder 5 for calculating the operand address. The branch destination instruction address calculated by the adder 5 for operand address calculation is calculated at the timing of the address calculation of the pipeline for the operand address, and after the calculation by the adder 5, the instruction readout control is performed by the selection means. 1. A pipeline control method characterized in that control regarding subsequent instruction reading is transferred to a pipeline for controlling instruction reading. 2. In claim 1, the branch destination address given to the instruction read control pipeline by the selection means is converted into an address by the instruction address conversion buffer, and then transferred to the instruction read buffer memory. A branch destination instruction is read from a branch destination instruction, and the branch destination address calculated at the address calculation timing by the address calculation adder 5 of the operand control pipeline is read from the branch destination instruction at the address calculation timing. If an instruction read access is requested by passing it to a pipeline for instruction read control, and the pipeline for instruction read control cannot accept the request immediately, the branch destination address is passed to the pipeline for instruction read control. The instruction readout control is performed at a timing after the timing when the branch destination address is temporarily held in the instruction address register 9 provided in the pipeline and passed from the operand control pipeline to the instruction readout control pipeline. The branch destination address held in the instruction address register 9 provided in the instruction pipeline is sent to the address conversion buffer of the instruction read control pipeline, the address is converted, and the branch destination instruction is read from the instruction read buffer memory. A pipeline control method characterized by:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19465085A JPS6255735A (en) | 1985-09-03 | 1985-09-03 | Pipeline control system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19465085A JPS6255735A (en) | 1985-09-03 | 1985-09-03 | Pipeline control system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6255735A JPS6255735A (en) | 1987-03-11 |
| JPH0431133B2 true JPH0431133B2 (en) | 1992-05-25 |
Family
ID=16328035
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19465085A Granted JPS6255735A (en) | 1985-09-03 | 1985-09-03 | Pipeline control system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6255735A (en) |
-
1985
- 1985-09-03 JP JP19465085A patent/JPS6255735A/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6255735A (en) | 1987-03-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2918631B2 (en) | decoder | |
| US6026478A (en) | Split embedded DRAM processor | |
| JP2550213B2 (en) | Parallel processing device and parallel processing method | |
| US7395409B2 (en) | Split embedded DRAM processor | |
| EP0772819B1 (en) | Apparatus and method for efficiently determining addresses for misaligned data stored in memory | |
| US6687808B2 (en) | Data processor using indirect register addressing | |
| JPH07253887A (en) | Predecoding of instruction in superscalar processor and direction- operating mechanism | |
| JPH03233630A (en) | Information processor | |
| EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
| JPH0431133B2 (en) | ||
| JPS626261B2 (en) | ||
| JPS60178580A (en) | Instruction control system | |
| JP2001216275A (en) | Image processing apparatus and image processing method | |
| JP2731740B2 (en) | Parallel computer with communication register | |
| JPH03268041A (en) | Cache operation clarifying computer | |
| JPH059818B2 (en) | ||
| JP2636821B2 (en) | Parallel processing unit | |
| JP2586690B2 (en) | Instruction prefetch device | |
| JP3668643B2 (en) | Information processing device | |
| JPS59771A (en) | Selection control system of operation processing section in data processor | |
| JPS6153754B2 (en) | ||
| JPH05289870A (en) | Parallel instruction execution control system | |
| US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| JPH06332700A (en) | Information processing equipment | |
| Craig et al. | PIPE: A High Performance VLSI Processor Implementation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |