JPH056894B2 - - Google Patents

Info

Publication number
JPH056894B2
JPH056894B2 JP61068409A JP6840986A JPH056894B2 JP H056894 B2 JPH056894 B2 JP H056894B2 JP 61068409 A JP61068409 A JP 61068409A JP 6840986 A JP6840986 A JP 6840986A JP H056894 B2 JPH056894 B2 JP H056894B2
Authority
JP
Japan
Prior art keywords
instruction
branch
decoded
destination address
branch instruction
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 - Lifetime
Application number
JP61068409A
Other languages
English (en)
Other versions
JPS62226232A (ja
Inventor
Tosha Yoshida
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
Tokyo Shibaura Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP61068409A priority Critical patent/JPS62226232A/ja
Publication of JPS62226232A publication Critical patent/JPS62226232A/ja
Priority to US07/391,665 priority patent/US5088030A/en
Publication of JPH056894B2 publication Critical patent/JPH056894B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

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

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、先行制御方式(パイプライン制御
方式)のプロセツサに用いられる分岐命令の分岐
先アドレス算出回路に関する。
(従来の技術) 最近のマイクロプロセツサにおいては、処理速
度を向上させるために、先行制御方式(パイプラ
イン制御方式)が行なわれている。この先行制御
方式は、命令を何段かのステージに分割して処理
させ、おのおののステージを並列動作させること
により、1つの命令の終了前に次に処理される命
令の読み出しを行なうというものである。このよ
うな先行制御方式が行なわれるマイクロプロセツ
サにおいて、分岐命令(ジヤンプ命令)の実行処
理は、分岐命令の分岐先アドレスが算出された後
に行なわれる。
第3図は先行制御方式における分岐命令の分岐
先アドレスを算出する回路の構成図である。
命令デコーダ1はデータバスライン3から与え
られて処理されるすべての機械語による命令を解
読するものである。この命令デコーダ1により解
読された分岐命令は、その命令語長がILで指定
される領域に格納されるとともに、分岐命令の先
頭アドレスに対する分岐先アドレスの相対変位が
DISPで指定されるフイールドに与えられる。
このようにして解読された分岐命令は、先行制
御方式において、一般的にn段のパイプライン
(P1,P2,……,Pn)5を通過して実行段階Eに
達する。分岐命令が実行段階Eに達すると、この
分岐命令の実行処理が行なわれる前に、分岐命令
の分岐先アドレスが算出される。
実行段階Eに達した分岐命令の分岐先アドレス
は、レジスタ7に保持される実行段階Eに達した
分岐命令の先頭アドレスに、実行段階Eに達した
分岐命令の命令語長を第1の加算器9により加
え、さらに、実行段階Eに達した分岐命令の先頭
アドレスと命令語長とが加えられたものに、実行
段階Eに達した分岐命令の相対変位を第2の加算
器11により加えることにより算出される。
このように、分岐命令は命令デコーダ1により
解読され、この分岐命令がn段のパイプライン5
を通過して実行段階Eに達してから、分岐命令の
分岐先アドレスが算出されていた。このため、分
岐命令は実行段階Eに達しても、分岐先アドレス
が算出されるまで分岐命令の実行が行なわれず、
分岐命令の実行に時間を要していた。
(発明が解決しようとする問題点) 以上説明したように、分岐命令は実行段階Eに
達してからその分岐先アドレスが算出されていた
ために、分岐命令の実行処理に時間がかかり、プ
ロセツサ等における高速処理の障害になつてい
た。
そこで、この発明は、上記に鑑みてなされたも
のであり、構成の大型化ならびに複雑化を招くこ
となく、分岐命令の実行時間を短縮して、プロセ
ツサ等の高速処理能力を向上させた分岐先アドレ
ス算出回路を提供することを目的とする。
[発明の構成] (問題点を解決するための手段) 上記目的を達成するために、この発明は、命令
が格納されている領域から順次取り出される分岐
命令を含む全命令を、命令語長及び相対変位を含
んでデコードするデコード手段と、デコード手段
によつてデコードされる命令の先頭アドレスを保
持する保持手段と、デコード手段によつてデコー
ドされる全命令に対して、デコード結果から得ら
れる命令語長と保持手段に保持された先頭アドレ
スを加算し、デコードされた命令の次にデコード
される命令の先頭アドレスを算出し、算出結果で
保持手段の保持内容を更新する第1の加算手段
と、デコード手段によつてデコードされた命令が
分岐命令である場合には、この分岐命令に含まれ
る相対変位と第1の加算手段によつて得られた算
出結果を加算して分岐命令の分岐先アドレスを算
出し、算出した分岐先アドレスを、デコード手段
によつてデコードされた分岐命令の分岐先アドレ
スを保持するフイールドに格納する第2の加算手
段とから構成される。
(作用) 上記構成において、この発明は、命令が格納さ
れている領域から順次取り出される命令をデコー
ドして得られる命令語長と相対変位及びデコード
中の命令の先頭アドレスを加算することによつ
て、分岐命令の分岐先アドレスをデコードステー
ドにおいて算出し、分岐命令が実行処理される前
に分岐命令の分岐先アドレスを算出するようにし
ている。
(実施例) 以下図面を用いてこの発明の実施例を説明す
る。
第1図はこの発明の一実施例に係る分岐先アド
レス算出回路の構成を示す図である。この分岐先
アドレス算出回路は、先行制御方式において実行
処理される分岐命令の分岐先アドレスを、この分
岐命令が実行段階Eに達する前に算出するもので
ある。
なお、第1図において、第3図と同符号のもの
は同一機能を有するものであり、その説明は省略
する。
この分岐命令の分岐先アドレス算出回路は、レ
ジスタ13、第1の加算器15及び第2の加算器
17を備えて構成されている。
レジスタ13はデータバスライン3を介して前
述した命令デコーダ1に供給され、命令デコーダ
1により解読される全命令に対して、命令の先頭
アドレスを保持するものである。したがつて、こ
のレジスタ13は、命令デコーダ1により解読さ
れている命令が分岐命令である場合には、この分
岐命令の先頭アドレスを保持する保持手段として
機能することになる。
第1の加算手段として機能する第1の加算器1
5は、命令デコーダ1により解読される全命令に
対して、命令の命令語長に、レジスタ13に保持
されている命令の先頭アドレスを加算するもので
ある。この加算結果、すなわち、命令デコーダ1
により解読された命令の次に命令デコーダ1によ
り解読される命令の先頭アドレスは、レジスタ1
3及び第2の加算器17に供給される。したがつ
て、命令デコーダ1によつて解読された分岐命令
の先頭アドレスは、第1の加算器15の加算結果
として得られる。
第2の加算手段として機能する第2の加算器1
7は、命令デコーダ1により解読された分岐命令
の相対変位と第1の加算器15の加算結果を加算
する。すなわち、第2の加算器17は、分岐命令
の相対変位と分岐命令の次にデコードされる命令
の先頭アドレスを加算する。したがつて、命令デ
コーダ1により解読された分岐命令の分岐先アド
レスは、この第2の加算器17の加算結果として
得られる。この第2の加算器17で得られた加算
結果は、1段目のパイプラインP1に与えられる
分岐命令の中のDISPで指定されるフイールドの
情報として与えられる。
また、この1段目のパイプラインP1に与えら
れる命令のILで指定されるフイールドには、命
令デコーダ1により解読された全命令に対して、
命令の命令語長が与えられる。
このように、この発明の一実施例に係る分岐命
令の分岐先アドレス算出回路は構成されており、
次にこの算出回路の作用を説明する。
機械語による全命令のうち分岐命令がデータバ
スライン3を介して命令デコーダ1に供給される
と、この分岐命令は命令デコーダ1により解読さ
れて、解読された分岐命令の命令語長は、1段目
のパイプラインP1に与えられる分岐命令のILで
指定されるフイールドに格納されるとともに、第
1の加算器15に供給される。また、命令デコー
ダ1により解読された分岐命令の相対変位は、第
2の加算器17に供給される。
第1の加算器15に供給された分岐命令の命令
語長と、レジスタ13に保持されたこの分岐命令
の先頭アドレスとは第1の加算器15により加算
され、加算結果がレジスタ13に供給されて保持
されるとともに、第2の加算器17に供給され
る。
第2の加算器17に供給された第1の加算器1
5の加算結果には、命令デコーダ1により解読さ
れた分岐命令の相対変位が第2の加算器17によ
り加算される。加算結果は分岐命令の分岐先アド
レスを示しており、この分岐先アドレスが、1段
目のパイプラインP1におけるDISPのフイールド
の情報として与えられる。
そして、DISPのフイールドに分岐先アドレス
が与えられた分岐命令は、n段のパイプライン5
を通り実行段階Eに達する。したがつて、分岐命
令は、この分岐命令が実行段階Eに達する前に、
分岐命令の分岐先アドレスが判明することにな
る。
第2図は実行段階Eに達した分岐命令の実行段
階E以後のタイムチヤートであり、同図Aは前述
した従来例を示しており、同図Bはこの実施例を
示している。
従来例においては、分岐命令が実行段階Eに達
すると、この分岐命令が無条件分岐命令である
か、あるいは条件付分岐命令であるかの判断が行
なわれた後に、分岐命令の分岐先アドレス(論理
アドレス)が算出され、この分岐先アドレスが分
岐先の命令が格納されている例えば記憶装置(図
示せず)のアドレス(物理アドレス)に変換され
て、分岐先アドレスで指定された分岐先の命令の
フエツチが行なわれる。
これに対して、第2図Bに示す如く、この実施
例においては、実行段階Eに達した分岐命令は、
そのDISPのフイールドにはすでに分岐先アドレ
ス(論理アドレス)が格納されているために、分
岐命令の分岐条件の有無が判断された後、分岐先
アドレスは物理アドレスに変換されて、分岐先ア
ドレスで指定された分岐先の命令のフエツチが行
なわれる。したがつて、この実施例においては、
第2図から明らかなように、分岐命令の実行時間
が短縮されることになる。
[発明の効果] 以上説明したように、この発明によれば、分岐
命令の分岐先アドレスを、分岐命令の実行段階以
前に、デコードされた分岐命令の次にデコードさ
れる命令の先頭アドレスとデコードされた分岐命
令の相対変位とを加算して算出するようにしたの
で、実行段階に達した分岐命令は分岐先アドレス
の算出を待つことなく実行処理されて、分岐命令
の実行時間が短縮される。これにより、構成の大
型化ならびに複雑化を招くことなく、分岐命令の
高速処理を向上させた分岐先アドレス算出回路を
提供することができる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係る分岐先アド
レス算出回路の構成図、第2図は第1図及び第3
図のタイムチヤート図、第3図は従来の分岐先ア
ドレス算出回路の構成図である。 図の主要な部分を表わす符号の説明、1……命
令デコーダ、13……レジスタ、15……第1の
加算器、17……第2の加算器。

Claims (1)

  1. 【特許請求の範囲】 1 命令が格納されている領域から順次取り出さ
    れる分岐命令を含む全命令を、命令語長及び相対
    変位を含んでデコードするデコード手段と、 デコード手段によつてデコードされる命令の先
    頭アドレスを保持する保持手段と、 デコード手段によつてデコードされる全命令に
    対して、デコード結果から得られる命令語長と保
    持手段に保持された先頭アドレスを加算し、デコ
    ードされた命令の次にデコードされる命令の先頭
    アドレスを算出し、算出結果で保持手段の保持内
    容を更新する第1の加算手段と、 デコード手段によつてデコードされた命令が分
    岐命令である場合には、この分岐命令に含まれる
    相対変位と第1の加算手段によつて得られた算出
    結果を加算して分岐命令の分岐先アドレスを算出
    し、算出した分岐先アドレスを、デコード手段に
    よつてデコードされた分岐命令の分岐先アドレス
    を保持するフイールドに格納する第2の加算手段
    と を有することを特徴とする分岐先アドレス算出回
    路。
JP61068409A 1986-03-28 1986-03-28 分岐先アドレス算出回路 Granted JPS62226232A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61068409A JPS62226232A (ja) 1986-03-28 1986-03-28 分岐先アドレス算出回路
US07/391,665 US5088030A (en) 1986-03-28 1989-08-08 Branch address calculating system for branch instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61068409A JPS62226232A (ja) 1986-03-28 1986-03-28 分岐先アドレス算出回路

Publications (2)

Publication Number Publication Date
JPS62226232A JPS62226232A (ja) 1987-10-05
JPH056894B2 true JPH056894B2 (ja) 1993-01-27

Family

ID=13372847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61068409A Granted JPS62226232A (ja) 1986-03-28 1986-03-28 分岐先アドレス算出回路

Country Status (2)

Country Link
US (1) US5088030A (ja)
JP (1) JPS62226232A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
JPH0769808B2 (ja) * 1988-02-23 1995-07-31 三菱電機株式会社 データ処理装置
US6253307B1 (en) * 1989-05-04 2001-06-26 Texas Instruments Incorporated Data processing device with mask and status bits for selecting a set of status conditions
JP2570859B2 (ja) * 1989-05-25 1997-01-16 日本電気株式会社 データ処理装置
US5454089A (en) * 1991-04-17 1995-09-26 Intel Corporation Branch look ahead adder for use in an instruction pipeline sequencer with multiple instruction decoding
US5539888A (en) * 1993-12-23 1996-07-23 Unisys Corporation System and method for processing external conditional branch instructions
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
JP3504355B2 (ja) * 1994-12-06 2004-03-08 松下電器産業株式会社 プロセッサ
US6003127A (en) 1995-10-04 1999-12-14 Nippondenso Co., Ltd. Pipeline processing apparatus for reducing delays in the performance of processing operations
US6279106B1 (en) 1998-09-21 2001-08-21 Advanced Micro Devices, Inc. Method for reducing branch target storage by calculating direct branch targets on the fly
DE19905510A1 (de) * 1999-02-10 2000-08-31 Siemens Ag Mikroprozessor und Verfahren zur Adressierung in einem Mikroprozessor
US7487334B2 (en) * 2005-02-03 2009-02-03 International Business Machines Corporation Branch encoding before instruction cache write
US20110093658A1 (en) * 2009-10-19 2011-04-21 Zuraski Jr Gerald D Classifying and segregating branch targets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5039437A (ja) * 1973-08-10 1975-04-11
JPS529108A (en) * 1975-07-14 1977-01-24 Matsushita Electric Ind Co Ltd Pump unit for shallow well
JPS5485650A (en) * 1977-12-21 1979-07-07 Hitachi Ltd Branch instruction control system
JPS586972A (ja) * 1981-07-02 1983-01-14 Nec Corp 電子ビ−ム真空蒸着用ハ−スライナ−

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
JPS6029126B2 (ja) * 1977-01-14 1985-07-09 株式会社日立製作所 デ−タ処理装置
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
US4530050A (en) * 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
JPS58189739A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd デ−タ処理システム
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
JPS59174948A (ja) * 1983-03-25 1984-10-03 Toshiba Corp 情報処理装置
US4862346A (en) * 1985-07-02 1989-08-29 Vlsi Technology, Inc. Index for a register file with update of addresses using simultaneously received current, change, test, and reload addresses
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5039437A (ja) * 1973-08-10 1975-04-11
JPS529108A (en) * 1975-07-14 1977-01-24 Matsushita Electric Ind Co Ltd Pump unit for shallow well
JPS5485650A (en) * 1977-12-21 1979-07-07 Hitachi Ltd Branch instruction control system
JPS586972A (ja) * 1981-07-02 1983-01-14 Nec Corp 電子ビ−ム真空蒸着用ハ−スライナ−

Also Published As

Publication number Publication date
US5088030A (en) 1992-02-11
JPS62226232A (ja) 1987-10-05

Similar Documents

Publication Publication Date Title
JP2603626B2 (ja) データ処理装置
JPH056894B2 (ja)
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
US5175827A (en) Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table
JP2723238B2 (ja) 情報処理装置
US6044455A (en) Central processing unit adapted for pipeline process
JP2555664B2 (ja) 分岐ヒストリテーブル書込制御方式
JP2772100B2 (ja) 並列命令フェッチ機構
JPS60117335A (ja) 情報処理装置
JPH01291327A (ja) 処理モード先取り制御方式
JP2856703B2 (ja) プロセッサ
JP2843844B2 (ja) 並列演算処理装置
JP3431503B2 (ja) 情報処理装置およびプログラム制御方法
JP2944335B2 (ja) 情報処理装置
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JPS6027029A (ja) デ−タ処理装置
JPS6232507B2 (ja)
JPH0353322A (ja) 情報処理装置
JPH0715662B2 (ja) 命令の先取りを行なう情報処理装置
JPH01239638A (ja) 分岐予測を行う情報処理装置
JPH01271842A (ja) 情報処理装置
JPH059818B2 (ja)
JPH0462637A (ja) マイクロプロセッサ
JPH06168120A (ja) 命令先取り装置
JPH0457021B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term