JPS59183434A - 命令先取り制御方式 - Google Patents

命令先取り制御方式

Info

Publication number
JPS59183434A
JPS59183434A JP5703283A JP5703283A JPS59183434A JP S59183434 A JPS59183434 A JP S59183434A JP 5703283 A JP5703283 A JP 5703283A JP 5703283 A JP5703283 A JP 5703283A JP S59183434 A JPS59183434 A JP S59183434A
Authority
JP
Japan
Prior art keywords
instruction
register
address
branch
prefetch control
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
JP5703283A
Other languages
English (en)
Inventor
Seijiro Tajima
多嶋 清次郎
Masanori Hirano
平野 正則
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5703283A priority Critical patent/JPS59183434A/ja
Publication of JPS59183434A publication Critical patent/JPS59183434A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は電子計算機における命令の先取り制御方式に関
するものである。
〔従来技術〕
一般に電子計算機においては、処理の高速化をはかるた
め、命令の実行と次に実行する命令の先取りを並行して
行う方法がとられている。この場合1条件付分岐命令の
次に実行する命令の読出しとしては、並列読出しと予測
読出しの2通りが考えられる。並列読出しは、命令を格
納するメモリを相数バンクに分け、分岐に先立って次の
分岐の可E)−:性のあるすべての分岐先命令を読出す
方法であり、分岐条件が成立したとき、読出した複数個
の命令の中から1つを選択し、その命令を実行する。一
方、予測読出しは、分岐条件が決まる前に次に実行予定
の複数個の命令のアドレスの中から1つを予測し、それ
に基づいて次に実行する命令を読出す方法であり、分岐
条件が決定して予測が連中したときは、該読出した命令
をそのま〜実行するが、予測がはずれたときは、新たに
決定した条件にしたがって実行すべき命、令を読出し、
実行する。こ〜で、並列読出しはメモリを複数ノ(ンク
にするため、ハード量が増加する欠点を有している。こ
れに対して、予測読出しは並列読出しに比べてハード量
が少な(てすむが、予測がはずれたとき、新たに次に実
行する命令の読出しを行わなけプ1ばならないため、実
効上命令の実行速度が低下する欠点を有している。従っ
て、予測読出しでは予測の適中率をあげることが1要と
なる。
ところで、従来の予測読出しにおいては、予測アドレス
をハードウェアで一義的に決めていた。
たとえば、条件付分岐命令のアドレスをA番地、次に実
行予定の命令アドレスを(A+1)1j地及びB番地と
すると、ノ)−ドウエア的に予測アドレスは必ず(A+
1)番地あるいはB番地にするように固定していた。こ
のため、予測の適中率が悪く、又、予測の適中率をあげ
ようとすると、プログラムの設計時にメモリへの割付け
を考慮しなければならないなどの欠点を有していた。
〔発明の目的〕
本発明の目的は予測の適中率を向上せしめ、実効上、命
令の実行速度を向上させる命令先取り制御方式を提供す
ることにある。
〔発明の概要〕 上記の目的を達成するため、本発明は命令で変更できる
命令先取り制御レジスタを設ケ、命件付分岐命令を実行
する場合、次に実行予定の複数個スタの内容に従って1
つのアドレスを予測し、予測1.たアドレスにより命令
の先取りを行うことをl行値とするものである。
Lも西明の実施例〕 亀1図は水元Q+]の実施例であって、1は命令レジス
タ、2は命令アドレスレジスタ、3は次命令つ−ドl/
ヌレジスタ、す4はメモリである。次命令アドレスレジ
スタ3には、+1回路6により命令アI;・スレジスタ
2の値に+1した値をセットするっ5i、)セし7クタ
であり、オアゲート21がオフのとき次66令アドレス
レジスタ3を選択し、オアデートハがオンのとき命令レ
ジスタ1の分岐先アドレスな〜えるイS号線12を選択
する。、7は命令先取り制ytpレジスタであり、命令
によりオン、オフできる。
8はろ6令先取り制御ディレィレジスタであり、命令先
取り制御レジスタ7の状態をおくれて反映す、〈)。9
は命令のテスト条件を判定するテストマトリックス、j
Oは不一致検出レジスタ、11は命令の−fデコードび
デコード結果にもとすいて演算動作等を行う論理回路で
ある。12は命令の分岐先アドレスを与える(i4号線
、13は命令のテスト榮件を与える信号線、14は命令
の演算器制御情報等を与える信号線、15は命令のテス
ト条件が無条件分岐であることを与える信号線、16は
命令のテスト条件が条件付分岐であることを与える信号
線、17は命令のテスト条件が条件句分岐でかつ分岐成
功であることを与える信号線である。18 、19はイ
クスクルーシブオアグート、肋はアンドゲート、21は
オアゲートである。
第2図は第1図の動作を説明するための命令フロー図を
示したもので、■、■、■、■は分岐でない命令、■は
無条件分岐命令、■、■は条件付分岐命令である。説明
の都合上、命令■は分岐成功の確率が高いとする。各命
令の左上の記号(A。
A+19等)は命令のアドレスを表わす。
第3図、第4図は第1図の動作を説明するためのタイミ
ング図を示したもので、第3図は条件付分岐命令■の次
に実行する命令アドレスの予測が的中した場合、第4図
は予測がはずれた場合である。
1ノF第2図、第3図及び第4図を参照して第1し1G
・)動作を説明する。
初めに第3図により予測が連中した場合の動作ケ峠、リ
ドす゛る。いま命令アドレスレジスタ2にはアドレス人
がセットされているとする。第1マシンy =(クルで
メモリ4のアドレスAの命令■が命令しジスタ1にセッ
トされると、テスト条件が信号綿口を経由してテストマ
トリックス9に与えられる1、命令■は分岐でない命令
であるため、テスト−7トリツクス9の出力信号線15
 、16は共にオフとなる。このため、オアデー) 2
