JPH05100852A - 条件分岐高速化方式 - Google Patents

条件分岐高速化方式

Info

Publication number
JPH05100852A
JPH05100852A JP25997891A JP25997891A JPH05100852A JP H05100852 A JPH05100852 A JP H05100852A JP 25997891 A JP25997891 A JP 25997891A JP 25997891 A JP25997891 A JP 25997891A JP H05100852 A JPH05100852 A JP H05100852A
Authority
JP
Japan
Prior art keywords
instruction
branch
unit
slot
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP25997891A
Other languages
English (en)
Inventor
Yoichi Yano
陽一 矢野
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP25997891A priority Critical patent/JPH05100852A/ja
Publication of JPH05100852A publication Critical patent/JPH05100852A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】パイプライン構造をとる中央処理装置1の条件
分岐命令を高速化することにある。 【構成】レジスタファイル6や書き戻し制御ユニット7
を中央処理装置1に備え、2個の遅延スロットを持つパ
イプライン構造における条件分岐命令を有する。第1の
遅延スロットを分岐時に、また第2の遅延スロットを非
分岐時にのみ実行する命令スロットと定義し、レジスタ
ファイル6への書き戻しを書き戻し制御ユニット7によ
り制御する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は条件分岐の高速化方式に
関し、特に半導体集積回路技術を応用したマイクロプロ
セッサの設計における条件分岐命令を高速化するための
方式に関する。
【0002】
【従来の技術】半導体技術の進歩により、高性能マイク
ロプロセッサを実現する基板技術が揃うようになってき
ている。この高性能マイクロプロセッサを実現するとき
に重要となる設計方法にパイプライン処理がある。パイ
プライン処理とは、命令の実行を複数のステージに分割
し、別個のハードウェアユニットが各々のステージを流
れ作業的に処理することであり、高い性能を達成する方
式である。一例として、次のパイプライン構造を考え
る。
【0003】IF 命令読み出し RD レジスタ読み出し ALU 演算 MEM メモリアクセス WB レジスタへの書き戻し このパイプライン構成での一命令の処理は、 IF RD ALU MEM WB と書き表すことができる。また複数の引続く命令は、 (1) IF RD ALU MEM WB (2) IF RD ALU MEM WB (3) IF RD ALU MEM WB と実行される。ここで、上述の(1)〜(3)は引続く
命令の各々であり、流れ作業的に実行されているのがわ
かる。
【0004】
【発明が解決しようとする課題】上述したパイプライン
構造においては、順番に命令を実行するときには有効に
パイプラインが動作するので高い性能を発揮できる。し
かし、分岐命令を実行するときには分岐した先の命令コ
ードをフェッチしなければならないため、パイプライン
を一度停止させなければならないという問題がある。す
なわち、分岐命令によるパイプラインの乱れが生じると
いうことである。
【0005】上述したパイプライン構造において、分岐
先のアドレスが確定するのは、ALUステージのアドレ
ス計算の後であるため、 分岐 IF RD ALU MEM WB (1) IF RD ALU MEM WB (2) IF RD ALU MEM WB (3) IF RD ALU MEM WB となる。すなわち、分岐先の命令のフェッチは命令
(3)となり、それより前に命令(1)と命令(2)の
2命令を実行してからということになる。これら2つの
命令を遅延スロットと呼ぶ。通常、このパイプライン構
造では「遅延スロットが2個ある」という呼び方をして
いる。また、分岐命令には、無条件分岐命令すなわちい
つも分岐するものと、条件付き分岐命令すなわち条件に
より分岐するかどうかが決まるものとの二通りがある。
【0006】上述のパイプライン構造の例からすると、 が実行時間ということになる。これは通常の命令が1サ
イクルで実行できることに較べると、3倍もの実行時間
がかかることになる。以降、簡略化のために条件付き分
岐命令で分岐し命令シークエンスが変更される場合をT
(taken)と呼び、条件付き分岐命令で分岐が成立
せず命令シークエンスが変更されない場合をNT(no
t taken)と呼ぶことにする。
【0007】一般に、遅延スロットを持つパイプライン
構造では、最適化コンパイラなどのソフトウェアが命令
コードのシークエンスを並べ替え、分岐先の命令をこの
スロットに移動させることにより、スロットに命令を充
填し命令実行が遅くなることを回避しようとする。しか
し、統計的にも空きスロットを十分に利用できないこと
が一般的な常識となっている。
【0008】また、さらなる工夫として、T(take
n)のときに空きスロットの命令を実行しないという機
構を追加する方式もある。これは「分岐無効化」と呼ば
れ、具体的には遅延スロットにある命令に対して、 ●T(taken)のとき、実行しない。
【0009】●NT(Not taken)のとき、実
行する。 という制御を行なう。この場合は遅延スロットを有効に
活用できるというメリットがあるが、これも有効利用率
はそれほど高くならない。しかも、遅延スロットが1個
しかないようなパイプライン構造では良いが、遅延スロ
ットが2個ある場合には、どちらにしても2番目のスロ
ットに命令を充填することができない。すなわち、遅延
スロットが2個あるようなパイプラインにおいて、2個
のスロットを有効に活用できないという欠点がある。
【0010】しかも、条件付き分岐命令では、分岐する
かどうかの確立は50%と言われている。前述した「分
岐無効化」ではNT(not taken)の高速化を
考えているが、T(taken)の高速化を考えてはい
ない。
【0011】本発明の目的は、かかる2個の遅延スロッ
トを有効に活用し処理の高速化を図る条件分岐高速化方
式を提供することにある。
【0012】
【課題を解決するための手段】本発明の条件分岐高速化
方式は、遅延スロットを2個備えた条件付き分岐命令を
実行する中央処理装置の条件分岐高速化方式において、
書き戻し制御部を有し、前記2個の遅延スロットのうち
第1の遅延スロットにある命令は条件付き分岐命令にお
いて分岐が成立しなかったときに実行するように構成さ
れる。
【0013】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0014】図1は本発明の一実施例を説明するための
中央処理装置の主要部を示すブロック図である。図1に
示すように、本実施例は中央処理装置1がバス制御ユニ
ット2と、命令フェッチユニット3と、命令デコードユ
ニット4と、実行ユニット5と、レジスタファイル6お
よびこのレジスタファイル6への書き戻しを制御する書
き戻し制御ユニット7とを有する。
【0015】図2は図1における中央処理装置で実現す
るパイプライン処理の命令および遅延スロットを表わし
た図である。図2に示すように、各命令におけるIFは
命令読み出しステージ、RDはレジスタ読み出しステー
ジ、ALUは演算ステージ、MEMはメモリアクセスス
テージ、WBはレジスタへの書き戻しステージを表わ
す。各ステージが1サイクルの実行時間を待ち、時間軸
に沿って命令実行処理が行なわれていく。図中の矢印で
示すように、最上段の命令8が分岐命令だった場合に
は、分岐先のアドレス計算がALUステージで行なわれ
るので、分岐先の命令の実行は2個の遅延スロット9お
よび10の次である第3命令11で行なわれる。以下、
次命令12が行なわれる。
【0016】次に、かかる中央処理装置における条件分
岐高速化方式の動作を具体的に且つ前述したパイプライ
ン構造を用いて説明する。
【0017】 分岐 IF RD ALU MEM WB (1) IF RD ALU MEM WB (2) IF RD ALU MEM WB (3) IF RD ALU MEM WB 分岐命令は、命令(1)のスロットをT(taken)
のときに実行するスロットであると制御し、命令(2)
のスロットをNT(not taken)のときに実行
するスロットであると制御する。
【0018】また、最適化コンパイラは、T(take
n)用には分岐先の命令を命令(1)のスロットに移動
し、NT(not taken)用には命令(2)のス
ロットに移動させる。さらに、命令(3)として実行さ
れる命令は、T(taken)のとき分岐先の命令のそ
の次の命令であり、NT(not taken)のとき
には分岐しなかった場合の命令のその次の命令となる。
従って、どちらの場合も1サイクルだけ実行時間を短縮
できるようになり、高性能化に貢献する。すなわち、パ
イプラインの乱れを抑えることができる。
【0019】図3は図1における条件付き実行機能を持
つパイプラインの条件付き分岐命令での遅延スロットの
制御を表わした図である。図3に示すように、分岐命令
13で示すものが条件付き分岐命令のとき、第1の遅延
スロット14に存在する命令は、分岐がT(take
n)のときに実行されるので分岐時実行と名付けてい
る。また、第2の遅延スロット15に存在する命令は、
分岐がNT(not taken)のときに実行される
ので非分岐時実行と名付けている。
【0020】しかるに、条件付き実行の制御をつかさど
るのは、前述した図1に示す書き戻し制御ユニット7で
ある。従って、図3における遅延スロット14,15の
命令を実行するのは、結局のところ図1におけるレジス
タファイル6への書き戻しをするかどうかを制御すれば
良いことになる。図3の遅延スロット14,15のパイ
プラインの最終ステージであるWBステージのタイミン
グラインを最終ステージであるWBステージのタイミン
グで、図1におけるレジスタファイル6に書き戻すかど
うかを制御すれば良いことになる。すなわち、図3の遅
延スロット14,15のパイプラインの最終ステージで
あるWBステージのタイミングで、図1におけるレジス
タファイル6に書き戻すかどうかを書き戻し制御ユニッ
ト7が制御する。
【0021】図4は図3における制御方式を実現したと
きの命令実行順序を表わす図である。図4に示すよう
に、条件分岐命令13がT(taken)のときの命令
実行は、命令13,命令14,命令15だが実行結果を
書き戻さない分岐先の命令16の順序となる。一方、命
令13がNT(not taken)の場合には、命令
13,命令14だが実行結果を書き戻さない命令15,
分岐しない時の命令16の順序となる。どちらの場合
も、分岐命令の実行時間はもともと同じ3サイクルであ
るものの、分岐する時と分岐しない時に実行する命令を
それぞれ遅延スロットで実行することになるので、実効
的に1サイクルだけ短縮できることになる。従って、分
岐命令の実行時間は2サイクルとなる。
【0022】
【発明の効果】以上説明したように、本発明の条件分岐
高速化方式は、中央処理装置のパイプライン制御を工夫
し、レジスタへの書き戻し制御を追加することにより、
分岐命令の実行を3サイクルから2サイクルへ短縮し、
高速化できるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を説明するための中央処理装
置のブロック図である。
【図2】図1における中央処理装置で実現するパイプラ
イン処理の命令および遅延スロットを表わした図であ
る。
【図3】図1における条件付き実行機能を持つパイプラ
インの条件付き分岐命令での遅延スロットの制御を表わ
した図である。
【図4】図3における制御方式を実現したときの命令実
行順序を表わす図である。
【符号の説明】
1 中央処理装置 2 バス制御ユニット 3 命令フェッチユニット 4 命令デコードユニット 5 実行ユニット 6 レジスタファイル 7 書き戻し制御ユニット 8 最上段命令 9,10 遅延スロット 13 分岐命令 14,15 遅延スロット 16 分岐先命令

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 遅延スロットを2個備えた条件付き分岐
    命令を実行する中央処理装置の条件分岐高速化方式にお
    いて、書き戻し制御部を有し、前記2個の遅延スロット
    のうち第1の遅延スロットにある命令は条件付き分岐命
    令において分岐が成立しなかったときに実行するように
    制御することを特徴とする条件分岐高速化方式。
  2. 【請求項2】 前記中央処理装置は、バス制御ユニッ
    ト,フェッチユニット,デコードユニット,実行ユニッ
    ト,レジスタファイル,書き戻し制御ユニットを有し、
    前記書き戻し制御ユニットは前記レジスタファイルへの
    書き戻しを制御することを特徴とする請求項1記載の条
    件分岐高速化方式。
JP25997891A 1991-10-08 1991-10-08 条件分岐高速化方式 Pending JPH05100852A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25997891A JPH05100852A (ja) 1991-10-08 1991-10-08 条件分岐高速化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25997891A JPH05100852A (ja) 1991-10-08 1991-10-08 条件分岐高速化方式

Publications (1)

Publication Number Publication Date
JPH05100852A true JPH05100852A (ja) 1993-04-23

Family

ID=17341579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25997891A Pending JPH05100852A (ja) 1991-10-08 1991-10-08 条件分岐高速化方式

Country Status (1)

Country Link
JP (1) JPH05100852A (ja)

Similar Documents

Publication Publication Date Title
EP0423906B1 (en) Method of and apparatus for nullifying an instruction
JP3120152B2 (ja) コンピューターシステム
JP2786574B2 (ja) コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置
US6564313B1 (en) System and method for efficient instruction prefetching based on loop periods
CN101414252B (zh) 数据处理装置
US6260189B1 (en) Compiler-controlled dynamic instruction dispatch in pipelined processors
EP0180725A2 (en) Instruction prefetch operation for branch instructions
US20100050026A1 (en) Pipeline operation processor and control system
JPH07302200A (ja) 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
US5974522A (en) Machine for processing interrupted out-of-order instructions
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
WO2021218633A1 (zh) Cpu指令处理方法、控制器和中央处理单元
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
US5761492A (en) Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
JPH05100852A (ja) 条件分岐高速化方式
US20080184194A1 (en) Method and System for Enhancing Computer Processing Performance
JPH0877021A (ja) 割込処理装置および方法
US20040098564A1 (en) Status register update logic optimization
JP2783285B2 (ja) 情報処理装置
JP3668643B2 (ja) 情報処理装置
JP3743155B2 (ja) パイプライン制御型計算機
JP2853458B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
JPS61294550A (ja) 電子計算機におけるデ−タ読取書込制御方式
JP2002351658A (ja) 演算処理装置