JPH0439733A - 先行制御方式 - Google Patents

先行制御方式

Info

Publication number
JPH0439733A
JPH0439733A JP14608190A JP14608190A JPH0439733A JP H0439733 A JPH0439733 A JP H0439733A JP 14608190 A JP14608190 A JP 14608190A JP 14608190 A JP14608190 A JP 14608190A JP H0439733 A JPH0439733 A JP H0439733A
Authority
JP
Japan
Prior art keywords
instruction
branch
branch destination
circuit
signal
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
JP14608190A
Other languages
English (en)
Inventor
Fumio Matsunoshita
松野下 文郎
Masato Tanaka
正人 田中
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP14608190A priority Critical patent/JPH0439733A/ja
Publication of JPH0439733A publication Critical patent/JPH0439733A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [概 要コ 先行制御方式に関し、 プログラムのループ処理の高速化を目的とし、先取りさ
れた分岐先命令を2つの命令バッファレジスタに保持し
、新たな分岐命令の分岐先アドレスが直前の分岐命令の
それと同一であるとき分岐先命令の取り出し要求をキャ
ンセルし命令バッファレジスタに保持された分岐先命令
をパイプラインへ投入するように構成される。
[産業上の利用分野] 本発明は、データ処理装置における先行制御に関し、特
にパイプラインにおける分岐命令の制御に係る。
[従来の技術] コンピュータプログラムの作成において、同じ処理を何
回か繰り返して行なう場合に、FORTRANおよび、
PL/Iにおける00文やC言語およびBASICにお
けるFOR文のようなループ構造が便利に使用されてい
る。上記のようなループ構造の文はコンパイラによって
分岐命令BCTまたはBCに変換される。
例えばFORTRANで書かれたD○文DO=999 
 1=1.10 A=A+I B=B+A 999 C0NT I NUE はコンパイラによってつぎのような機械命令列に変換さ
れる。
100:LA   1. 1  (0,0)104:L
A   2. 1  (0,0)108:LA   3
. 0  (0,0)10C:LA   5.  O(
0,0)110:L、A   P、 10(0,O)命
令列の最後(120)に分岐命令BCTがあり、これに
よってプログラムは命令114へ飛ぶ。すなわち、11
4と120の間の処理は10回繰返される。
各命令はD(命令解読)、A(主記憶オペランドアドレ
ス生成)、T(アドレス変換)、B(キャッシュメモリ
のデータアクセス)  E(演算)およびW(演算結果
の書き込み)の各サイクルから構成される。
第4図は従来技術における動作の例を示す。
分岐命令BCTが実行されると分岐命令であることが判
断されキャッシュメモリから分岐先命令が取り出され、
命令バッファレジスタにセットされる。上記動作は4サ
イクル分の時間4τを要し、通常の命令の実行に比し3
τだけ多い。
繰返しを10回行なうループでは3X9=27τであり
、これはループ全体の時間67τ(4X10+27)の
実に40%であり、分岐命令を多く含むプログラムにお
いて動作時間の大きな損失を構成している。
[発明が解決しようとする課題] 本発明は、上記従来技術における欠点を除去し、分岐命
令によって生ずる上記時間損失を最小限に抑え、分岐命
令を多く含むプログラムの処理速度を向上する先行制御
方式を提供することを目的とする。
[課題を解決するための手段] 本発明による先行制御方式は、パイプラインに分岐命令
が投入されたとき分岐先命令を先取りする機能を有する
パイプライン方式のコンピュータシステムにおいて、記
憶装置から取り出された分岐先命令を保持する複数の命
令バッファレジスタと、先取りされた分岐先命令を2つ
の命令バッファレジスタに保持させる回路と、分岐先命
令が有効であることを示す有効信号を発生する回路と、
新たにパイプラインに投入された分岐命令の分岐先アド
レスが直前の分岐命令の分岐先アドレスと同一であると
きに一致信号を出力する回路と、一致信号および有効信
号に基づき記憶装置に対する分岐先命令の先取り要求を
キャンセルし上記命令バッファに保持されている分岐先
命令をパイプラインへ出力する回路とを具備して構成さ
れる。
[作 用] プログラム中ループのように同一の分岐先アドレスを有
する複数の分岐命令が何度も発生する場合において、最
初に発生した分岐命令の分岐先アドレスを2つの命令バ
ッファレジスタにセットしておき、以後、分岐命令が発
生する都度その分岐先アドレスが直前の分岐命令の分岐
先アドレスと同じであることを示す一致信号と分岐先命
令が有効であることを示す有効信号とがいずれもONで
あるとき、配憶装置に対する分岐先命令の取り出し要求
をキャンセルし上記2つの命令バッファレジスタの1つ
にセットしておいた分岐先命令を取り出してパイプライ
ンに出力する。分岐命令が発生する度に上記動作を繰り
返す。これによって分岐命令の発生の都度必要な分岐先
命令のパイプラインへの投入に要する時間が大巾に短縮
される。
[実施例] 以下、本発明の実施例について図面を参照して詳細に説
明する。
第1図は本発明による先行制御方式の一実施例を示す回
路図である。
第1図において命令バッファレジスタ1.2および3の
共通入力端子103には後述するように記憶制御部19
から出力される命令IF  CHEまたはデータ信号D
ATAが入力される。命令バッファレジスタ1.2およ
び3の各他方の入力端子104 、1(17および10
9には記憶制御部19から各命令バッファレジスタをセ
ットするための信号IDA、IDEおよびIDCがそれ
ぞれ供給される。各命令バッファレジスタ1.2および
3はそれぞれIDA、IDE、IDC信号を入力したと
きIF  CHErr号を入力する。
フリップフロップ(以下FFという)4.5および6は
命令バッファレジスタ1,2および3にそれぞれ対応し
、各セット端子101 、106および10Bには後述
する加算器29からセット信号5ETA、5ETBおよ
び5ETCがそれぞれ供給される。FF4.5および6
は後述するOR回路30から共通入力端子102に供給
されるRESET信号によってリセットされる。FF4
.5および6のいずれかがセット状態にあるときOR回
路14からVAL I D信号が出力され後述の一致回
路22を動作させる。FF4.5および6はセット状態
においてENABLE信号をセレクタ8.9および10
にそれぞれ出力する。
命令バッファレジスタ1.2および3の出力はセレクタ
7に入力される。セレクタ7は通常の命令選択動作を行
なう。セレクタ7の出力は命令バッファレジスタ11に
人力され保持されると共にセレクタ15の第1の入力と
なる。命令バッファレジスタ11の出力は命令バッファ
レジスタ12に入力され保持されると共にセレクタ15
の第2の入力となる。命令バッファレジスタ12の出力
は命令バッファレジスタ13に入力され保持されると共
にセレクタ15の第3の入力となる。
命令バッファレジスタ13の出力はセレクタ15の第4
の入力となる。
セレクタ15は後述するFF27から供給される選択信
号SELに応動して第1〜第4の入力の1つを選択する
セレクタ8.9および10は、本発明の特徴をなすもの
である。セレクタ8は命令バッファレジスタ1の出力と
5ELW号とFF4からのENABLE信号とを入力し
、ENABLE信号およびSEL信号がONのとき命令
バッファレジスタ1の出力をセレクタ16へ出力する。
セレクタ9および10も同様にそれぞれに対応するFF
5および6からのENABLE信号およびSEL信号が
ONのとき命令バッファレジスタ2および3の出力をセ
レクタ16へ出力する。
セレクタ16はセレクタ15. 8. 9および10の
出力のうち1つを選択しパイプライン制御部200へ送
出する。
パイプライン制御部200においては、セレクタ16か
ら送出された命令は命令デコーダ17で解読されて分岐
命令が抽出され、アドレス計算部18、記憶制御部19
および分岐判断回路2oへ出力される。
アドレス計算部18は命令のオペランドのアドレスまた
は分岐命令の分岐先アドレスを求める加算回路である。
アドレス計算部18の出力端子はアドレスレジスタ21
、記憶制御部19および一致回路22の一方の入力端子
に接続される。アドレスレジスタ21はアドレス計算部
18から出力されるアドレスを保持する。一致回路22
の他方の入力端子にはアドレスレジスタ21の出力端子
が接続され、これにより一致回路22はアドレスレジス
タ21に保持されている分岐先アドレスと新しくパイプ
ラインに供給された分岐命令の分岐先アドレスとをOR
回路14の出力信号VALIDに応動して比較する。一
致した場合は一致信号をFF23およびAND回路24
へ出力し、不一致の場合には不一致信号をOR回路30
へ出力する。
FF23は一致信号を1サイクルの間保持した後、AN
D回路25へ出力する。
分岐判断回路20は命令デコーダ17からの入力によっ
て、分岐不成功、Tサイクル分岐成功およびAサイクル
分岐成功の判断を行ない、それぞれの場合に対応して分
岐不成功信号をOR回路30へ、Tサイクル分岐成功信
号をAND回路25へ、モしてAサイクル分岐成功信号
をAND回路24へ出力する。
AND回路24は一致回路22からの一致信号と分岐判
断回路20からのAサイクル分岐成功信号とのANDを
とりOR回路26の一方の入力端子へ出力する。一方、
AND回路25は分岐判断回路20からのTサイクル分
岐成功信号とFF23に保持されている一致信号とのA
NDをとり、OR回路26の他方の入力端子へ出力する
OR回路26はAND回路24および25の各出力のO
Rをとりその出力によってFF27をセットする。FF
27はセットされると端子105へ選択信号SELを送
出する。
IF−ID決定回路28は、記憶制御部19に対して命
令取り出し要求と共にどの命令バッファレジスタ1,2
.または3にセットさせるかを示す記号IP−IDを送
ると共に加算器29へ命令バッファレジスタを指定する
信号IDを送る。
加算器29は命令デコーダ17から分岐命令が出力され
たときID信号に+1加算し、FF4,5および6の各
セット信号5ETA、5ETBまたは5ETCを出力す
る。例えばIP−ID決定回路28の出力IDの値が命
令バッファレジスタ2を示すとき加算器29の出力は命
令バッファレジスタ3のセット信号5ETCとなる。I
D信号が5ETCのとき加算器29の出力は5ETAと
なる。
記憶制御部19は要求された命令またはデータをキャッ
シュメモリ、主メモリ等から取り出しIF  CHEま
たはDATA慣号として端子103へ出力すると共にI
P−ID決定回路28からの上記IP=ID信号に基づ
いてセットしようとする命令バッファレジスタ1.2ま
たは3に対応する信号IDA、IDBおよびIDCをそ
れぞれ端子104 、107および109へ出力する。
前述のようにIDA、IDBおよびIDCによって命令
バッファレジスタ1.2および3はそれぞれ命令信号I
F  CHEを人力しセットする。
本発明において特徴とするところは、IP−ID決定回
路28から命令バッファレジスタ1゜2または3のうち
の1つを示すIP−ID−A。
BまたはCが出力されたとき記憶制御部19はそれに対
応するID−A、BまたはCと、そのつぎの番号の命令
バッファレジスタに対応するID−A、BまたはCとを
出力することである。
例えば、IP−ID決定回路28からIF−1D−B信
号が出力されると、記憶制御部19からI D−Bおよ
びI D−C信号が出力され、これによって命令バッフ
ァレジスタ2および3に命令がセットされることになる
記憶制御部19に対してFF27からS E L 信号
が送られると、分岐先命令の取り出し要求はキャンセル
される。
OR回路30は分岐判断回路20から出力される分岐不
成功信号、−数回路22から出力される不一致信号なら
びにパイプラインクリア信号のORをとり、リセット信
号としてFF4,5および6へ出力する。
以下、第1図の回路の動作について説明する。
命令バッファレジスタ1が使用中のとき分岐命令BCT
がパイプラインに投入されたとする。
命令デコーダ17は分岐命令をアドレス計算部18およ
び記憶制御部19へ出力する。アドレス計算部18は分
岐先アドレスを求めこれを記憶制御部19へ出力すると
共に分岐先アドレスをアドレスレジスタ21に出力し保
持させる。
記憶制御部19は主メモリまたはキャッシュメモリから
分岐先命令を取り出しIF  CHE信号として入力端
子103へ出力する。上記動作と同時にIP−ID決定
回路28は記憶制御部19に対してI F−I D−B
信号を出力する。記憶制御部19は命令デコーダ17か
ら受けた分岐命令と、IP−ID決定回路28から受け
たIF−ID−B信号とに応じてIDBおよびIDCの
両方の信号を出力し命令バッファレジスタ2および3を
同時にセット状態にする。上記動作により、分岐先命令
が命令バッファレジスタ2および3にセットされる。
つぎに新たな分岐命令がバイブラインに投入されると、
上記のように命令デコーダ17から記憶制御部19に対
して分岐命令が送られ分岐先命令の取り出し要求がなさ
れる。しかしこの場合、アドレス計算部18によって求
められた分岐先アドレスはアドレスレジスタ21に保持
されると共に直接−数回路22へ出力されここで既にア
ドレスレジスタ21に保持されていたアドレスと比較さ
れる。両者のアドレスが一致する場合はFF23がセッ
トされ、AND回路24および25が動作状態となる。
不一致の場合はOR回路30からRESET信号が出力
され、これによってFF4゜5および6はリセットされ
セレクタ8.9および10はOFFとなると共にOR回
路14からVALID信号は出力されない。
第2図はAサイクル分岐成功の場合の例を示す。第2図
において分岐命令のAサイクルで分岐が行なわれると、
分岐判断回路20からAサイクル分岐成功信号がAND
回路24へ出力される。
このとき分岐先アドレスが前回の分岐命令のそれと同一
であるとAND回路24からOR回路26およびFF2
7を経てSEL信号が出力される。
第3図はTサイクル分岐成功の場合を示すタイミングチ
ャートである。この場合は分岐命令のTサイクルで分岐
が成功し、かつ前回と今回の分岐先アドレスが同一であ
るとAND回路25からOR回路26およびFF27を
経てS E L 4M号が出力される。
上記AおよびTサイクル分岐成功のいずれの場合におい
ても、SEL信号が記憶制御部19おび端子105へ出
力され、分岐先命令の取り出し要求はキャンセルされ、
分岐先アドレス+8の取り出し要求が記憶制御部19に
対して出される。
またFF27から出力されるS E L 43号と加算
器29から出力される5ETC信号によってセレクタ1
0が動作し、命令バッファレジスタ3が選択される。
第2図および第3図に示すように、AおよびTサイクル
分岐成功の場合はそれぞれ2τおよび1τだけ従来技術
における動作時間を短縮することができ、従って分岐を
含むプログラムの高速処理が可能となる。
分岐が不成功の場合、前回と今回の分岐アドレスが異な
る場合、ならびにパイプラインクリア時はOR回路30
からRESET慣号が出力されFF4,5および6はリ
セットされ、従ってセレクタ8.9および10は動作せ
ず、またOR回路14からのVALID信号は出力され
ない。
[発明の効果コ 分岐先アドレスが直前の分岐命令のそれと同一な場合、
分岐先命令はキャッシュメモリまたは主メモリから取り
出す必要がないので、特に分岐命令を使ったループにお
いて動作時間が著しく短縮する。
【図面の簡単な説明】
第1図は本発明の構成を示す回路、第2rIIJおよび
第3図は第1図に示す回路の動作の例を示す命令タイミ
ングチャート、第4図は従来技術を示す命令タイミング
チャートである。 1〜3,11〜13・・・・・・命令バッファレジスタ
、4〜6.23.27・・・・・・FF(フリップフロ
ップ)、7〜10. 15. 16・・・・・・セレク
タ、14.26.30・・・用OR回路、17・・・・
・・命令デコーダ、18・・・・・・アドレス計算部、
19・・・−・・記憶制御部、20・・・・・・分岐判
断回路、21・・・・・・アドレスレジスタ、22・・
・・・・−数回路、24.25・・・・・・AND回路
、28・・・・・・IF−ID決定回路、 29・・・・・・加算器 CT

Claims (1)

  1. 【特許請求の範囲】 パイプラインに分岐命令が投入されたとき分岐先命令を
    先取りする機能を有するパイプライン方式のコンピュー
    タシステムにおいて、 記憶装置から取り出された命令を保持する複数のバッフ
    ァレジスタと、 先取りされた分岐先命令を2つの前記命令バッファレジ
    スタに保持させる手段と、 分岐先命令が有効であることを示す有効信号を発生する
    手段と、 新たにパイプラインに投入された分岐命令の分岐先アド
    レスが直前の分岐命令の分岐先アドレスと同一であると
    きに一致信号を出力する手段と、 前記一致信号と前記有効信号に基づき記憶装置に対する
    分岐先命令の先取り要求をキャンセルし、前記命令バッ
    ファレジスタに保持されている分岐先命令をパイプライ
    ンへ出力する手段とを有する先行制御方式。
JP14608190A 1990-06-06 1990-06-06 先行制御方式 Pending JPH0439733A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14608190A JPH0439733A (ja) 1990-06-06 1990-06-06 先行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14608190A JPH0439733A (ja) 1990-06-06 1990-06-06 先行制御方式

Publications (1)

Publication Number Publication Date
JPH0439733A true JPH0439733A (ja) 1992-02-10

Family

ID=15399688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14608190A Pending JPH0439733A (ja) 1990-06-06 1990-06-06 先行制御方式

Country Status (1)

Country Link
JP (1) JPH0439733A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074655A (zh) * 2013-01-21 2015-11-18 高通股份有限公司 用于取消对循环的数据预取请求的方法和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074655A (zh) * 2013-01-21 2015-11-18 高通股份有限公司 用于取消对循环的数据预取请求的方法和设备

Similar Documents

Publication Publication Date Title
JP3804941B2 (ja) 命令フェッチ制御装置
EP1157329B1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
US5949996A (en) Processor having a variable number of stages in a pipeline
US11816485B2 (en) Nested loop control
EP1745367B1 (en) Pipelined asynchronous instruction processor circuit
US20240281231A1 (en) Nested loop control
US20220365787A1 (en) Event handling in pipeline execute stages
US20230359385A1 (en) Quick clearing of registers
US6237086B1 (en) 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US6170050B1 (en) Length decoder for variable length data
JPH0439733A (ja) 先行制御方式
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
JPH09218786A (ja) 情報処理装置
JPH11110214A (ja) 命令制御システム及びその方法
JP2001051845A (ja) アウトオブオーダー実行方式
JP2812613B2 (ja) 命令実行処理装置
JPS60105050A (ja) パイプライン制御方式
JPS63314644A (ja) デ−タ処理装置
JP4049490B2 (ja) 情報処理装置
JP3017866B2 (ja) 割込み処理方式
US20100153688A1 (en) Apparatus and method for data process
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法
JP2806690B2 (ja) マイクロプロセッサ
JPH06202867A (ja) 並列計算機
JP3625586B2 (ja) プロセッサの命令実行制御システム