1の出力がオフとなり、セレクタ5は次命令アドレスレ
ジスタ3の出力信号を選択し、命令アドレスレジスタ2
には命令■のアドレス(A+1)がセットされる。
第2マシンサイクルで命令■が命令レジスタIKセット
されると、この命令■は無条件分岐命令であるため、テ
ストマ) IJラックスの出力信号線15がオンとなり
、オアゲート21の出力はオンとなる。このため、セレ
クタ5は命令レジスタ1中の命令の分岐先アドレスBを
与える信号線12を選択し、命令アドレスレジスタ2に
は命令■のアドレ7スBがセットされる。命令■の次に
実行する命令■は条件付分岐命令であり、分岐成功の確
率が高いため、命令■で命令先取り制御レジスタ7をセ
ットする。これは、論理回路11が信号線14を通して
与えられる命令レジスタ1の命令中の特定フィールドを
デコードすることによって達成される。
第3マシンサイクルでは、命令■が命令レジスタlkセ
ットされると、この命令■は条件付分岐命令であるため
、テストマトリックス9の出力信号線15がオフ、出力
信号線16がオンとなる。また、命令先取り制御ディレ
ィレジスタ8はオン、不一致検出レジスタ10はオフで
ある。このため、オアゲート21の出力がオンとなり、
セレクタ5は命令レジスタ1中の命令の分岐先アドレス
Cを与える信号12を選択し、命令アドレスレジスタ2
には命令■のアドレスCがセットされる。こ瓦で、不一
致検出レジスタ10は次に実行する命令のアドレスの予
測がはずれたときオンにセットされ、新たに決定した条
件にしたがって実行すべき命令を読出した後リセットさ
れたものである。従って、次に実行する命令のアドレス
を予測する時点では常にオフとなっている。不一致検出
レジ−スタ1oがオンとなる場合は第4図で説明する。
命令■の実行結果、レジスタ8がオンであるため、イク
スクルーシプオアゲート18がオフとなり、不一致検出
レジスタ10はオフのままである。
不一致検出しlラスタ1oで不一致が検出されなかった
ため、第4マシンサイクルでは命令■が命令レジスタ1
にセットされる。この命令■は条件付分岐命令であり、
その分岐成功の確率が高い場合には前記命令先取り制御
レジスタ7を現在オン状態のままにしておく。一方、分
岐成功の確率が低い場合には、命令■で命令先取り制御
レジスタ7をオフとする。第3図は命令先取り制御レジ
スタ7をオフとした場合のタイムチャートを示している
上述のように条件付分岐命令の分岐成功の確率をプログ
ラム作成者が判断し、命令で命令先取り制御レジスタ7
をオン又はオフすることにより、次に実行する命令アド
レスの予測の連中率を高めることができる。
第3図は予測が適中した場合の動作を示したが、適中し
ない場合もありうるので、その場合の動作を第4図によ
り説明する。
第4図において、第2マシンサイクルまでは第3図と全
く同様に動作するので説明を省略する。
第3マシンサイクルで命令■が命令レジスタ1にセット
され、該命令■の実行結果、テストマトリックス9でテ
スト不成立になると、信号線17はオフとなる。この時
、命令先取り制御ディレィレジスタ8がオンであるため
、イクスクルーシプオアゲート18がオンとなり、不一
致検出レジスタlOがオンとなる。不一致検出レジスタ
10がオンにセットされると、命令レジスタ1及び命令
先取り制御ディレィレジスタ80更新を抑止する。なお
、抑止回路は第1図では省略しである。
第4マシンサイクルには、命令レジスタ1に命令■が保
持されており、該命令■は条件付分岐命令であるため、
テストマトリックス9の出力信号線15がオフ、信号線
16がオンとなっている。また、命令先取り制御ディレ
ィレジスタ8がオン、不一致検出レジスタ10がオンの
ため、イクスクルーシプオアグート19がオフとなり、
オアゲート21がオフとなる。このため、セレクタ5で
次命令アドレスレジスタ3が選択され、命令アドレスレ
ジスタ2には命令■のアドレスB+1がセットされる。
従って第5マシンサイクルでは、命令■が命令レジスタ
1にセットされる。
予測がはずれたときは、上述のように命令アドレスレジ
スタ2に次に実行する命令アドレスを復元し、新たにメ
モリ4から命令を読み直す。このため、予測がはずれた
とぎは命令の実行が見かけ上1マシンサイクルお(れる
。第1図には示していないが、第4マシンサイクルでは
、論理回路11で、命令レジスタ1にセットされている
命令■の実行を抑止するのは当然である。また、不一致
検出しジスク】0は命令アドレスレジスフ2に次に実行
する命令アドレスを復元1−だあとリセットする。
〔発明の効果〕
以上説明したように、本発明によれば、プログラム作成
者が条件付分岐命令の分岐成功の確率を判断し、命令先
取り制御レジスタを命令でオン又はオフとすることによ
り、次に実行する命令アドレスの予測を制御できるため
、予測のff1fn中率をあげることが可能となり、実
効上命令の実行速度を向上できる利点がある。なお、本
発明はマクロ命令、マイクロ命令のいずれにも適用でき
ることは云うまでもない。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は第1
図の動作を説明するための命令フロー図、第3図と第4
図は第1図の動作を説明するためのタイミング図である
。 1・・・命令レジスタ、  2・・・命令アドレスレジ
スタ、  3・・・次命令アドレスレジスタ、  4・
・・メモリ、  5・・・セレクタ、  6・・・+1
回路、7・・・命令先取り制御レジスタ、 8・・・命
令先取り制御ディレィレジスタ、  9・・・テストマ
トリックス、 10・・・不一致検出レジスタ、 11
・・・論理回路、 12〜17・・・信号線、 18.
19・・・イクスクルーシブオアゲー)、  20・・
・アンドゲート、zl・・・オアゲート。 代理人弁理士  鈴 木   誠パ 第1図

