JPH06139070A - プロセッサにおける分岐制御方式 - Google Patents

プロセッサにおける分岐制御方式

Info

Publication number
JPH06139070A
JPH06139070A JP28865992A JP28865992A JPH06139070A JP H06139070 A JPH06139070 A JP H06139070A JP 28865992 A JP28865992 A JP 28865992A JP 28865992 A JP28865992 A JP 28865992A JP H06139070 A JPH06139070 A JP H06139070A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
exception
register
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.)
Granted
Application number
JP28865992A
Other languages
English (en)
Other versions
JP2944335B2 (ja
Inventor
Kazuyasu Nonomura
一泰 野々村
Takahito Noda
敬人 野田
Yuji Kamisaka
裕士 神阪
Toru Watabe
徹 渡部
Takumi Maruyama
拓巳 丸山
Takumi Takeno
巧 竹野
Shinya Kato
慎哉 加藤
Poonshiyaichiyonsuwannapaisan
ポーンシャイチョンスワンナパイサン
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 JP28865992A priority Critical patent/JP2944335B2/ja
Publication of JPH06139070A publication Critical patent/JPH06139070A/ja
Application granted granted Critical
Publication of JP2944335B2 publication Critical patent/JP2944335B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 プロセッサにおける分岐制御方式に関し、分
岐先の命令フェッチにおいて命令変換に関するエラーが
発生した場合でも、その時の状態を保持する必要をなく
し、ハード量削減と、マシンサイクルの高速化を図るこ
とができることを目的とする。 【構成】 条件分岐命令の実行時に、分岐先命令のフェ
ッチを分岐条件の判定以前に行うプロセッサにおいて、
分岐先命令プリフェッチ中にアドレス変換に伴う例外が
発生したことを格納しておくフラグを設け、分岐しない
ときにはそのまま処理をせず、分岐したときにそのフラ
グを確認して改めて例外処理を行うものとして構成す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセッサにおける分
岐制御方式に係り、特にプリフェッチ命令を蓄える命令
バッファと、命令デコード回路と、命令実行部と、プリ
フェッチ制御回路4と、動的アドレス変換回路と命令コ
ードメモリとを有し、動的アドレス変換(DAT)を行
うと共に、命令の先行フェッチを行うプロセッサにおけ
る分岐制御方式に関する。
【0002】
【従来の技術】現在、プロセッサにおける分岐命令の高
速化が進み、プロセッサにおいては、命令のパイプライ
ン処理等の先行制御が一般化してきている。このような
命令の先行制御においては、連続する命令列を実行する
場合には、非常に効率よく高速に動作するが、分岐命令
等により命令のシーケンスが変化する場合には、先行し
て実行した命令が無駄になるため、分岐命令が多く発行
されるとプロセッサの性能低下を来たす。従って、その
性能低下を抑えるために、分岐先の予測や、分岐アドレ
スに対する命令先行フェッチを行っている。このような
分岐先の命令のプリフェッチを行うプロセッサにおいて
は、分岐先の命令フェッチに対してアドレス変換(DA
T)の例外(TLBフォルト・ページフォルト・プロテ
クション例外等)が発生する場合がある。このような分
岐先の命令に対する例外は、条件分岐命令で分岐条件が
成立しなかった場合には、発生しないようにする必要が
ある。
【0003】そこで、従来の分岐先の命令フェッチを行
うプロセッサにおいては、条件判定が終了するまで分岐
先の命令フェッチに対するDATの例外処理を行わない
ようにしていた。このため、分岐先の命令フェッチ中に
DATに関する例外が発生した場合には、以降の命令フ
ェッチを抑止し、その時の状態を保持して分岐条件が成
立した場合に例外処理が正しく行えるようにすることが
必要となる。
【0004】
【発明が解決しようとする課題】従って、分岐先の命令
フェッチを行うプロセッサにおいては、DATに関する
例外が発生直後の命令フェッチを抑止するために、高速
なDATの例外検出と、命令フェッチ制御が必要であ
り、このため、ハード量の増加、マシンサイクルの低下
をきたしていた。
【0005】そこで、本発明は、分岐先の命令フェッチ
において命令変換に関するエラーが発生した場合でも、
その時の状態を保持する必要をなくし、ハード量削減
と、マシンサイクルの高速化を図ることができるプロセ
ッサにおける分岐制御方式を提供することを目的とす
る。
【0006】
【課題を解決するための手段】本発明において、上記の
課題を解決するための手段は、図1に示すように、プリ
フェッチ命令を蓄える命令バッファ(1)と、命令デコ
ード回路(2)と、命令実行部(3)と、プリフェッチ
制御回路(4)と、動的アドレス変換回路(5)と命令
コードメモリ(6)とを有し、動的アドレス変換(DA
T)を行うと共に、命令の先行フェッチを行うプロセッ
サにおいて、命令バッファ1は分岐先の命令列を保持す
る分岐先命令列保持手段IBを有し、命令デコード回路
2は分岐アドレスが確定し分岐条件の評価がまだ行われ
ていないことを示す予約フラグAを有し、プリフェッチ
制御回路3は、その分岐アドレスを保持する分岐先レジ
スタBと、分岐アドレスが始まる連続する命令列をAが
有効である期間フェッチする保持レジスタCと、分岐先
アドレスが確定した時点での先行フェッチアドレスを保
持するフェッチアドレスレジスタEとを有し、アドレス
変換回路は予約フラグAが分岐先の命令フェッチ中であ
ることを示す間にアドレス変換回路に伴う例外が発生し
たことを保持する例外検出フラグDを有し、条件分岐命
令の実行において、保持レジスタCにより分岐先命令の
フェッチを再開し、分岐条件が成立しなかった場合に
は、フェッチアドレスレジスタEに保持したアドレスか
ら命令の先行フェッチを再開し、分岐条件が成立した場
合で例外検出フラグDにアドレス変換回路5に伴う例外
が発生していない場合には、分岐先レジスタBの示す分
岐アドレスをプログラムカウンタにセットして、分岐先
命令列保持手段IBの命令列を先行フェッチのデータと
し、保持レジスタCでフェッチした命令以降の命令列の
先行フェッチを行う一方、例外検出フラグDにアドレス
変換回路5に伴う例外が発生したことを示している場合
には、分岐先命令列保持手段IBの命令列を使用せず、
分岐先レジスタBの示す分岐アドレスから再度命令の先
行フェッチをやり直すことである。
【0007】
【作用】本発明では、命令デコード回路2において命令
バッファ1の出力に分岐命令がなかった場合、プリフェ
ッチ制御回路3は保持レジスタCのアドレスを更新する
とともに、保持レジスタCの出力をアドレス変換回路5
に送出し、対応する物理アドレスをメモリ6が受取り命
令バッファ1に命令データをセットする。これを繰り返
しプリフェッチを行う。
【0008】ここで、アドレス変換回路5においてアド
レス変換に伴う例外が検出された場合には、アドレス変
換回路5は、例外検出フラグDから例外検出信号を命令
実行部3に送出し、命令実行部3は、命令の実行を中断
して例外に対する割り込み処理を行う。命令デコード回
路2において命令バッファ1の出力に分岐命令を検出し
た場合、分岐アドレスを計算して、プリフェッチ制御回
路4の分岐先レジスタB及び保持レジスタCに分岐先ア
ドレスをセットし、分岐予約フラグAをONにする。プ
リフェッチ制御手段4は、分岐先アドレスに対する命令
アドレスをアドレス変換回路5に送出する。アドレス変
換回路5はそれに対応する物理アドレスをメモリ6に送
出し、対応する命令コードが命令バッファ1にセットさ
れる。
【0009】この分岐先命令のプリフェッチは、命令実
行部3が分岐条件の判定を行っている間は継続して行わ
れる。予約フラグAがONの間において命令実行部3で
例外が検出された場合には、アドレス変換回路5の例外
検出フラグDがセットされる。命令実行部3において分
岐命令が実行され分岐が確定したときの動作は以下のと
おりである。
【0010】I 例外発生なし(D=OFF)で分岐条
件不成立の時 フェッチアドレスレジスタEに保持したアドレスをCに
セットし、予約フラグAをリセットし、処理を継続す
る。 II 例外発生なし(D=OFF)で分岐条件成立の時 継続してプリフェッチを行い、予約フラグAをリセット
し、分岐先レジスタBに保持するアドレスに対応する命
令コードを命令デコード回路2から取り出し、命令実行
部3に送出する。
【0011】III 例外発生(D=ON)で分岐条件不成
立の時 フェッチアドレスレジスタEに保持したアドレスを保持
レジスタCにセットし、予約フラグA及び例外検出フラ
グDをリセットし、処理を継続する。 IV 例外発生(D=ON)で分岐条件成立の時 分岐先レジスタBに保持したアドレスを保持レジスタC
にセットし、予約フラグA及び例外検出Dをリセット
し、分岐先レジスタBに保持するアドレスに対応する命
令コードを命令デコード回路2から取り出し、命令実行
部3に送出する。命令フェッチの再実行により、再びア
ドレス変換の例外を検出し、命令実行回路3に例外処理
のための割り込み信号を伝える。
【0012】
【実施例】以下、本発明に係るプロセッサにおける分岐
制御方式の実施例を説明する。図1乃至図5は本発明に
係るプロセッサにおける分岐制御方式の実施例を示すも
のである。図1及び図2において1は2系統のバッファ
IBA11、IBB12、TFF(トグルフリップフロ
ップ)13及び、マルチプレクサ(MPX)14からな
る命令バッファ、2はデコーダ21、予約フラグAであ
るJKフリップフロップ22、及び命令実行部3から分
岐(BR)非分岐(NBR)信号を受け上記フリップフ
ロップ22のK端子に論理和を出力するアンドゲート2
3からなる命令デコード回路、3は命令実行部を示して
いる。また、4は命令のプリフェッチアドレスを保持・
更新する保持レジスタC、分岐時に分岐先アドレスを保
持するレジスタB、分岐先アドレスが確定した時点での
フェッチアドレスを保持するフェッチアドレスレジスタ
E、マルチプレクサ(MPX)41及びアドレスを歩進
させるインクリメンタ42から成るプリフェッチ制御回
路、5はTLB(変換索引バッファ)51、デコーダ5
2例外検出フラグDであるJKフリップフロップ53、
アンドゲート54、インバータ55及び命令実行部3に
割込信号を発生するアンドゲート56とからなり論理ア
ドレスを物理アドレスに変換すると共ににDAT変換に
おいて、例外が発生したことを検出するアドレス変換回
路、6は、命令コードが格納され、アドレス変換回路よ
り入力される物理アドレスに対応する命令コードを命令
バッファ1に転送するメモリを示している。
【0013】次に本実施例に係るプロセッサにおける分
岐制御方式の作動を説明する。先ず、命令バッファ1に
おいて、バッファIBA11及びIBB12は、TFF
13(トグルフリップフロップ)によりMPX14で選
択され、分岐が成立する度に値が反転し反対側の命令バ
ッファを選択され命令デコード回路2に出力される。
【0014】デコーダ21は、入力された命令コードか
ら分岐命令の分岐先アドレスを生成し、分岐命令が検
出され、有効な分岐先アドレスが生成されたことを示
す分岐検出信号を生成し、当信号がONになったと
き、予約フラグA(JKフリップフロップ22)をセッ
トする。この予約フラグAは、分岐命令の分岐条件が確
定したときにK入力がONになり、リセットされる。ま
た、MPX14の出力から命令コードを切り出して、命
令コードを命令実行部3に転送する。
【0015】命令実行部3は分岐命令において、分岐条
件判定タイミングにおいて、分岐条件成立時には、信号
BRを出力し、分岐条件非成立時には、NBRを命令デ
コード回路2に出力する。プリフェッチ制御回路4は分
岐検出信号がONになった時に、分岐先レジスタBに
分岐先アドレスをセットすると同時に、MPX41に
より保持レジスタCの入力に分岐先アドレスが選択さ
れ、が保持レジスタCにセットされる。また、がO
Nになった時に、保持レジスタCの出力をフェッチアド
レスレジスタEにコピーする。
【0016】また信号NBRがONになった時には、M
PX41はフェッチアドレスレジスタEをセレクトし、
フェッチアドレスレジスタEの値が保持レジスタCにセ
ットされる。さらに信号がONになった時には、分岐
先レジスタBの出力がMPX41で選択され、保持レジ
スタCに分岐先レジスタBの値がセットされる。それ以
外の時には、保持レジスタCを更新した信号がMPX
41に選択され、プリフェッチが行われる度に、保持レ
ジスタCの値は更新される。
【0017】アドレス変換回路5では、TLB51によ
り、論理アドレスから物理アドレスに変換すると同時に
デコーダ6はそのアドレスに対するTLBフォルトを検
出してTLBF信号を出力する。予約フラグAがOFF
の時には、TLBフォルト信号TLBFがそのまま3へ
の割り込み信号となるがA=1の間は、割り込みを抑止
する。A=1の間にTLBFがONになった時には、例
外検出フラグD(JKフリップフロップ53)がセット
され、分岐が成立したときに信号を出力する。
【0018】これらの作動を実際の例に基づいて説明す
る。図3乃至図5は、実施例に係るプロセッサにおける
分岐制御方式の作動を示すタイミングチャートである。
先ず、分岐先においてTLBフォルト(例外)が発生し
ない場合であって、通常に分岐するときには、図3
(1)に示すように、命令バッファ1のIBAを実行中
デコーダ21からの分岐検出信号で予約フラグAがO
Nとなり、保持レジスタCは継続してプリフェッチを行
う。そして、命令実行部3からのBR信号により予約フ
ラグAをリセットし、分岐先レジスタBに保持するアド
レスに対応する命令コードIBBを命令デコード回路2
から取り出し、TFF13によりMPX14を切り換え
て、命令バッファ1から、デコーダ21からは切り替わ
った命令コードIBBが命令実行部3に送出される。こ
れにより、分岐が正常に行われる。
【0019】分岐が行われない場合には、図3(2)に
示すように、NBR信号により予約フラグAはリセット
され、MPX1は切り替わらず、そのまま命令コードI
BAが命令実行部3に出力される。分岐先においてTL
Bフォルトが発生する場合は本実施例は以下のように作
動する。
【0020】先ず分岐先でTLBフォルトが発生し、分
岐をしない場合を図4に示す。命令バッファ1のIBA
を実行中デコーダ21からの分岐検出信号で予約フラ
グAがONとなり、保持レジスタCは継続してプリフェ
ッチを行う。途中TLBフォルト信号がデコーダから出
力されると、フェッチアドレスレジスタEに保持したア
ドレスを保持レジスタCにセットする。しかしNBR信
号の出力と共に、予約フラグA及び例外検出フラグDを
リセットし、処理を継続する。
【0021】次に、分岐先でTLBフォルトが発生し、
分岐をする場合を図5に示す。命令バッファ1のIBA
を実行中デコーダ21からの分岐検出信号で予約フラ
グAがONとなり、保持レジスタCは継続してプリフェ
ッチを行う。途中TLBフォルト信号がデコーダ52か
ら出力されると、フェッチアドレスレジスタEに保持し
たアドレスを保持レジスタCにセットする。さらに、分
岐先レジスタBに保持したアドレスを保持レジスタCに
セットし、予約フラグA及び例外検出Dをリセットし、
分岐先レジスタBに保持するアドレスに対応する命令コ
ードを命令デコード回路2から取り出し、命令実行部3
に送出する。
【0022】そして、分岐命令の再実行により、デコー
ダ52がTLBFを検出する。このとき、予約フラグは
リセットされているのでデコーダ52からのTLBF信
号はアンドゲート56を通過して、命令実行回路3に例
外処理のための割り込み信号INTとして伝わり割込処
理が行われる。
【0023】
【発明の効果】以上説明したように、本発明によれば、
プロセッサにおける分岐制御方式を、条件分岐命令の実
行において、保持レジスタCにより分岐先命令のフェッ
チを再開し、分岐条件が成立しなかった場合には、フェ
ッチアドレスレジスタEに保持したアドレスから命令の
先行フェッチを再開し、分岐条件が成立した場合で例外
検出フラグDにアドレス変換回路5に伴う例外が発生し
ていない場合には、分岐先レジスタBの示す分岐アドレ
スをプログラムカウンタにセットして、分岐先命令列保
持手段IBの命令列を先行フェッチのデータとし、保持
レジスタCでフェッチした命令以降の命令列の先行フェ
ッチを行う一方、例外検出フラグDにアドレス変換回路
5に伴う例外が発生したことを示している場合には、分
岐先命令列保持手段IBの命令列を使用せず、分岐先レ
ジスタBの示す分岐アドレスから再度命令の先行フェッ
チをやり直すようにしたから、分岐先命令のプリフェッ
チにおいて、分岐条件が確定する前にアドレス変換の例
外が発生した場合には、プリフェッチの抑止等の特殊な
動作を必要とせず、分岐条件が確定した後に再実行する
ことにより、分岐制御、プリフェッチ制御の簡単化、高
速化を実現することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明に係るプロセッサにおける分岐制御方式
の実施例を示す図である。
【図3】図2に示したプロセッサにおける分岐制御方式
の作動を示すタイミングチャートである。
【図4】図2に示したプロセッサにおける分岐制御方式
の作動を示すタイミングチャートである。
【図5】図2に示したプロセッサにおける分岐制御方式
の作動を示すタイミングチャートである。
【符号の説明】
1 命令バッファ 2 命令デコード回路 3 命令実行部 4 プリフェチ制御回路 5 動的アドレス変換回路 6 メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹野 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 ポーンシャイチョンスワンナパイサン 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プリフェッチ命令を蓄える命令バッファ
    (1)と、命令デコード回路(2)と、命令実行部
    (3)と、プリフェッチ制御回路(4)と、動的アドレ
    ス変換回路(5)と命令コードメモリ(6)とを有し、
    動的アドレス変換(DAT)を行うと共に、命令の先行
    フェッチを行うプロセッサにおいて、 命令バッファ1は分岐先の命令列を保持する分岐先命令
    列保持手段IBを有し、 命令デコード回路2は分岐アドレスが確定し分岐条件の
    評価がまだ行われていないことを示す予約フラグAを有
    し、 プリフェッチ制御回路3は、その分岐アドレスを保持す
    る分岐先レジスタBと、 分岐アドレスが始まる連続する命令列をAが有効である
    期間フェッチする保持レジスタCと、 分岐先アドレスが確定した時点での先行フェッチアドレ
    スを保持するフェッチアドレスレジスタEとを有し、 アドレス変換回路は予約フラグAが分岐先の命令フェッ
    チ中であることを示す間にアドレス変換回路に伴う例外
    が発生したことを保持する例外検出フラグDを有し、 条件分岐命令の実行において、保持レジスタCにより分
    岐先命令のフェッチを再開し、分岐条件が成立しなかっ
    た場合には、フェッチアドレスレジスタEに保持したア
    ドレスから命令の先行フェッチを再開し、分岐条件が成
    立した場合で例外検出フラグDにアドレス変換回路5に
    伴う例外が発生していない場合には、分岐先レジスタB
    の示す分岐アドレスをプログラムカウンタにセットし
    て、分岐先命令列保持手段IBの命令列を先行フェッチ
    のデータとし、保持レジスタCでフェッチした命令以降
    の命令列の先行フェッチを行う一方、 例外検出フラグDにアドレス変換回路5に伴う例外が発
    生したことを示している場合には、分岐先命令列保持手
    段IBの命令列を使用せず、分岐先レジスタBの示す分
    岐アドレスから再度命令の先行フェッチをやり直すこと
    を特徴とするプロセッサにおける分岐制御方式。
JP28865992A 1992-10-27 1992-10-27 情報処理装置 Expired - Fee Related JP2944335B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28865992A JP2944335B2 (ja) 1992-10-27 1992-10-27 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28865992A JP2944335B2 (ja) 1992-10-27 1992-10-27 情報処理装置

Publications (2)

Publication Number Publication Date
JPH06139070A true JPH06139070A (ja) 1994-05-20
JP2944335B2 JP2944335B2 (ja) 1999-09-06

Family

ID=17733026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28865992A Expired - Fee Related JP2944335B2 (ja) 1992-10-27 1992-10-27 情報処理装置

Country Status (1)

Country Link
JP (1) JP2944335B2 (ja)

Also Published As

Publication number Publication date
JP2944335B2 (ja) 1999-09-06

Similar Documents

Publication Publication Date Title
JP2640454B2 (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US6553488B2 (en) Method and apparatus for branch prediction using first and second level branch prediction tables
JP2518616B2 (ja) 分岐方法
JP2603626B2 (ja) データ処理装置
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
JPH056894B2 (ja)
JPH06266556A (ja) データ処理装置
US6170050B1 (en) Length decoder for variable length data
JP2618187B2 (ja) マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム
JPH06139070A (ja) プロセッサにおける分岐制御方式
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
JP3721002B2 (ja) メモリ要求を形成するために並列に生成される複数の取出アドレスのうちの1つを選択する、プロセッサおよび命令取出方法
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JPH0212429A (ja) ディレイド・ジャンプ対応機能付情報処理装置
JP2636562B2 (ja) 計算機
JP2979108B2 (ja) データ処理装置における非同期処理の同期化方式
JPH06131180A (ja) 命令処理方式および命令処理装置
US5802346A (en) Method and system for minimizing the delay in executing branch-on-register instructions
JPH0855033A (ja) 情報処理装置
JPH06301534A (ja) 情報処理装置
JPH04160638A (ja) 情報処理装置
JPH0248733A (ja) 情報処理装置
JPH0774992B2 (ja) データ処理装置
JP2545594B2 (ja) オペランドデータ先取り方式
JPH10283182A (ja) パイプライン型情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990601

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110625

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120625

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees