JPH06161752A - 分岐制御方式 - Google Patents

分岐制御方式

Info

Publication number
JPH06161752A
JPH06161752A JP30835492A JP30835492A JPH06161752A JP H06161752 A JPH06161752 A JP H06161752A JP 30835492 A JP30835492 A JP 30835492A JP 30835492 A JP30835492 A JP 30835492A JP H06161752 A JPH06161752 A JP H06161752A
Authority
JP
Japan
Prior art keywords
instruction
branch
pipeline
resource
execution
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
JP30835492A
Other languages
English (en)
Inventor
Kazuyasu Nonomura
一泰 野々村
Takahito Noda
敬人 野田
Yuji Kamisaka
裕士 神阪
Toru Watabe
徹 渡部
Takumi Maruyama
拓巳 丸山
Takumi Takeno
巧 竹野
Shinya Kato
慎哉 加藤
Chiyonsuwannapaisaan Poonshiyai
ポーンシャイ・チョンスワンナパイサーン
Atsushi Sokawa
淳 惣川
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 JP30835492A priority Critical patent/JPH06161752A/ja
Publication of JPH06161752A publication Critical patent/JPH06161752A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 本発明は、命令をパイプラインで実行すると
きの分岐を制御する分岐制御方式に関し、条件分岐命令
が先行する命令との間で資源の競合があった場合、条件
分岐命令に後続する命令を先にパイプライン実行し、分
岐しないときはそのままパイプラインの実行を継続し、
分岐するときはパイプライン中の命令を取り消し、分岐
命令実行時のパイプラインの乱れを最小限に抑えること
を目的とする。 【構成】 条件分岐命令とこれに先行する命令との間に
資源の競合が発生した場合に、条件分岐命令に後続する
命令を待たせることなく先にパイプラインに投入して実
行し、条件分岐命令が分岐しないと確定したときにその
まま続行し、分岐と確定したときに先に投入した後続す
る命令を取り消すと共に分岐先の命令をパイプラインに
投入して実行するように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令をパイプラインで
実行するときの分岐を制御する分岐制御方式に関するも
のである。
【0002】近年、コンピュータシステムの命令実行速
度の高速化のため、パイプラインによる命令実行が一般
化している。このパイプラインは、複数の命令を実行す
るため、資源(レジスタ、演算器など)の競合が発生す
る場合がある。このため、これらパイプライン制御を行
うプロセッサにおいて、各パイプラインで資源の競合を
検出し、データのバイパスや、先行命令がその資源を開
放するまで、後続命令のパイプラインの実行停止などを
行っている。データのバイパスを行うと、そのために大
幅なハードウェアの増加を招き、ゲート規模の増大に伴
いプロセッサのマシンサイクルの低下を来しかねない。
また、後続命令の実行を停止すると、そのまま後続命令
の実行サイクルが増加する。従って、資源の競合をでき
る限り少なくすることが要求されている。
【0003】また、分岐命令の実行時には、パイプライ
ンにおいて先行して実行している命令を無効化し、分岐
先の命令をパイプラインに再投入しなければならないた
め、分岐命令の実行開始が遅れ、分岐命令のペナルティ
となる。このため、分岐命令と先行する命令との間にお
いて資源の競合がある場合には、かなりのペナルティが
発生し、実効的に性能低下を来し、このペナルティを少
しでも軽減する必要がある。
【0004】
【従来の技術】従来のパイプライン制御を行うプロセッ
サは、分岐命令と当該分岐命令に先行する命令の間でデ
ータのバイパスが行えないような資源の競合がある場
合、分岐命令以降の命令のパイプラインでの実行を停止
していた。例えば サイクル→ 0 1 2 3 4 5 6 命令O L A S 分岐命令 J 次命令B0 L A S 次命令B1 L A S 中の次命令B0、B1のように、分岐命令に先行する命
令Oがある場合、当該分岐命令以降の次命令B0、B1
を先行する命令Oによる実行が終了するまで停止させて
いた。この例では、次命令B0がサイクル2で実行、次
命令B1がサイクル3で実行するところをそれぞれ2サ
イクル停止させ、サイクル4およびサイクル5で実行さ
せていた。
【0005】ここで、L:パイプラインのロードステー
ジ A:パイプラインの演算ステージ S:パイプラインのストアステージ を表す。
【0006】
【発明が解決しようとする課題】上述したように従来の
パイプライン制御は、分岐命令が条件分岐命令であり、
後続する命令が他の先行する命令との資源の競合がない
場合でも、後続命令は実行することができず、プロセッ
サの性能低下を招くといった問題を生じていた。
【0007】本発明は、これらの問題を解決するため、
条件分岐命令が先行する命令との間で資源の競合があっ
た場合、条件分岐命令に後続する命令を先にパイプライ
ン実行し、分岐条件が確定して分岐しないときはそのま
まパイプラインの実行を継続し、分岐するときはパイプ
ライン中の命令を取り消し、分岐命令実行時のパイプラ
インの乱れを最小限に抑えることを目的としている。
【0008】
【課題を解決するための手段】図1は、本発明の原理ブ
ロック図を示す。図1において、パイプライン処理部1
は、パイプラインで処理を実行するものである。
【0009】パイプライン制御部3は、命令をデコード
して分岐命令のときに分岐を判定したり、動作指示した
り、後続命令の中断指示したりなどするものである。分
岐判定部2は、分岐命令が分岐するか否かを判定するも
のである。
【0010】資源4は、レジスタなどの資源である。
【0011】
【作用】本発明は、図1に示すように、パイプライン制
御部3が命令をデコードして条件分岐命令とこれに先行
する命令との間に資源4の競合が発生した場合に分岐命
令を分岐判定部2に通知すると共に当該条件分岐命令に
後続する命令を待たせることなく先に動作指示してパイ
プライン処理部1のパイプラインに投入し、分岐判定部
2が分岐命令が分岐するか否かを判定し、分岐すると確
定したときにパイプライン制御部3がその旨の通知を受
けてパイプライン処理部1に通知してパイプライン中の
後続する命令の実行取り消すと共に分岐先の命令をパイ
プラインに投入し、一方、分岐しないと確定したときに
そのままパイプライン中の命令の実行を継続するように
している。
【0012】従って、条件分岐命令が先行する命令との
間で資源4の競合があった場合、条件分岐命令に後続す
る命令を先にパイプラインで実行し、分岐条件が確定し
て分岐しないときにそのままパイプラインの実行を継続
し、分岐するときにパイプライン中の命令を取り消すこ
とにより、分岐命令実行時のパイプラインの乱れを最小
限に抑えることが可能となる。
【0013】
【実施例】次に、図1から図4を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
【0014】図1は、原理ブロック図を示す。図1にお
いて、パイプライン処理部1は、パイプラインで処理を
実行するものであって、パイプライン制御部3からの指
示に従い、資源4の読み出しを行ったり、演算などを行
ったり、資源4の変更を行ったりなどするものである。
【0015】分岐判定部2は、分岐条件を保持したり、
分岐条件の分岐判定を行ったりなどするものである。パ
イプライン制御部3は、命令コードを保持・デコード
し、命令間の資源4の競合を検出したり、パイプライン
処理部1のパイプラインのデータのバイパス制御した
り、パイプライン遷移の制御したり、分岐判定部2に分
岐条件のセット指示したり、分岐判定部2による分岐判
定結果を取り込んだり、分岐時にパイプラインによる命
令の実行取り消したり(中断したり)などするものであ
る。
【0016】資源4は、主記憶や汎用レジスタなどの資
源である。次に、図1の構成の動作を説明する。 (1) 取り込まれた命令列は、パイプライン制御部3
に格納して保持する。パイプライン制御部3は、保持し
た命令コードをデコードし、それが分岐命令であるか否
かの判定を行う。分岐命令でなかった場合には、パイプ
ライン処理部1に命令のデコード結果に基づく動作指示
を与える。パイプライン処理部1は、この動作指示に従
い、資源4の読み出し行い、指示に従って演算などを行
った後、指示に従って資源4の変更を行う。
【0017】(2) 一方、パイプライン制御部3は、
分岐命令であった場合、分岐判定部2に分岐条件を通知
すると共に分岐命令の判定に使用する資源4の競合がな
くなるまで分岐命令の実行を遅らせる。この間に、次の
命令が資源4の書き替えを行うパイプラインステージに
達した場合には、その命令の実行を待たせるようにパイ
プライン処理部1に指示する。分岐命令で使用する資源
4の競合がなくなったら、分岐判定部2が送出する分岐
判定信号を取り込み、分岐条件が成立しなかった場合に
は、そのままパイプライン処理部1によるパインプライ
ン処理を続行する。分岐条件が成立した場合には、パイ
プライン処理部1によるパイプライン処理を中断し(取
り消し)、分岐先の命令の動作指示を与える。
【0018】以上によって、条件分岐命令において、た
とえ条件分岐命令と、これに先行する命令との間に資源
4の競合があったとしても、分岐しなかった場合には、
パイプライン処理部1によるパイプライン処理の全く乱
すことなく続行することが可能となる(図2の(d)の
場合)。以下順次説明する。
【0019】図2は、本発明の1実施例構成図を示す。
これは、図1のパイプライン処理部1、分岐判定部2、
パイプライン制御部3、および資源4の1実施例の構成
である。
【0020】図2において、資源4は、汎用レジスタ4
−1およびセレクタ4−2から構成される。セレクタ4
−2は、パイプライン制御部3の指定する汎用レジスタ
4−1の内容を出力するセレクタである。
【0021】パイプライン処理部1は、3段のパイプラ
インからなる。ロードステージ1−1は汎用レジスタ4
−1のデータをロードする。演算ステージ1−2はロー
ドステージ1−1に保持された汎用レジスタの内容によ
り演算結果を生成する。変更ステージ1−3は汎用レジ
スタ4−1を変更するステージであり、演算ステージ1
−2で生成された演算結果を格納すべき汎用レジスタ4
−1に転送する。
【0022】分岐判定部2は、汎用レジスタ4−1のデ
ータをレジスタ2−1に保持し、パイプライン制御部3
より出力される判定条件をレジスタ2−2に保持する。
条件判定回路により、レジスタ2−1とレジスタ2−2
の出力に従って分岐判定信号2−3を出力する。
【0023】パイプライン制御部3は、パイプライン処
理部1の各ステージに対応した、命令コード保持レジス
タ3−1、3−2、3−3を持っている。命令デコード
部3−4は、入力された命令コードをデコードし、分岐
判定部2に対し、分岐条件の送出およびセット指示を行
う。分岐番号レジスタ3−5は、分岐命令により参照す
る汎用レジスタ番号を保持する。競合検出回路3−6
は、分岐番号レジスタ3−5の保持されたレジスタ番号
が命令コード保持レジスタ3−1、3−2、3−3に保
持された命令により変更されることを検出する。分岐制
御部3−7は、競合検出回路3−6で競合が無いことが
確認され、かつ分岐判定信号2−3がONであった場
合、パイプライン処理部1の命令実行を中止し、パイプ
ライン処理部1に分岐先の命令投入を指示する分岐信号
3−7を送出する。
【0024】次に、図3を用いて具体的に動作を説明す
る。図3は、本発明の具体例タイムチャートを示す。図
3の(a)は、資源の競合がない場合のタイムチャート
であり、分岐条件が成立した場合を示す。
【0025】図3の(a)において、命令Oは分岐命令
の前に実行さている命令であり、L/A/Sはその命令
がそれぞれロードステージ1−1/演算ステージ1−2
/ストア(変更)ステージ1−3にあることを示す。分
岐命令の判定により、分岐信号がONになった場合に
は、分岐先の命令J0、J1を実行する。この例では、
分岐のペナルティはない。
【0026】図3の(b)は、資源の競合がない場合の
タイムチャートであり、分岐条件が成立しなかった場合
を示す。図3の(b)において、命令Oは分岐命令の前
に実行さている命令であり、L/A/Sはその命令がそ
れぞれロードステージ1−1/演算ステージ1−2/ス
トア(変更)ステージ1−3にあることを示す。分岐命
令の判定により、分岐信号がONにならないため、分岐
の次に命令B0、B1を実行する。
【0027】図3の(c)は、資源の競合がある場合の
タイムチャートであり、分岐条件が成立した場合を示
す。即ち分岐命令の直前の命令Oが分岐命令で判定に用
いる汎用レジスタ4−1を書き替えた場合のタイムチャ
ートである。
【0028】分岐命令の判定は命令Oの実行が完了する
時刻(Time)3まで待たされるが、次命令B0、B
1は待つことなく実行を開始する。時刻3において、分
岐信号がONとなるため、次命令B0、B1の実行を中
止し、分岐先の命令J0、J1を実行する。この場合の
分岐命令のペナルティは、2サイクルであり、次命令B
0、B1の実行を行っていたサイクルが無駄となる。
【0029】図3の(d)は、資源の競合がある場合の
タイムチャートであり、分岐条件が成立しない場合を示
す。分岐命令の判定は命令Oの実行が完了する時刻(T
ime)3まで待たされるが、次命令B0、B1は待つ
ことなく実行を開始する。時刻3において、分岐信号が
ONとならないため、次命令B0、B1の実行を引続き
行う。この場合、分岐命令の実行が2サイクル待たされ
たにもかかわらず、分岐によるペナルティはない。
【0030】次に、図4のフローチャートを用いて図1
の構成の動作を詳細に説明する。ここで、パイプライン
制御部3、分岐判定部2、およびパイプライン処理部1
は、図1および図2のそれぞれに対応するものである。
【0031】図4において、S1は、パイプライン制御
部3が命令コードをデコードする。S2は、S1のデコ
ードして、資源の競合有りか判別する。YESの場合に
は、資源の競合が無くなるまで待機する。一方、NOの
場合には、資源の競合がないので、S3に進むと共に分
岐命令のときにセット信号を分岐判定部2に通知する。
【0032】S11は、パイプライン制御部3から分岐
命令の旨の通知を受けた分岐判定部2が分岐判定データ
(分岐判定結果のデータ)をセットし、分岐判定に従っ
て分岐判定信号をパイプライン制御部3に通知する。
【0033】S3は、S12により分岐判定部2から分
岐判定に従った分岐判定信号を受け取ったパイプライン
制御部3が分岐成立か否かを判定する。YESの場合に
は、分岐判定したと判明したので、中断指示をパイプラ
イン処理部1に通知する。そして、S1に戻り繰り返し
行う。
【0034】S21は、パイプライン処理部1が後続命
令データを取り込む。S22は、S21で取り込んだ後
続命令の演算を行う。S23は、中断指示有りか判別す
る。これは、既述した例えば図3の(c)で分岐命令が
分岐すると判明して中断指示をパイプライン処理部1が
受け取り、中断指示有りか判別する。YESの場合(中
断指示有りと判明した場合)には、S24で後続命令を
中断し(例えば図3の(c)の次命令B0、B1を中止
し)、S25で分岐先命令データの取り込み(例えば図
3の(c)の分岐先命令J0、J1の取り込み)を行
い、S22に戻る。一方、NOの場合には、中断指示が
無かったので、S26で資源の書き替えを行い、S21
に戻る。
【0035】以上によって、パイプライン制御部3が取
り込んだ命令コードをデコードし、分岐条件命令のとき
に後続する命令(次命令)を待つことなくパイプライン
に投入して実行を行い、分岐条件命令のみを待たせて分
岐条件が分岐しないと確定したときはそのままパイプラ
インの処理を続行し、一方、分岐条件が分岐すると確定
したときに後続する命令を取り消し、分岐先の命令をパ
イプラインに投入して実行する。これらにより、分岐条
件命令とこれに先行する命令との間に資源4の競合があ
ったとしても、次の命令をパイプラインに投入して実行
し、条件確定時に分岐しなかったときはそのまま実行で
き、ペナルティが無く、高速に命令の実行を行うことが
可能となる。
【0036】
【発明の効果】以上説明したように、本発明によれば、
条件分岐命令が先行する命令との間で資源の競合があっ
た場合、条件分岐命令に後続する命令を先にパイプライ
ンで実行し、分岐条件が確定して分岐しないときにその
ままパイプラインの実行を継続し、分岐するときにパイ
プライン中の命令を取り消す構成を採用しているため、
分岐命令実行時のパイプラインの乱れを最小限に抑える
ことができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の1実施例構成図である。
【図3】本発明の具体例タイムチャートである。
【図4】本発明の動作説明図である。
【符号の説明】
1:パイプライン処理部 2:分岐判定部 3:パイプライン制御部 4:資源
───────────────────────────────────────────────────── フロントページの続き (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹野 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 ポーンシャイ・チョンスワンナパイサーン 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 惣川 淳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】命令をパイプラインで実行するときの分岐
    を制御する分岐制御方式において、 条件分岐命令とこれに先行する命令との間に資源の競合
    が発生した場合に、条件分岐命令に後続する命令を待た
    せることなく先にパイプラインに投入して実行し、 条件分岐命令が分岐しないと確定したときにそのまま続
    行し、分岐と確定したときに先に投入した後続する命令
    を取り消すと共に分岐先の命令をパイプラインに投入し
    て実行するように構成したことを特徴とする分岐制御方
    式。
JP30835492A 1992-11-18 1992-11-18 分岐制御方式 Pending JPH06161752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30835492A JPH06161752A (ja) 1992-11-18 1992-11-18 分岐制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30835492A JPH06161752A (ja) 1992-11-18 1992-11-18 分岐制御方式

Publications (1)

Publication Number Publication Date
JPH06161752A true JPH06161752A (ja) 1994-06-10

Family

ID=17980055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30835492A Pending JPH06161752A (ja) 1992-11-18 1992-11-18 分岐制御方式

Country Status (1)

Country Link
JP (1) JPH06161752A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015064421A (ja) * 2013-09-24 2015-04-09 株式会社東芝 制御装置、表示装置、制御方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015064421A (ja) * 2013-09-24 2015-04-09 株式会社東芝 制御装置、表示装置、制御方法およびプログラム

Similar Documents

Publication Publication Date Title
JP2518616B2 (ja) 分岐方法
US6662295B2 (en) Method and system dynamically presenting the branch target address in conditional branch instruction
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5922068A (en) Information processing system and information processing method for executing instructions in parallel
FI90804C (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
JPH0776918B2 (ja) データ処理システム及び方法
JPH01175634A (ja) データ処理装置
JPH06161752A (ja) 分岐制御方式
JPH06266556A (ja) データ処理装置
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JPS6116335A (ja) 情報処理装置
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
JP2636562B2 (ja) 計算機
JP3204390B2 (ja) マイクロコンピュータ
JP2503223B2 (ja) 先行制御方式
JPS60241136A (ja) デ−タ処理装置
JP2636192B2 (ja) 情報処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JP2741717B2 (ja) ベクトル処理装置
JPH07120281B2 (ja) 情報処理装置
JP3431503B2 (ja) 情報処理装置およびプログラム制御方法
JP2597744B2 (ja) 分岐制御方法
JPH05216664A (ja) 命令実行順序制御回路
JP2636566B2 (ja) パイプライン制御方式
JPH04326425A (ja) ループ処理制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010612