Claims (1)

    【特許請求の範囲】
  1. (1)  命令の実行と並行して次に実行する命令の先
    取りを行う形式の電子計算機において、命令により変更
    できる命令先取り制御レジスタを設け、条件付分岐命令
    の実行の場合、次に奥行予定の複数個の命令のアドレス
    の中から前記命令先取り制御レジスタの内容に従って1
    つのアドレスを予測し、予測したアドレスにより命令の
    先取りを行うことを特徴とする命令先取り制御方式。
JP5703283A 1983-04-01 1983-04-01 命令先取り制御方式 Pending JPS59183434A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5703283A JPS59183434A (ja) 1983-04-01 1983-04-01 命令先取り制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5703283A JPS59183434A (ja) 1983-04-01 1983-04-01 命令先取り制御方式

Publications (1)

Publication Number Publication Date
JPS59183434A true JPS59183434A (ja) 1984-10-18

Family

ID=13044094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5703283A Pending JPS59183434A (ja) 1983-04-01 1983-04-01 命令先取り制御方式

Country Status (1)

Country Link
JP (1) JPS59183434A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254342A (ja) * 1985-08-30 1987-03-10 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
JPH0895785A (ja) * 1994-09-29 1996-04-12 Nec Software Ltd 分岐予測装置
JP2008063091A (ja) * 2006-09-07 2008-03-21 Seiko Epson Corp 被記録材給送装置、記録装置、液体噴射装置
JP2013250593A (ja) * 2012-05-30 2013-12-12 Renesas Electronics Corp 半導体装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254342A (ja) * 1985-08-30 1987-03-10 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
JPH0895785A (ja) * 1994-09-29 1996-04-12 Nec Software Ltd 分岐予測装置
JP2008063091A (ja) * 2006-09-07 2008-03-21 Seiko Epson Corp 被記録材給送装置、記録装置、液体噴射装置
JP2013250593A (ja) * 2012-05-30 2013-12-12 Renesas Electronics Corp 半導体装置

Similar Documents

Publication Publication Date Title
US4430706A (en) Branch prediction apparatus and method for a data processing system
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US4477872A (en) Decode history table for conditional branch instructions
US8943298B2 (en) Meta predictor restoration upon detecting misprediction
KR101081674B1 (ko) 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법
JPH1124929A (ja) 演算処理装置およびその方法
JPH03282958A (ja) 電子計算機
JPH08249181A (ja) ブランチ予測式データ処理装置および動作方法
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
US5689694A (en) Data processing apparatus providing bus attribute information for system debugging
US5479622A (en) Single cycle dispatch delay in a multiple instruction dispatch mechanism of a data processing system
EP0164418B1 (en) Microprogram control system
JP3035828B2 (ja) 情報処理装置
JPS59183434A (ja) 命令先取り制御方式
CA1208798A (en) Timing control system in data processor
JP2793357B2 (ja) 並列演算装置
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JPH0475147A (ja) 情報処理システムにおける時間監視装置
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JPH10320246A (ja) プロセッサ方式性能測定方式
JPS63231627A (ja) 先行制御方式
JP2636074B2 (ja) マイクロプロセッサ
JPH02217924A (ja) データ処理装置のストア処理方式
JPS63221428A (ja) デ−タ処理装置
JPH04353923A (ja) 電子計算機の並列命令実行方式