JPH02278428A - 分岐制御方式 - Google Patents
分岐制御方式Info
- Publication number
- JPH02278428A JPH02278428A JP10052389A JP10052389A JPH02278428A JP H02278428 A JPH02278428 A JP H02278428A JP 10052389 A JP10052389 A JP 10052389A JP 10052389 A JP10052389 A JP 10052389A JP H02278428 A JPH02278428 A JP H02278428A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- branch
- branch destination
- stored
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明はコンピュータシステムにおける分岐制御方式
に関し、特に命令先取り機能をqするコンピュータシス
テムの分岐制御方式に関する。
に関し、特に命令先取り機能をqするコンピュータシス
テムの分岐制御方式に関する。
(従来の技術)
一般に、命令先取り機能ををするコンピュータシステム
においては、処理の高速化を計るために、将来必要と思
われる命令が予め先取りして命令先取りバッファに格納
され、これによって命令の読出しと現在の処理とが並行
して実行される。
においては、処理の高速化を計るために、将来必要と思
われる命令が予め先取りして命令先取りバッファに格納
され、これによって命令の読出しと現在の処理とが並行
して実行される。
このようなシステムにおいて、分岐命令が現われた場合
には命令の先取りが一旦停止されると共に、命令先取り
バッファが初期化される。そして、プログラムカウンタ
の値がその分岐先アドレスにセットされてメモリフェッ
チが行なわれる。
には命令の先取りが一旦停止されると共に、命令先取り
バッファが初期化される。そして、プログラムカウンタ
の値がその分岐先アドレスにセットされてメモリフェッ
チが行なわれる。
このように、分岐命令を実行する場合には、命令先取り
バッファの内容に関係なく無条件にその命令先取りバッ
ファの初期化が実行される。このため、分岐先アドレス
の命令が命令先取りバッファに格納されている場合にお
いても、その分岐先アドレスの命令をメモリから取出す
処、理を実行し直す必要がある。
バッファの内容に関係なく無条件にその命令先取りバッ
ファの初期化が実行される。このため、分岐先アドレス
の命令が命令先取りバッファに格納されている場合にお
いても、その分岐先アドレスの命令をメモリから取出す
処、理を実行し直す必要がある。
したがって、従来のコンピュータシステムでは、分岐命
令が多い場合には命令の先取り機能を利用することがで
きず、処理効率の低下を招く欠点があった。
令が多い場合には命令の先取り機能を利用することがで
きず、処理効率の低下を招く欠点があった。
(発明が解決しようとする課題)
従来では分岐命令に対しては命令の先取り機能を利用で
きず、分岐命令が多い場合は処理効率の低下を招く欠点
があった。
きず、分岐命令が多い場合は処理効率の低下を招く欠点
があった。
この発明はこのような点に鑑みなされたもので、命令先
取り機能を利用して分岐先の命令を実行できるようにし
て、分岐命令が多い場合でも効率よくデータ処理を実行
できる分岐制御方式を提供することをI」的とする。
取り機能を利用して分岐先の命令を実行できるようにし
て、分岐命令が多い場合でも効率よくデータ処理を実行
できる分岐制御方式を提供することをI」的とする。
[発明の構成]
(課題を解決するための手段)
この発明による分岐制御方式は、実行すべき命令のアド
レスを保持するプログラムカウンタと、先取りした命令
が格納される命令先取りバッファと、この命令先取りバ
ッファに格納されている最新命令のアドレスを示す先取
りアドレスポインタと、前記命令先取りバッファから次
に読出すべき命令のアドレスを示す読出しポインタと、
分岐命令によって指定された分岐先アドレスを保持する
アドレス保持手段と、このアドレス保持手段に格納され
ている分岐先アドレスの値、前記プログラムカウンタの
値および前記アドレスポインタの値に基いて前記分岐先
アドレスの命令が前記命令先取りバッファに格納されて
いるか否かを判断し、格納されている時には前記読出し
ポインタの値を前記分岐先アドレス値と前記プログラム
カウンタ値との差に応じて更新する読出しポインタ更新
手段とを具備し、分岐先の命令を前記命令先取りバッフ
ァから読出して実行することを特徴とする。
レスを保持するプログラムカウンタと、先取りした命令
が格納される命令先取りバッファと、この命令先取りバ
ッファに格納されている最新命令のアドレスを示す先取
りアドレスポインタと、前記命令先取りバッファから次
に読出すべき命令のアドレスを示す読出しポインタと、
分岐命令によって指定された分岐先アドレスを保持する
アドレス保持手段と、このアドレス保持手段に格納され
ている分岐先アドレスの値、前記プログラムカウンタの
値および前記アドレスポインタの値に基いて前記分岐先
アドレスの命令が前記命令先取りバッファに格納されて
いるか否かを判断し、格納されている時には前記読出し
ポインタの値を前記分岐先アドレス値と前記プログラム
カウンタ値との差に応じて更新する読出しポインタ更新
手段とを具備し、分岐先の命令を前記命令先取りバッフ
ァから読出して実行することを特徴とする。
(作 用)
この分岐制御方式にあっては、分岐命令を受けた時にそ
の分岐命令によって指定された分岐先アドレスが保持さ
れ、その分岐先アドレスの命令か命令先取りバッファ内
に格納されているか否かが判断される。そして、格納さ
れている場合には読出しポインタの値を更新することに
よって、命令先取りバッファから分岐先の命令が取出さ
れる。
の分岐命令によって指定された分岐先アドレスが保持さ
れ、その分岐先アドレスの命令か命令先取りバッファ内
に格納されているか否かが判断される。そして、格納さ
れている場合には読出しポインタの値を更新することに
よって、命令先取りバッファから分岐先の命令が取出さ
れる。
したがって、分岐命令が多い場合にも命令先取り機能を
a効に使用することができ、効率良くデータ1へ理を実
行することができる。
a効に使用することができ、効率良くデータ1へ理を実
行することができる。
(実権例)
以下、図面を謬照してこの発明の詳細な説明する。
第1図にこの発明の一実施例に係わる分岐制御方式を実
現するシステム構成を示す。命令先取りバッファ1[に
は、メモリから先取りした命令(データ)が格納される
。書込みポインタ12は、命令先取リバッファ11のど
こまで命令が書込まれているかを示す。読出しポインタ
13は、命令先取りバッファ11に格納されている命令
の内で次に読出すべき命令のアドレスを示す。
現するシステム構成を示す。命令先取りバッファ1[に
は、メモリから先取りした命令(データ)が格納される
。書込みポインタ12は、命令先取リバッファ11のど
こまで命令が書込まれているかを示す。読出しポインタ
13は、命令先取りバッファ11に格納されている命令
の内で次に読出すべき命令のアドレスを示す。
フェッチアドレスポインタ14は、最も後に先取りが行
なわれた命令のメモリ上のアドレス、すなわち命令先取
リバッファ11に格納されている最新命令のメモリ上の
アドレスを示す。プログラムカウンタ15は、実行すべ
き命令のメモリ上のアドレスを示している。分岐先格納
用レジスタ16は、分岐命令によって指定される分岐先
のメモリ上のアドレスを示す。
なわれた命令のメモリ上のアドレス、すなわち命令先取
リバッファ11に格納されている最新命令のメモリ上の
アドレスを示す。プログラムカウンタ15は、実行すべ
き命令のメモリ上のアドレスを示している。分岐先格納
用レジスタ16は、分岐命令によって指定される分岐先
のメモリ上のアドレスを示す。
減算器17は、プログラムカウンタ15によって示され
る現在の実行アドレスと、分岐先格納用レジスタに格納
されている分岐先アドレスとの差を算出するものであり
、分岐先アドレスから現在の実行アドレスを減算する。
る現在の実行アドレスと、分岐先格納用レジスタに格納
されている分岐先アドレスとの差を算出するものであり
、分岐先アドレスから現在の実行アドレスを減算する。
加算器18は読出しポインタ13が分岐先格納用レジス
タIGに格納されている分岐先アドレスに該当する命令
を示すようにその値を更新するものであり、読出しポイ
ンタ13の値に減算器17の出力を加算してその加算結
果を読出しポインタに与える。
タIGに格納されている分岐先アドレスに該当する命令
を示すようにその値を更新するものであり、読出しポイ
ンタ13の値に減算器17の出力を加算してその加算結
果を読出しポインタに与える。
比較器L9aは、フェッチアドレスポインタ14の値す
なわち先取りされている最新命令のアドレスと分岐先格
納用レジスタ■6の分岐先アドレスとを比較するもので
あり、分岐先アドレスが先取りバッファ11に先取りさ
れている最新命令のアドレス以下の場合に例えば“H°
レベルの信号を発生する。比較器19bは、プログラム
カウンタ15の値すなわち現在の実行アドレスと分岐先
格納用レジスタ16の分岐先アドレスとを比較するもの
であり、分岐先アドレスか現在の実行アドレスよりも大
きい場合に例えば″H″レベルの信号を発生する。
なわち先取りされている最新命令のアドレスと分岐先格
納用レジスタ■6の分岐先アドレスとを比較するもので
あり、分岐先アドレスが先取りバッファ11に先取りさ
れている最新命令のアドレス以下の場合に例えば“H°
レベルの信号を発生する。比較器19bは、プログラム
カウンタ15の値すなわち現在の実行アドレスと分岐先
格納用レジスタ16の分岐先アドレスとを比較するもの
であり、分岐先アドレスか現在の実行アドレスよりも大
きい場合に例えば″H″レベルの信号を発生する。
ゲート回路20は、比較器19a 、 19bの出力に
基いて減算器17を制御するものであり、比較器19a
。
基いて減算器17を制御するものであり、比較器19a
。
19bの出力が共に“H″レベルすなわち分岐先アドレ
スが現在の実行アドレスと先取りされている最新命令の
アドレスとの間に位置している時は減算器17をアクテ
ィブ状態に設定する。一方、比較器19a 、 19b
のいずれか一方がL”レベルの場合には、減算器17の
動作を停止させる。
スが現在の実行アドレスと先取りされている最新命令の
アドレスとの間に位置している時は減算器17をアクテ
ィブ状態に設定する。一方、比較器19a 、 19b
のいずれか一方がL”レベルの場合には、減算器17の
動作を停止させる。
次に、第2図のフローチャートを参照して分岐命令を受
けた時の制御動作を説明する。CPUが分岐命令を受取
った時には、まずその分岐命令によって指定される分岐
先アドレスが算出されてその分岐先のアドレスが分岐先
格納用レジスター6に格納される(ステップAI)。こ
れと同時に、分岐条件がチエツクされ(ステップA2)
、不成立の場合には次の命令の処理に移行される(ステ
ップA3)。また、分岐条件が成立した場合には、前述
した比較回路19a 、 19bおよびゲート回路20
によって分岐先アドレスの命令が命令先取りバッファ1
1に格納されているか否かが判断される(ステップA4
)。格納されてない場合には、プログラムカウンター5
の値が更新されてその分岐先アドレスの命令がメモリか
ら再フエツチされる(ステリ ツブA本)。また、分岐先アドレスの命令が命令先取り
バッファ11に格納されている場合には、減算器■7お
よび加算器18によって分岐先アドレスと現在の実行ア
ドレスとの差だけ読出しポインター3の値が更新される
(ステップA[i)。これによって、読出しポインター
3は、分岐先アドレスに該当する命令を示す値にセット
される。そして、プログラムカウンタ15の値も分岐先
アドレスの値にセットされる。
けた時の制御動作を説明する。CPUが分岐命令を受取
った時には、まずその分岐命令によって指定される分岐
先アドレスが算出されてその分岐先のアドレスが分岐先
格納用レジスター6に格納される(ステップAI)。こ
れと同時に、分岐条件がチエツクされ(ステップA2)
、不成立の場合には次の命令の処理に移行される(ステ
ップA3)。また、分岐条件が成立した場合には、前述
した比較回路19a 、 19bおよびゲート回路20
によって分岐先アドレスの命令が命令先取りバッファ1
1に格納されているか否かが判断される(ステップA4
)。格納されてない場合には、プログラムカウンター5
の値が更新されてその分岐先アドレスの命令がメモリか
ら再フエツチされる(ステリ ツブA本)。また、分岐先アドレスの命令が命令先取り
バッファ11に格納されている場合には、減算器■7お
よび加算器18によって分岐先アドレスと現在の実行ア
ドレスとの差だけ読出しポインター3の値が更新される
(ステップA[i)。これによって、読出しポインター
3は、分岐先アドレスに該当する命令を示す値にセット
される。そして、プログラムカウンタ15の値も分岐先
アドレスの値にセットされる。
その後、分岐先アドレスの命令が命令先取リバッファ1
1から読出されて、その分岐先命令が実行される(ステ
ップA7)。
1から読出されて、その分岐先命令が実行される(ステ
ップA7)。
このように、この発明の分岐制御方式を使用すれば、C
P、 Uの性能を向上せさる命令先取り機能に、レジス
タや比較器等の値かなハードウェアを付加するだけで、
分岐命令に対して命令先取り機h’Qを釘効に利用する
ことが可能になる。したがって、再フエツチを行なわず
に分岐先の命令を実行できる。
P、 Uの性能を向上せさる命令先取り機能に、レジス
タや比較器等の値かなハードウェアを付加するだけで、
分岐命令に対して命令先取り機h’Qを釘効に利用する
ことが可能になる。したがって、再フエツチを行なわず
に分岐先の命令を実行できる。
[発明の効果]
以りのように、この発明によれば、命令先取り機能を利
用して分岐先の命令を実行できるので、分岐命令か多い
場合でも効率よくデータ処理を実行することか可能にな
る。
用して分岐先の命令を実行できるので、分岐命令か多い
場合でも効率よくデータ処理を実行することか可能にな
る。
第1図はこの発明の一実施例に係わる分岐制御方式を実
現するシステム構成を示す図、第2図は第1図に示した
システムの分岐制御動作を説明するフローチャートであ
る。 11・・・命令先取リバッファ、12・・・書込みポイ
ンタ、13・・・読出しポインタ、14・・・フェッチ
アドレスポインタ、15・・・プログラムカウンタ、1
6・・・分岐先格納用レジスタ、17・・・減算器、1
8・・・加算器、19a。 19b・・・比較器、20・・・ゲート回路。 出り頭人代理人
現するシステム構成を示す図、第2図は第1図に示した
システムの分岐制御動作を説明するフローチャートであ
る。 11・・・命令先取リバッファ、12・・・書込みポイ
ンタ、13・・・読出しポインタ、14・・・フェッチ
アドレスポインタ、15・・・プログラムカウンタ、1
6・・・分岐先格納用レジスタ、17・・・減算器、1
8・・・加算器、19a。 19b・・・比較器、20・・・ゲート回路。 出り頭人代理人
Claims (1)
- 実行すべき命令のアドレスを保持するプログラムカウン
タと、先取りした命令が格納される命令先取りバッファ
と、この命令先取りバッファに格納されている最新命令
のアドレスを示す先取りアドレスポインタと、前記命令
先取りバッファから次に読出すべき命令のアドレスを示
す読出しポインタと、分岐命令によって指定された分岐
先アドレスを保持するアドレス保持手段と、このアドレ
ス保持手段に格納されている分岐先アドレスの値、前記
プログラムカウンタの値および前記アドレスポインタの
値に基いて前記分岐先アドレスの命令が前記命令先取り
バッファに格納されているか否かを判断し、格納されて
いる時には前記読出しポインタの値を前記分岐先アドレ
ス値と前記プログラムカウンタ値との差に応じて更新す
る読出しポインタ更新手段とを具備し、分岐先の命令を
前記命令先取りバッファから読出して実行することを特
徴とする分岐制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10052389A JPH02278428A (ja) | 1989-04-20 | 1989-04-20 | 分岐制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10052389A JPH02278428A (ja) | 1989-04-20 | 1989-04-20 | 分岐制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02278428A true JPH02278428A (ja) | 1990-11-14 |
Family
ID=14276319
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10052389A Pending JPH02278428A (ja) | 1989-04-20 | 1989-04-20 | 分岐制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02278428A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2416412A (en) * | 2004-07-16 | 2006-01-25 | Samsung Electronics Co Ltd | Branch target buffer memory array with an associated word line and gating circuit, the circuit storing a word line gating value |
| US7471574B2 (en) | 2004-07-16 | 2008-12-30 | Samsung Electronics Co., Ltd. | Branch target buffer and method of use |
-
1989
- 1989-04-20 JP JP10052389A patent/JPH02278428A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2416412A (en) * | 2004-07-16 | 2006-01-25 | Samsung Electronics Co Ltd | Branch target buffer memory array with an associated word line and gating circuit, the circuit storing a word line gating value |
| GB2416412B (en) * | 2004-07-16 | 2006-09-20 | Samsung Electronics Co Ltd | Branch target buffer and method of use |
| US7471574B2 (en) | 2004-07-16 | 2008-12-30 | Samsung Electronics Co., Ltd. | Branch target buffer and method of use |
| US7609582B2 (en) | 2004-07-16 | 2009-10-27 | Samsung Electronics Co., Ltd. | Branch target buffer and method of use |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2518616B2 (ja) | 分岐方法 | |
| JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
| US4858104A (en) | Preceding instruction address based branch prediction in a pipelined processor | |
| JP2560988B2 (ja) | 情報処理装置および処理方法 | |
| US20130036426A1 (en) | Information processing device and task switching method | |
| US5418917A (en) | Method and apparatus for controlling conditional branch instructions for a pipeline type data processing apparatus | |
| EP0297943A2 (en) | Microcode reading control system | |
| US5142630A (en) | System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching | |
| JPH02278428A (ja) | 分岐制御方式 | |
| JP3211423B2 (ja) | 分岐命令実行方法および分岐命令実行装置 | |
| JP2694799B2 (ja) | 情報処理装置 | |
| JPH0877021A (ja) | 割込処理装置および方法 | |
| JP3325309B2 (ja) | サブルーチンリターン命令処理装置 | |
| JP2001022577A (ja) | 情報処理装置 | |
| JPH0248733A (ja) | 情報処理装置 | |
| JPH06301537A (ja) | 命令フェッチ回路 | |
| JP2927102B2 (ja) | 命令列切り替え方法及びそれを用いた演算プロセッサ | |
| JPH04213727A (ja) | 情報処理装置 | |
| JP2597744B2 (ja) | 分岐制御方法 | |
| JPH06301538A (ja) | 条件分岐命令処理装置 | |
| JPH04247523A (ja) | 例外処理装置および例外処理方法 | |
| JPH0238965B2 (ja) | ||
| JP5679263B2 (ja) | 情報処理装置及びマイクロ命令処理方法 | |
| JPH09311787A (ja) | データ処理装置 | |
| JP2629479B2 (ja) | 情報処理装置 |