JPH096612A - カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置 - Google Patents
カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置Info
- Publication number
- JPH096612A JPH096612A JP8127484A JP12748496A JPH096612A JP H096612 A JPH096612 A JP H096612A JP 8127484 A JP8127484 A JP 8127484A JP 12748496 A JP12748496 A JP 12748496A JP H096612 A JPH096612 A JP H096612A
- Authority
- JP
- Japan
- Prior art keywords
- register
- branch
- instruction
- branch instruction
- count
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003672 processing method Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 カウントおよびリンク・レジスタに割り当て
られたリネーム・レジスタの数に限定されることなく、
同時に未解決となる多重分岐を可能とするカウントおよ
びリンク分岐命令を処理するための装置および方法を提
供すること。 【解決手段】 装置および方法は、構築されたカウント
・レジスタと構築されたリンク・レジスタとを有し、そ
れぞれが先取りレジスタに接続されている。構築された
カウントまたはリンク・レジスタ内の情報は、該カウン
トまたはリンク・レジスタの内容を変える分岐命令が生
じた場合に先取りレジスタにコピーされる。また、先取
りレジスタ内の情報は、未解決の分岐が生じた場合にシ
ャドウ・レジスタに格納され、さらに未解決分岐の出力
が予測外れであった場合に、シャドウ・レジスタによっ
て回復される。
られたリネーム・レジスタの数に限定されることなく、
同時に未解決となる多重分岐を可能とするカウントおよ
びリンク分岐命令を処理するための装置および方法を提
供すること。 【解決手段】 装置および方法は、構築されたカウント
・レジスタと構築されたリンク・レジスタとを有し、そ
れぞれが先取りレジスタに接続されている。構築された
カウントまたはリンク・レジスタ内の情報は、該カウン
トまたはリンク・レジスタの内容を変える分岐命令が生
じた場合に先取りレジスタにコピーされる。また、先取
りレジスタ内の情報は、未解決の分岐が生じた場合にシ
ャドウ・レジスタに格納され、さらに未解決分岐の出力
が予測外れであった場合に、シャドウ・レジスタによっ
て回復される。
Description
【0001】
【発明の属する技術分野】本発明は、プロセッサのパフ
ォーマンスを向上させるための方法および装置に関し、
特にカウント・レジスタおよびリンク・レジスタへの書
き込みを行う多重の分岐命令を処理するための方法およ
び装置に関する。
ォーマンスを向上させるための方法および装置に関し、
特にカウント・レジスタおよびリンク・レジスタへの書
き込みを行う多重の分岐命令を処理するための方法およ
び装置に関する。
【0002】
【従来の技術】多くのパーソナル・コンピュータ(P
C)アーキテクチャの命令セットには、分岐命令が含ま
れる。分岐命令は、シークエンシャル・パスに沿ったプ
ログラムの実行を中断し、かつメモリ内の新たなロケー
ションでレジュームを実行する。この新しいロケーショ
ンは、分岐の目標アドレスとして参照される。ある種の
PCアーキテクチャでは、命令のための目標アドレスが
カウント・レジスタおよびリンク・レジスタと呼ばれる
2つの構築されたレジスタのうちの一つに格納される。
3通りの分岐命令、すなわち分岐・アンド・カウント
(branch-and-count)、分岐・アンド・リンク(branch-
and-link)、および分岐・トゥ・リンク(branch-to-li
nk)がカウント・レジスタまたはリンク・レジスタに書
き込まれる。
C)アーキテクチャの命令セットには、分岐命令が含ま
れる。分岐命令は、シークエンシャル・パスに沿ったプ
ログラムの実行を中断し、かつメモリ内の新たなロケー
ションでレジュームを実行する。この新しいロケーショ
ンは、分岐の目標アドレスとして参照される。ある種の
PCアーキテクチャでは、命令のための目標アドレスが
カウント・レジスタおよびリンク・レジスタと呼ばれる
2つの構築されたレジスタのうちの一つに格納される。
3通りの分岐命令、すなわち分岐・アンド・カウント
(branch-and-count)、分岐・アンド・リンク(branch-
and-link)、および分岐・トゥ・リンク(branch-to-li
nk)がカウント・レジスタまたはリンク・レジスタに書
き込まれる。
【0003】分岐・アンド・カウントは、実行に対して
カウント・レジスタを減分する分岐である。分岐・アン
ド・カウント命令は、例えば ”FOR i =1to
100 DO”のようにカウンタ従属ループに役立
つ。このステートメントは、値”100”をもってカウ
ント・レジスタをロードし、カウント・レジスタがゼロ
に達するまで分岐命令が実行されるごとにカウント・レ
ジスタを減分する。
カウント・レジスタを減分する分岐である。分岐・アン
ド・カウント命令は、例えば ”FOR i =1to
100 DO”のようにカウンタ従属ループに役立
つ。このステートメントは、値”100”をもってカウ
ント・レジスタをロードし、カウント・レジスタがゼロ
に達するまで分岐命令が実行されるごとにカウント・レ
ジスタを減分する。
【0004】分岐・アンド・リンクは、分岐命令の後に
次の順次アドレスをリンク・レジスタに置く分岐であ
る。分岐・トゥ・リンク命令は、目標アドレスがリンク
・レジスタに格納された値である分岐である。分岐・ア
ンド・リンク および分岐・トゥ・リンク命令によっ
て、サブルーチン・リンケージが単純に実行される。
次の順次アドレスをリンク・レジスタに置く分岐であ
る。分岐・トゥ・リンク命令は、目標アドレスがリンク
・レジスタに格納された値である分岐である。分岐・ア
ンド・リンク および分岐・トゥ・リンク命令によっ
て、サブルーチン・リンケージが単純に実行される。
【0005】分岐命令が実行されたあと、カウント・レ
ジスタまたはリンク・レジスタの内容が変更される可能
性がある。カウント・レジスタおよびリンク・レジスタ
の更新が、いわゆる書込みハザードを生成する。書込み
ハザードはレジスタが書き込みされて他の構成要素によ
って読み出されようとしたときに、その読出しが起こる
前に再び書き込みされる場合に起こる。結局、読出しが
起きるとき、レジスタにはその動作のための正しい値が
含まれないであろう。
ジスタまたはリンク・レジスタの内容が変更される可能
性がある。カウント・レジスタおよびリンク・レジスタ
の更新が、いわゆる書込みハザードを生成する。書込み
ハザードはレジスタが書き込みされて他の構成要素によ
って読み出されようとしたときに、その読出しが起こる
前に再び書き込みされる場合に起こる。結局、読出しが
起きるとき、レジスタにはその動作のための正しい値が
含まれないであろう。
【0006】条件付き分岐の実行は、カウント・レジス
タおよびリンク・レジスタの内容が誤って変更される可
能性のある別の方法である。条件付き分岐は、先行する
命令(例えば、比較命令)の結果にもとづいて目標アド
レスに制御を移す。また、条件付き分岐は、前の命令の
結果が分岐の実行の時点で知られているかどうかに依存
して解決された分岐あるいは未解決の分岐となろう。
タおよびリンク・レジスタの内容が誤って変更される可
能性のある別の方法である。条件付き分岐は、先行する
命令(例えば、比較命令)の結果にもとづいて目標アド
レスに制御を移す。また、条件付き分岐は、前の命令の
結果が分岐の実行の時点で知られているかどうかに依存
して解決された分岐あるいは未解決の分岐となろう。
【0007】分岐が解決された場合、分岐を実行するか
どうかが知らせられる。もし条件付き分岐が実行されな
いならば、分岐命令のすぐ後に続く次の順次命令ストリ
ームが実行される。条件付き分岐が実行さた場合、目標
アドレスで命令ストリームの起動が実行される。
どうかが知らせられる。もし条件付き分岐が実行されな
いならば、分岐命令のすぐ後に続く次の順次命令ストリ
ームが実行される。条件付き分岐が実行さた場合、目標
アドレスで命令ストリームの起動が実行される。
【0008】未解決の分岐が実行されるかどうかがわか
らないので、どの命令ストリームを処理すべきかどうか
はわからない。プロセッサがペンディングとなっている
未解決の分岐の解決を引き延ばさないようにするため
に、いくつかのプロセッサには、未解決の分岐の結果を
予測する機構が含まれている。実際に条件の結果が実行
され、その結果がプロセッサによって処理されるように
なると、上記予測は推論的なものにすぎない。したがっ
て、予測された命令ストリームまたはパスの実行を見込
み実行と呼ぶ。
らないので、どの命令ストリームを処理すべきかどうか
はわからない。プロセッサがペンディングとなっている
未解決の分岐の解決を引き延ばさないようにするため
に、いくつかのプロセッサには、未解決の分岐の結果を
予測する機構が含まれている。実際に条件の結果が実行
され、その結果がプロセッサによって処理されるように
なると、上記予測は推論的なものにすぎない。したがっ
て、予測された命令ストリームまたはパスの実行を見込
み実行と呼ぶ。
【0009】予測値によってカウントおよびリンク・レ
ジスタを更新することは、レジスタが正しい値ではない
と思われる。そのため、従来のプロセッサは条件付き分
岐を実行する場合にカウントおよびリンク・レジスタの
構築された値を変更しない。書き込みハザードと見込み
実行結果の潜在的変更可能性とを克服するために、従来
のプロセッサではカウント・レジスタおよびリンク・レ
ジスタの両方にいくつかのリネーム・レジスタを割り当
てがなされ、カウントおよびリネーム・レジスタの内容
をバックアップする。
ジスタを更新することは、レジスタが正しい値ではない
と思われる。そのため、従来のプロセッサは条件付き分
岐を実行する場合にカウントおよびリンク・レジスタの
構築された値を変更しない。書き込みハザードと見込み
実行結果の潜在的変更可能性とを克服するために、従来
のプロセッサではカウント・レジスタおよびリンク・レ
ジスタの両方にいくつかのリネーム・レジスタを割り当
てがなされ、カウントおよびリネーム・レジスタの内容
をバックアップする。
【0010】命令がカウントまたはリンク・レジスタ
(例えば、分岐・アンド・カウントと 分岐・アンド・
リンク )の内容を変えるとプロセッサが検出した場
合、プロセッサはレジスタの原内容をリネーム・レジス
タに格納する。例えば、カウントまたはリンク・レジス
タの内容が誤った見込み実行のために不正確に変更され
た場合、カウントおよびリンク・レジスタはリネーム・
レジスタに格納されている値で復元される。
(例えば、分岐・アンド・カウントと 分岐・アンド・
リンク )の内容を変えるとプロセッサが検出した場
合、プロセッサはレジスタの原内容をリネーム・レジス
タに格納する。例えば、カウントまたはリンク・レジス
タの内容が誤った見込み実行のために不正確に変更され
た場合、カウントおよびリンク・レジスタはリネーム・
レジスタに格納されている値で復元される。
【0011】リネーム・レジスタに書き込みがなされた
場合、それをカウントまたはリンク・レジスタの値を変
更する命令に対応付ける。カウントまたはリンク・レジ
スタに対してリネーム・レジスタが命令に対応付けられ
ると、この命令がプロセッサによって処理されるかもし
くは割込みが生じるまで、リネーム・レジスタを解放す
ることはできない。最初のリネーム・レジスタが割り当
てを解除される前にカウントまたはリンク・レジスタの
内容が別の命令によって変更される場合、カウントまた
はリンク・レジスタの内容を別のリネーム・レジスタに
退避させなければならない。
場合、それをカウントまたはリンク・レジスタの値を変
更する命令に対応付ける。カウントまたはリンク・レジ
スタに対してリネーム・レジスタが命令に対応付けられ
ると、この命令がプロセッサによって処理されるかもし
くは割込みが生じるまで、リネーム・レジスタを解放す
ることはできない。最初のリネーム・レジスタが割り当
てを解除される前にカウントまたはリンク・レジスタの
内容が別の命令によって変更される場合、カウントまた
はリンク・レジスタの内容を別のリネーム・レジスタに
退避させなければならない。
【0012】リネーム・レジスタを用いることは、カウ
ントおよびリンク・レジスタの内容を回復するのに有用
であるけれども、不利な点がいくつかある。第一に、リ
ネーム・レジスタを用いると、他の分岐命令に出会う場
合にプロセッサが機能停止し、カウントおよびリンク・
レジスタの内容をバックアップするのに有効なリネーム
・レジスタがなくなる。したがって、機能停止させるこ
となく処理される未解決分岐の数は、カウントおよびリ
ンク・レジスタに割り当てられたリネーム・レジスタの
数によって制限される。
ントおよびリンク・レジスタの内容を回復するのに有用
であるけれども、不利な点がいくつかある。第一に、リ
ネーム・レジスタを用いると、他の分岐命令に出会う場
合にプロセッサが機能停止し、カウントおよびリンク・
レジスタの内容をバックアップするのに有効なリネーム
・レジスタがなくなる。したがって、機能停止させるこ
となく処理される未解決分岐の数は、カウントおよびリ
ンク・レジスタに割り当てられたリネーム・レジスタの
数によって制限される。
【0013】さらに、カウントまたはリンク・レジスタ
の内容を読みとろうと試みる命令に出会った場合、リネ
ーム・レジスタはマルチプレクサの使用を必要とする。
このマルチプレクサは、その特有の命令のためのカウン
トまたはリンク・レジスタの正しい結果を含んでいるリ
ネーム・レジスタに、読取り命令を対応付けることが要
求される。機能停止を防止するために追加のリネーム・
レジスタをプロセッサに加えると、プロセッサの複雑性
が増大し、かつその費用も増加する。
の内容を読みとろうと試みる命令に出会った場合、リネ
ーム・レジスタはマルチプレクサの使用を必要とする。
このマルチプレクサは、その特有の命令のためのカウン
トまたはリンク・レジスタの正しい結果を含んでいるリ
ネーム・レジスタに、読取り命令を対応付けることが要
求される。機能停止を防止するために追加のリネーム・
レジスタをプロセッサに加えると、プロセッサの複雑性
が増大し、かつその費用も増加する。
【0014】
【発明が解決しようとする課題】したがって、同時に未
解決となる多重分岐を可能とし、かつカウントおよびリ
ンク・レジスタに割り当てられたリネーム・レジスタの
数に限定されない分岐命令処理装置および方法が求めら
れている。本発明は、そのような要求に応えるものであ
る。
解決となる多重分岐を可能とし、かつカウントおよびリ
ンク・レジスタに割り当てられたリネーム・レジスタの
数に限定されない分岐命令処理装置および方法が求めら
れている。本発明は、そのような要求に応えるものであ
る。
【0015】
【課題を解決するための手段】本発明は、同時に未解決
となる多重分岐を可能とする分岐命令を処理するための
方法および装置を提供する。これらの方法および装置で
は分岐命令分岐命令が分岐レジスタ内の情報を変える。
また、本発明の方法および装置では、分岐命令に出会っ
た場合に分岐レジスタ内の情報が先取りレジスタにコピ
ーされる。上記文意命令が未解決である場合、先取りレ
ジスタ内の情報がシャドウ・レジスタにコピーされる。
未解決分岐命令が予測誤りであった場合、シャドウ・レ
ジスタからの情報は先取りレジスタに提供される。分岐
命令が完全に実行されると、上記方法および装置は分岐
レジスタ内の情報を更新する。
となる多重分岐を可能とする分岐命令を処理するための
方法および装置を提供する。これらの方法および装置で
は分岐命令分岐命令が分岐レジスタ内の情報を変える。
また、本発明の方法および装置では、分岐命令に出会っ
た場合に分岐レジスタ内の情報が先取りレジスタにコピ
ーされる。上記文意命令が未解決である場合、先取りレ
ジスタ内の情報がシャドウ・レジスタにコピーされる。
未解決分岐命令が予測誤りであった場合、シャドウ・レ
ジスタからの情報は先取りレジスタに提供される。分岐
命令が完全に実行されると、上記方法および装置は分岐
レジスタ内の情報を更新する。
【0016】本願に開示した装置および方法によれば、
本発明は未解決の分岐によるプロセッサの機能停止を防
ぐとともに、カウントおよびリンク・レジスタに対する
別のリネーム・レジスタの必要性を取り除くことができ
る。したがって、本発明は全体的なプロセッサのパフォ
ーマンスを上げる一方で、プロセッサのコストおよび複
雑性を減少させる。
本発明は未解決の分岐によるプロセッサの機能停止を防
ぐとともに、カウントおよびリンク・レジスタに対する
別のリネーム・レジスタの必要性を取り除くことができ
る。したがって、本発明は全体的なプロセッサのパフォ
ーマンスを上げる一方で、プロセッサのコストおよび複
雑性を減少させる。
【0017】
【発明の実施形態】本発明は、未解決の多重分岐命の処
理を改善することに関する。以下の記載は、当業者によ
る本発明の実施および利用が可能となるように示される
ものであり、また特許出願およびその要件との関係にお
いて与えられるものである。好ましい実施態様に対する
種々の改良は、当業者にとっては容易に理解することが
できるであろうし、本願の一般的な原則は他の実施態様
にも適用される。したがって、本発明は、示された実施
態様に限定されるものではなく、本願に記載された原則
および特徴に合致するもっとも幅広い範囲に一致する。
理を改善することに関する。以下の記載は、当業者によ
る本発明の実施および利用が可能となるように示される
ものであり、また特許出願およびその要件との関係にお
いて与えられるものである。好ましい実施態様に対する
種々の改良は、当業者にとっては容易に理解することが
できるであろうし、本願の一般的な原則は他の実施態様
にも適用される。したがって、本発明は、示された実施
態様に限定されるものではなく、本願に記載された原則
および特徴に合致するもっとも幅広い範囲に一致する。
【0018】図1は、本発明にもとづくプロセッサ10
である。このプロセッサ10は、命令キャッシュ(I
C)12、命令バッファ(IB)14、2つの命令アド
レス待ち行列(IAQs)16および30、タスク指名
ユニット(DU)18、機能ユニット(FUs)20〜
24、完了バッファ(CB)26、および分岐ユニット
(BU)28を含む。
である。このプロセッサ10は、命令キャッシュ(I
C)12、命令バッファ(IB)14、2つの命令アド
レス待ち行列(IAQs)16および30、タスク指名
ユニット(DU)18、機能ユニット(FUs)20〜
24、完了バッファ(CB)26、および分岐ユニット
(BU)28を含む。
【0019】プロセッサ10は以下のように機能する。
命令バッファ14がアドレス・ライン32を介して命令
キャッシュ12に取り出しアドレスを与える。そして、
取り出しアドレスによって指示される命令は、データラ
イン34を介して命令キャッシュ12の外に移され、命
令バッファ14におかれる。同時に、命令キャッシュ1
2は,上記命令のアドレスを生成し、そのアドレスをア
ドレス・ライン36を介して命令アドレス待ち行列16
に送る。この命令アドレス待ち行列16は、関連する分
岐のための分岐目標アドレスを生成するために一般的に
必要とされる。
命令バッファ14がアドレス・ライン32を介して命令
キャッシュ12に取り出しアドレスを与える。そして、
取り出しアドレスによって指示される命令は、データラ
イン34を介して命令キャッシュ12の外に移され、命
令バッファ14におかれる。同時に、命令キャッシュ1
2は,上記命令のアドレスを生成し、そのアドレスをア
ドレス・ライン36を介して命令アドレス待ち行列16
に送る。この命令アドレス待ち行列16は、関連する分
岐のための分岐目標アドレスを生成するために一般的に
必要とされる。
【0020】各サイクルでは、タスク指名ユニット18
が命令バッファ14からの命令を評価し、非分岐命令を
機能ユニット20〜24に送り出す。これらの機能ユニ
ットでは非分岐命令を実行するために、該命令が列をな
す。同時に、分岐ユニット28はプロセスへの分岐命令
にかかわる命令バッファ14を継続的に走査する。タス
ク指名ユニット18によって指名された各命令の型が命
令バス38を介して完了バッファ26に送られる。
が命令バッファ14からの命令を評価し、非分岐命令を
機能ユニット20〜24に送り出す。これらの機能ユニ
ットでは非分岐命令を実行するために、該命令が列をな
す。同時に、分岐ユニット28はプロセスへの分岐命令
にかかわる命令バッファ14を継続的に走査する。タス
ク指名ユニット18によって指名された各命令の型が命
令バス38を介して完了バッファ26に送られる。
【0021】完了バッファ26は、上記プロセッサ10
での未解決のタスク指名命令を記録する。命令がタスク
指名ユニット18によって送り出されるので、命令に関
連したアドレスは完了バッファ26に割り当てられた第
2の命令アドレス待ち行列30(ここではCB−IAQ
30とする)に関連したものが読み込まれる。完了バッ
ファ26は、誤り命令の正確なアドレスを格納するため
にCB−IAQ30を使用する。
での未解決のタスク指名命令を記録する。命令がタスク
指名ユニット18によって送り出されるので、命令に関
連したアドレスは完了バッファ26に割り当てられた第
2の命令アドレス待ち行列30(ここではCB−IAQ
30とする)に関連したものが読み込まれる。完了バッ
ファ26は、誤り命令の正確なアドレスを格納するため
にCB−IAQ30を使用する。
【0022】完了バッファ26はカウント・レジスタ4
2およびリンク・レジスタ44の構築された値の制御も
行う。たとえば、一つの命令、例えば分岐命令が完了バ
ッファ26の底部に達すると直ちに、この命令が完全に
実行される。完全に実行された命令が完了バッファ26
によって処理されると、この時点で構築されたレジスタ
の値が更新される。この実施例では、完了バッファ26
はカウント・レジスタ42の値を1まで減少させて構築
されたカウント・レジスタを更新する。
2およびリンク・レジスタ44の構築された値の制御も
行う。たとえば、一つの命令、例えば分岐命令が完了バ
ッファ26の底部に達すると直ちに、この命令が完全に
実行される。完全に実行された命令が完了バッファ26
によって処理されると、この時点で構築されたレジスタ
の値が更新される。この実施例では、完了バッファ26
はカウント・レジスタ42の値を1まで減少させて構築
されたカウント・レジスタを更新する。
【0023】分岐ユニット28は、目標アドレスを特定
する分岐命令を処理し、この目標アドレスを取り出しア
ドレス・ライン40経由で命令キャッシュ12へ供給す
る。これによって、命令キャッシュ12が次のサイクル
を流れる新しい命令を処理することが可能となる。いく
つかのタイプの分岐命令は、カウント・レジスタ42ま
たはリンク・レジスタ44を目標アドレス形成の際に利
用する。例えば、分岐・アンド・リンク命令は機能ユニ
ット20〜24のいずれか一つによって計算された目標
アドレスを持ったのち、リンク・レジスタ44に移らな
ければならない。分岐・アンド・リンクの場合、目標ア
ドレスはリンク・レジスタ42から読み出しされ、命令
キャッシュ12へ送られる。
する分岐命令を処理し、この目標アドレスを取り出しア
ドレス・ライン40経由で命令キャッシュ12へ供給す
る。これによって、命令キャッシュ12が次のサイクル
を流れる新しい命令を処理することが可能となる。いく
つかのタイプの分岐命令は、カウント・レジスタ42ま
たはリンク・レジスタ44を目標アドレス形成の際に利
用する。例えば、分岐・アンド・リンク命令は機能ユニ
ット20〜24のいずれか一つによって計算された目標
アドレスを持ったのち、リンク・レジスタ44に移らな
ければならない。分岐・アンド・リンクの場合、目標ア
ドレスはリンク・レジスタ42から読み出しされ、命令
キャッシュ12へ送られる。
【0024】本発明にもとづいた未解決分岐処理方法お
よび装置をより詳細に説明するために、ここでそのよう
な装置の一実施態様が示された図2および図3を参照す
る。
よび装置をより詳細に説明するために、ここでそのよう
な装置の一実施態様が示された図2および図3を参照す
る。
【0025】本発明によれば、構築されたカウント・レ
ジスタ42およびリンク・レジスタ44の内容は、図2
および3に示されるように、それぞれが先取りレジスタ
50および52と呼ばれるレジスタに各々格納される。
すでに述べたように、それと対照的に従来の方法では、
構築されたレジスタの内容が複数のリネーム・レジスタ
に格納される。本発明の好ましい実施態様によれば、先
取りカウント・レジスタ50および先取りリンク・レジ
スタ52は図1の分岐ユニット28によって保持され
る。
ジスタ42およびリンク・レジスタ44の内容は、図2
および3に示されるように、それぞれが先取りレジスタ
50および52と呼ばれるレジスタに各々格納される。
すでに述べたように、それと対照的に従来の方法では、
構築されたレジスタの内容が複数のリネーム・レジスタ
に格納される。本発明の好ましい実施態様によれば、先
取りカウント・レジスタ50および先取りリンク・レジ
スタ52は図1の分岐ユニット28によって保持され
る。
【0026】図2は、本発明の構築されたカウント・レ
ジスタ42と先取りカウント・レジスタ50との間の多
重分岐・アンド・カウント命令を処理するためのデータ
の流れを示す図である。すでに述べたように、 構築さ
れたカウント・レジスタ42は、カウントの正しい値を
常に含んでおり、また割込みによって上書きされない。
パイプ・フラッシュ信号58、例えば割込みがプロセッ
サ10によって生成されるときはいつでも、構築された
カウント・レジスタ42の内容が先取りレジスタ50に
コピーされる。この時点で、先取りレジスタ50と構築
されたカウント・レジスタ42とに同一の値が含まれ
る。
ジスタ42と先取りカウント・レジスタ50との間の多
重分岐・アンド・カウント命令を処理するためのデータ
の流れを示す図である。すでに述べたように、 構築さ
れたカウント・レジスタ42は、カウントの正しい値を
常に含んでおり、また割込みによって上書きされない。
パイプ・フラッシュ信号58、例えば割込みがプロセッ
サ10によって生成されるときはいつでも、構築された
カウント・レジスタ42の内容が先取りレジスタ50に
コピーされる。この時点で、先取りレジスタ50と構築
されたカウント・レジスタ42とに同一の値が含まれ
る。
【0027】分岐・アンド・カウントが実行された場
合、分岐ユニット28によって分岐減分信号60が生
じ、先取りカウント・レジスタ50を1(−1)まで減
分さる。分岐・アンド・カウント命令が完了バッファ2
6によって処理された場合(すなわち、完全に実行され
た場合)、カウンタ処理(counter-commit)信号62が
発生して構築されたカウント・レジスタ42が更新され
ることを示す。
合、分岐ユニット28によって分岐減分信号60が生
じ、先取りカウント・レジスタ50を1(−1)まで減
分さる。分岐・アンド・カウント命令が完了バッファ2
6によって処理された場合(すなわち、完全に実行され
た場合)、カウンタ処理(counter-commit)信号62が
発生して構築されたカウント・レジスタ42が更新され
ることを示す。
【0028】分岐・アンド・カウント命令に関して、本
発明の先取りレジスタ50は、構築されたカウント・レ
ジスタ42の最終変更のみを格納する。それとは対照的
に、従来技術におけるリネーム・レジスタの使用では構
築されたカウント・レジスタ42の各状態変化が不必要
に格納された。例えば、構築されたカウント・レジスタ
42の最後の4つの値がそれぞれ”3”、”2”、”
1”、および”0”であった場合、先取りレジスタ50
は値”0”を含み、一方で従来のリネーム・レジスタは
4つの値すべてを含む(リネーム・レジスタが使用可能
であると仮定)。本発明は、分岐ユニット28が他の分
岐・アンド・カウント命令に遭遇した場合、この分岐ユ
ニット28は4つの値すべてを必要とするのではなく、
最後の値のみを必要とするという事実を利用する。
発明の先取りレジスタ50は、構築されたカウント・レ
ジスタ42の最終変更のみを格納する。それとは対照的
に、従来技術におけるリネーム・レジスタの使用では構
築されたカウント・レジスタ42の各状態変化が不必要
に格納された。例えば、構築されたカウント・レジスタ
42の最後の4つの値がそれぞれ”3”、”2”、”
1”、および”0”であった場合、先取りレジスタ50
は値”0”を含み、一方で従来のリネーム・レジスタは
4つの値すべてを含む(リネーム・レジスタが使用可能
であると仮定)。本発明は、分岐ユニット28が他の分
岐・アンド・カウント命令に遭遇した場合、この分岐ユ
ニット28は4つの値すべてを必要とするのではなく、
最後の値のみを必要とするという事実を利用する。
【0029】また、本発明では、先取りレジスタ50は
いつでも最新のカウント値を使用することが可能である
ため、いかなる時でも装置において未解決であるかもし
れない分岐・アンド・カウント命令数に対して何ら限界
をもうけない。図1を再び参照すると、従来の方法でい
かなる時でも未解決である分岐・アンド・カウント命令
の数は、カウント・レジスタ42に割り当てられたリネ
ーム・レジスタの数によって限定される。一つの先取り
カウント・レジスタ50のパフォーマンスを等しくする
のに必要なリネーム・レジスタの数は、命令バッファ1
4のレジスタの数と完了バッファ26のレジスタの数と
を合わせたものに等しく、これはシステムにおける未解
決の命令の全体数に等しい。例えば、命令バッファ14
および完了バッファ26の両方にレジスタが8個含まれ
ている場合、本発明による先取りカウント・レジスタ5
0は15個の追加リネーム・レジスタの必要性を取り除
く。
いつでも最新のカウント値を使用することが可能である
ため、いかなる時でも装置において未解決であるかもし
れない分岐・アンド・カウント命令数に対して何ら限界
をもうけない。図1を再び参照すると、従来の方法でい
かなる時でも未解決である分岐・アンド・カウント命令
の数は、カウント・レジスタ42に割り当てられたリネ
ーム・レジスタの数によって限定される。一つの先取り
カウント・レジスタ50のパフォーマンスを等しくする
のに必要なリネーム・レジスタの数は、命令バッファ1
4のレジスタの数と完了バッファ26のレジスタの数と
を合わせたものに等しく、これはシステムにおける未解
決の命令の全体数に等しい。例えば、命令バッファ14
および完了バッファ26の両方にレジスタが8個含まれ
ている場合、本発明による先取りカウント・レジスタ5
0は15個の追加リネーム・レジスタの必要性を取り除
く。
【0030】つぎに、図2を参照する。未解決の分岐命
令を処理するために,本発ではカウント・シャドウ・レ
ジスタ64も含まれる。このカウント・シャドウ・レジ
スタは、未解決の分岐が生じた時に先取りカウントの内
容を格納するのに用いられる。このことは必要なことで
ある。なぜなら、未解決の分岐の結果が予測からはずれ
るかもしれず、このような場合には先取りカウント・レ
ジスタ50が改ざんされる。
令を処理するために,本発ではカウント・シャドウ・レ
ジスタ64も含まれる。このカウント・シャドウ・レジ
スタは、未解決の分岐が生じた時に先取りカウントの内
容を格納するのに用いられる。このことは必要なことで
ある。なぜなら、未解決の分岐の結果が予測からはずれ
るかもしれず、このような場合には先取りカウント・レ
ジスタ50が改ざんされる。
【0031】未解決の分岐が発生した場合、バックアッ
プ・カウント信号66が発せられて先取りカウント・レ
ジスタ50がカウント・シャドウ・レジスタ64にコピ
ーされる。このカウント・シャドウ・レジスタ64の内
容は何らかの見込み実行が開始される前のシステムの状
態であるため、スナップショットと呼ばれる。
プ・カウント信号66が発せられて先取りカウント・レ
ジスタ50がカウント・シャドウ・レジスタ64にコピ
ーされる。このカウント・シャドウ・レジスタ64の内
容は何らかの見込み実行が開始される前のシステムの状
態であるため、スナップショットと呼ばれる。
【0032】追加の分岐命令が見込み実行中に生ずるこ
とも考えられる。予測パスに沿って発生するいかなる分
岐・アンド・カウント命令でも分岐減分信号60を発生
し続ける。その結果、先取りカウント・レジスタ50の
内容が1まで減少する。
とも考えられる。予測パスに沿って発生するいかなる分
岐・アンド・カウント命令でも分岐減分信号60を発生
し続ける。その結果、先取りカウント・レジスタ50の
内容が1まで減少する。
【0033】未解決な分岐命令それ自体が分岐・アンド
・カウント命令である場合、分岐ユニット28はバック
アップ分岐減分信号68を発生し、先取りカウント・レ
ジスタ50を1まで減少させるとともにカウント・シャ
ドウ・レジスタ64に格納する。
・カウント命令である場合、分岐ユニット28はバック
アップ分岐減分信号68を発生し、先取りカウント・レ
ジスタ50を1まで減少させるとともにカウント・シャ
ドウ・レジスタ64に格納する。
【0034】いったん未解決な分岐命令が解決される
と,結果がシステムによって正確に予測されたかどうか
を決定する。未解決状態の結果が正確に予測された場
合、先取りカウント・レジスタ50の内容は正しく、か
つカウント・シャドウ・レジスタ64は先取りカウント
・レジスタ50を再びバックアップする必要がない。未
解決な状態の結果が予測と異なる場合、予測と異なる信
号70が発生するとともに、カウント・シャドウ・レジ
スタ64の内容(スナップショット)は見込み実行以前
に存在した値に先取りカウント・レジスタ50を回復す
るために用いられる。
と,結果がシステムによって正確に予測されたかどうか
を決定する。未解決状態の結果が正確に予測された場
合、先取りカウント・レジスタ50の内容は正しく、か
つカウント・シャドウ・レジスタ64は先取りカウント
・レジスタ50を再びバックアップする必要がない。未
解決な状態の結果が予測と異なる場合、予測と異なる信
号70が発生するとともに、カウント・シャドウ・レジ
スタ64の内容(スナップショット)は見込み実行以前
に存在した値に先取りカウント・レジスタ50を回復す
るために用いられる。
【0035】一つの実施形態によれば、本発明で一度に
処理する未解決の分岐は一つである。しかし、当業者
は、必要に応じて追加の未解決分岐を各々取り扱うため
にカウント・シャドウ・レジスタ64を加えることを理
解している。
処理する未解決の分岐は一つである。しかし、当業者
は、必要に応じて追加の未解決分岐を各々取り扱うため
にカウント・シャドウ・レジスタ64を加えることを理
解している。
【0036】図3は、本発明の構築されたリンク・レジ
スタ44と先取りリンク・レジスタ42との間の多重分
岐・アンド・リンク命令を処理するためのデータ・フロ
ーを示す。多重分岐・アンド・リンク命令の取り扱いは
すでに述べた分岐・アンド・カウント方法に類似してい
る。
スタ44と先取りリンク・レジスタ42との間の多重分
岐・アンド・リンク命令を処理するためのデータ・フロ
ーを示す。多重分岐・アンド・リンク命令の取り扱いは
すでに述べた分岐・アンド・カウント方法に類似してい
る。
【0037】システムがパイプフ・ラッシュ信号58
(例えば割込み信号)を生成するたびに、構築されたリ
ンク・レジスタ44の内容が先取りリンク・レジスタ5
3にコピーされる。この時点で、先取りリンク・レジス
タ52と構築されたレジスタ44とが同一の値をとる。
(例えば割込み信号)を生成するたびに、構築されたリ
ンク・レジスタ44の内容が先取りリンク・レジスタ5
3にコピーされる。この時点で、先取りリンク・レジス
タ52と構築されたレジスタ44とが同一の値をとる。
【0038】分岐・アンド・リンク命令が次に発生した
場合、分岐アドレスに4が加算され、結果が先取りリン
ク・レジスタ52に格納される。構築されたリンク・レ
ジスタ44を利用する未解決の分岐命令を処理するため
に、本発明ではリンク・シャドウ・レジスタ54も含ま
れる。未解決の分岐が発生した場合,このリンク・シャ
ドウ・レジスタ54を用いて先取りリンク・レジスタ5
2の内容を格納する。これは必要なことである。なぜな
ら、未解決の分岐の結果が予測からはずれたものとな
り、先取りリンク・レジスタ52の内容が変化してしま
うからである。
場合、分岐アドレスに4が加算され、結果が先取りリン
ク・レジスタ52に格納される。構築されたリンク・レ
ジスタ44を利用する未解決の分岐命令を処理するため
に、本発明ではリンク・シャドウ・レジスタ54も含ま
れる。未解決の分岐が発生した場合,このリンク・シャ
ドウ・レジスタ54を用いて先取りリンク・レジスタ5
2の内容を格納する。これは必要なことである。なぜな
ら、未解決の分岐の結果が予測からはずれたものとな
り、先取りリンク・レジスタ52の内容が変化してしま
うからである。
【0039】分岐・アンド・リンク命令が未解決の場
合、バックアップ分岐・アンド・リンク信号が発生して
分岐アドレスに加算される4が生じ、さらに先取りリン
ク・レジスタ53およびリンク・シャドウ・レジスタ5
4の両方に結果が保存される。
合、バックアップ分岐・アンド・リンク信号が発生して
分岐アドレスに加算される4が生じ、さらに先取りリン
ク・レジスタ53およびリンク・シャドウ・レジスタ5
4の両方に結果が保存される。
【0040】見込み実行の間、分岐・アンド・リンク命
令がさらに発生する。見込みパスに沿って発生した未解
決の分岐・アンド・リンク信号のいずれもが、バックア
ップ・リンク信号76を生成する。その結果、先取りリ
ンク・レジスタ52の内容がリンク・シャドウ・レジス
タ64にコピーされる。未解決の分岐が解決されると、
結果がシステムによって正しく予測されたかどうかを決
定する。
令がさらに発生する。見込みパスに沿って発生した未解
決の分岐・アンド・リンク信号のいずれもが、バックア
ップ・リンク信号76を生成する。その結果、先取りリ
ンク・レジスタ52の内容がリンク・シャドウ・レジス
タ64にコピーされる。未解決の分岐が解決されると、
結果がシステムによって正しく予測されたかどうかを決
定する。
【0041】上記未解決の分岐の結果が正確に予測され
た場合、先取りレジスタ52の内容は正しく、またリン
ク・シャドウ・レジスタが解放されて先取りリンク・レ
ジスタ52を再びバックアップする。未解決の分岐の結
果が予測からはずれるものであった場合、予測誤り信号
78を生成し、リンク・シャドウ・レジスタ54の内容
(スナップショット)によって先取りレジスタ52を見
込み実行前に存在していた値に回復させる。
た場合、先取りレジスタ52の内容は正しく、またリン
ク・シャドウ・レジスタが解放されて先取りリンク・レ
ジスタ52を再びバックアップする。未解決の分岐の結
果が予測からはずれるものであった場合、予測誤り信号
78を生成し、リンク・シャドウ・レジスタ54の内容
(スナップショット)によって先取りレジスタ52を見
込み実行前に存在していた値に回復させる。
【0042】リンク命令を割込みバッファ26(図1参
照)によって処理する場合、リンク処理信号72が生成
される。この割込みバッファ26は、CD−IAQ30
に含まれる現在の命令(IPO)に対応するアドレスに
44を加算することによって構築されたリンク・レジス
タ44を更新し、その結果を構築されたリンク・レジス
タ44に格納する。
照)によって処理する場合、リンク処理信号72が生成
される。この割込みバッファ26は、CD−IAQ30
に含まれる現在の命令(IPO)に対応するアドレスに
44を加算することによって構築されたリンク・レジス
タ44を更新し、その結果を構築されたリンク・レジス
タ44に格納する。
【0043】以上説明したように、本願ではカウントお
よびリンク・レジスタに書き込みする多重分岐を処理す
るための方法および装置が開示されている。本願に開示
された分岐方法および装置によって、サポートのための
複数のリネーム・レジスタを必要とすることなく同時に
未解決となる多重分岐命令が可能となる。したがって、
本発明ではいくつの分岐命令が未解決であるかという限
定にもとづくプロセッサの機能停止の回数を減少させ、
全体的なシステム・パフォーマンスを高める。また、本
発明では、もはや複数のリネーム・レジスタを必要とし
ないので、システム内のレジスタの数が少なくなる。そ
れによって、システムの複雑性およびコストが低減す
る。
よびリンク・レジスタに書き込みする多重分岐を処理す
るための方法および装置が開示されている。本願に開示
された分岐方法および装置によって、サポートのための
複数のリネーム・レジスタを必要とすることなく同時に
未解決となる多重分岐命令が可能となる。したがって、
本発明ではいくつの分岐命令が未解決であるかという限
定にもとづくプロセッサの機能停止の回数を減少させ、
全体的なシステム・パフォーマンスを高める。また、本
発明では、もはや複数のリネーム・レジスタを必要とし
ないので、システム内のレジスタの数が少なくなる。そ
れによって、システムの複雑性およびコストが低減す
る。
【0044】以上の実施形態にもとづいて本発明を説明
したけれども、上記実施形態を変形することができ、か
つこのような変形例が本発明の範囲に含まれることを当
業者は容易に理解できよう。したがって、本発明の思想
および範囲から離れることなく当業者によって多くの変
形例が作られる。
したけれども、上記実施形態を変形することができ、か
つこのような変形例が本発明の範囲に含まれることを当
業者は容易に理解できよう。したがって、本発明の思想
および範囲から離れることなく当業者によって多くの変
形例が作られる。
【0045】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)分岐命令が分岐レジスタ内の情報を変え、同時に
未解決となる複数の分岐命令を可能とする分岐命令の処
理方法であって、分岐命令に出会った場合、前記分岐レ
ジスタ内の前記情報を先取りレジスタにコピーするステ
ップと、前記分岐命令が未解決の場合、前記先取りレジ
スタ内の情報をシャドウ・レジスタにコピーするステッ
プと、前記未解決の分岐命令が予測はずれであった場
合、前記シャドウ・レジスタから情報を前記先取りレジ
スタに与えるステップと、前記分岐命令が完全に実行さ
れた場合、前記分岐レジスタ内の前記情報を更新するス
テップとを有することを特徴とする分岐命令の処理方
法。 (2)分岐・アンド・カウント命令の実行によって前記
先取りレジスタ内の情報を減分するステップをさらに有
することを特徴とする上記(1)に記載の分岐命令の処
理方法。 (3)前記先取りレジスタ内の情報をシャドウ・レジス
タにコピーするステップには、前記未解決の分岐命令が
分岐・アンド・カウント命令であった場合に前記情報を
前記シャドウ・レジスタにコピーするのに先だって前記
先取りレジスタ内の前記情報を減分するステップがさら
に含まれることを特徴とする上記(2)に記載の分岐命
令の処理方法。 (4)前記分岐レジスタは構築されたカウント・レジス
タであることを特徴とする上記(2)に記載の分岐命令
の処理方法。 (5)前記分岐命令が完全に実行された場合、前記分岐
レジスタ内の前記情報を更新するステップは、現在の命
令アドレスに4を加算してリンク・アドレスを生成する
ステップと、前記リンク・アドレスを分岐レジスタに格
納するステップとを有することを特徴とする上記(1)
に記載の分岐命令の処理方法。 (6)前記未解決の分岐命令は、分岐・アンド・リンク
命令であり、また分岐アドレスに4を加算し、新しい分
岐アドレスを生成するステップと、前記新しい分岐アド
レスを前記シャドウ・レジスタに格納するステップとを
さらに有することを特徴とする上記(5)に記載の分岐
命令の処理方法。 (7)前記分岐レジスタは、構築されたリンク・レジス
タであることを特徴とする上記(6)に記載の分岐命令
の処理方法。 (8)カウント分岐命令およびリンク分岐命令が分岐レ
ジスタ内の情報を変え、同時に未解決となる複数の分岐
命令を可能とする、カウント分岐命令およびリンク分岐
命令の処理方法であって、先取りレジスタに前記情報を
コピーするために前記分岐レジスタ内の前記情報を変え
る分岐命令に出会った場合に、前記分岐レジスタと前記
先取りレジスタとの間に第一の信号を生成するステップ
と、前記先取りレジスタ内の情報を1まで減分するため
に分岐・アンド・カウント命令が実行された場合、第二
の信号を生成するステップと、前記先取りレジスタ内の
前記情報をシャドウ・レジスタにコピーするために、前
記分岐命令が未解決である場合、前記先取りレジスタと
前記シャドウ・レジスタとの間に第三の信号を生成する
ステップと、前記シャドウ・レジスタ内の情報により前
記先取りレジスタを復元するために、前記未解決の分岐
が予測誤りである場合、第四の信号を生成するステップ
と、分岐レジスタ内の前記情報を更新するために、前記
分岐命令が完全に実行される場合、第五の信号を生成す
るステップとを有することを特徴とするカウント分岐命
令およびリンク分岐命令の処理方法。 (9)前記第一の信号は、割込み信号であることを特徴
とする請求項8に記載のカウント分岐命令およびリンク
分岐命令の処理方法。 (10)前記第二の信号は、分岐減分信号であることを
特徴とする請求項9に記載のカウント分岐命令およびリ
ンク分岐命令の処理方法。 (11)前記第二の信号はバックアップ信号であること
を特徴とする上記(10)に記載のカウント分岐命令お
よびリンク分岐命令の処理方法。 (12)前記第四の信号は、予測誤り信号であることを
特徴とする上記(11)に記載のカウント分岐命令およ
びリンク分岐命令の処理方法。 (13)前記第五の信号は、分岐処理信号であることを
特徴とする上記(11)に記載のカウント分岐命令およ
びリンク分岐命令の処理方法。 (14)実行中に構築されたレジスタ・データを修正す
る多重分岐命令を処理する装置であって、命令をディス
パッチするためのディスパッチ・ユニットと、分岐命令
データを格納するために分岐レジスタを有する前記ディ
スパッチ・ユニットに接続した完了バッファと、異なる
種類の分岐命令を実行するために前記ディスパッチ・ユ
ニットに接続した分岐ユニットと、前記分岐レジスタに
格納された前記データをバックアップするために前記分
岐ユニットによって保持された先取りレジスタ手段とを
有し、さらに該先取りレジスタ手段は第一のレジスタと
第二のレジスタとを有し、かつ前記第二のレジスタは前
記データが変更されはじめると前記第一のレジスタに格
納された前記データを復元することを特徴とする多重分
岐命令処理装置。 (15)前記分岐ユニットが未解決の分岐命令を実行す
る場合、前記第一のレジスタは前記第二のレジスタに前
記データを退避させることを特徴とする上記(14)に
記載の多重分岐命令処理装置。 (16)前記未解決の分岐命令が予測からはずれている
場合、前記第二のレジスタは前記第一のレジスタに情報
をコピーし戻すことを特徴とする上記(15)に記載の
多重分岐命令処理装置。 (17)カウント・レジスタおよびリンク・レジスタに
割り当てるリネーム・レジスタの数に制限されることな
く同時に未決定となる複数の分岐を可能とし、実行中に
構築されたレジスタ・データを修正する多重分岐命令を
処理するための装置であって、命令をディスパッチする
ためのディスパッチ・ユニットと、分岐命令データを格
納するために分岐レジスタを有する前記ディスパッチ・
ユニットに接続した完了バッファと、異なる種類の分岐
命令を実行するために前記ディスパッチ・ユニットに接
続した分岐ユニットと、前記分岐レジスタに格納された
前記データをバックアップするために前記分岐ユニット
によって保持された先取りレジスタ手段とを有し、さら
に前記先取りレジスタ手段は第一の種類の分岐命令が実
行されるごとに前記データを1によって減分するための
手段を有することを特徴とする多重分岐命令処理装置。 (18)前記先取りレジスタは、第一のレジスタと第二
のレジスタとを含むことを特徴とする上記(17)に記
載の多重分岐命令処理装置。 (19)前記第一のレジスタは、前記分岐ユニットが未
解決の分岐命令を実行する際に前記データを前記第二の
レジスタに退避させることを特徴とする上記(18)に
記載の多重分岐命令処理装置。 (20)前記先取りレジスタ手段に格納された前記デー
タを復元するための手段は、前記未解決の命令が予測か
らはずれている場合にデータを前記第一のレジスタにコ
ピーし戻すことを特徴とする上記(20)に記載の多重
分岐命令処理装置。 (21)前記第一のレジスタは先取りレジスタであり、
また前記第二のレジスタはシャドウ・レジスタであるこ
とを特徴とする上記(21)に記載の多重分岐命令処理
装置。
の事項を開示する。 (1)分岐命令が分岐レジスタ内の情報を変え、同時に
未解決となる複数の分岐命令を可能とする分岐命令の処
理方法であって、分岐命令に出会った場合、前記分岐レ
ジスタ内の前記情報を先取りレジスタにコピーするステ
ップと、前記分岐命令が未解決の場合、前記先取りレジ
スタ内の情報をシャドウ・レジスタにコピーするステッ
プと、前記未解決の分岐命令が予測はずれであった場
合、前記シャドウ・レジスタから情報を前記先取りレジ
スタに与えるステップと、前記分岐命令が完全に実行さ
れた場合、前記分岐レジスタ内の前記情報を更新するス
テップとを有することを特徴とする分岐命令の処理方
法。 (2)分岐・アンド・カウント命令の実行によって前記
先取りレジスタ内の情報を減分するステップをさらに有
することを特徴とする上記(1)に記載の分岐命令の処
理方法。 (3)前記先取りレジスタ内の情報をシャドウ・レジス
タにコピーするステップには、前記未解決の分岐命令が
分岐・アンド・カウント命令であった場合に前記情報を
前記シャドウ・レジスタにコピーするのに先だって前記
先取りレジスタ内の前記情報を減分するステップがさら
に含まれることを特徴とする上記(2)に記載の分岐命
令の処理方法。 (4)前記分岐レジスタは構築されたカウント・レジス
タであることを特徴とする上記(2)に記載の分岐命令
の処理方法。 (5)前記分岐命令が完全に実行された場合、前記分岐
レジスタ内の前記情報を更新するステップは、現在の命
令アドレスに4を加算してリンク・アドレスを生成する
ステップと、前記リンク・アドレスを分岐レジスタに格
納するステップとを有することを特徴とする上記(1)
に記載の分岐命令の処理方法。 (6)前記未解決の分岐命令は、分岐・アンド・リンク
命令であり、また分岐アドレスに4を加算し、新しい分
岐アドレスを生成するステップと、前記新しい分岐アド
レスを前記シャドウ・レジスタに格納するステップとを
さらに有することを特徴とする上記(5)に記載の分岐
命令の処理方法。 (7)前記分岐レジスタは、構築されたリンク・レジス
タであることを特徴とする上記(6)に記載の分岐命令
の処理方法。 (8)カウント分岐命令およびリンク分岐命令が分岐レ
ジスタ内の情報を変え、同時に未解決となる複数の分岐
命令を可能とする、カウント分岐命令およびリンク分岐
命令の処理方法であって、先取りレジスタに前記情報を
コピーするために前記分岐レジスタ内の前記情報を変え
る分岐命令に出会った場合に、前記分岐レジスタと前記
先取りレジスタとの間に第一の信号を生成するステップ
と、前記先取りレジスタ内の情報を1まで減分するため
に分岐・アンド・カウント命令が実行された場合、第二
の信号を生成するステップと、前記先取りレジスタ内の
前記情報をシャドウ・レジスタにコピーするために、前
記分岐命令が未解決である場合、前記先取りレジスタと
前記シャドウ・レジスタとの間に第三の信号を生成する
ステップと、前記シャドウ・レジスタ内の情報により前
記先取りレジスタを復元するために、前記未解決の分岐
が予測誤りである場合、第四の信号を生成するステップ
と、分岐レジスタ内の前記情報を更新するために、前記
分岐命令が完全に実行される場合、第五の信号を生成す
るステップとを有することを特徴とするカウント分岐命
令およびリンク分岐命令の処理方法。 (9)前記第一の信号は、割込み信号であることを特徴
とする請求項8に記載のカウント分岐命令およびリンク
分岐命令の処理方法。 (10)前記第二の信号は、分岐減分信号であることを
特徴とする請求項9に記載のカウント分岐命令およびリ
ンク分岐命令の処理方法。 (11)前記第二の信号はバックアップ信号であること
を特徴とする上記(10)に記載のカウント分岐命令お
よびリンク分岐命令の処理方法。 (12)前記第四の信号は、予測誤り信号であることを
特徴とする上記(11)に記載のカウント分岐命令およ
びリンク分岐命令の処理方法。 (13)前記第五の信号は、分岐処理信号であることを
特徴とする上記(11)に記載のカウント分岐命令およ
びリンク分岐命令の処理方法。 (14)実行中に構築されたレジスタ・データを修正す
る多重分岐命令を処理する装置であって、命令をディス
パッチするためのディスパッチ・ユニットと、分岐命令
データを格納するために分岐レジスタを有する前記ディ
スパッチ・ユニットに接続した完了バッファと、異なる
種類の分岐命令を実行するために前記ディスパッチ・ユ
ニットに接続した分岐ユニットと、前記分岐レジスタに
格納された前記データをバックアップするために前記分
岐ユニットによって保持された先取りレジスタ手段とを
有し、さらに該先取りレジスタ手段は第一のレジスタと
第二のレジスタとを有し、かつ前記第二のレジスタは前
記データが変更されはじめると前記第一のレジスタに格
納された前記データを復元することを特徴とする多重分
岐命令処理装置。 (15)前記分岐ユニットが未解決の分岐命令を実行す
る場合、前記第一のレジスタは前記第二のレジスタに前
記データを退避させることを特徴とする上記(14)に
記載の多重分岐命令処理装置。 (16)前記未解決の分岐命令が予測からはずれている
場合、前記第二のレジスタは前記第一のレジスタに情報
をコピーし戻すことを特徴とする上記(15)に記載の
多重分岐命令処理装置。 (17)カウント・レジスタおよびリンク・レジスタに
割り当てるリネーム・レジスタの数に制限されることな
く同時に未決定となる複数の分岐を可能とし、実行中に
構築されたレジスタ・データを修正する多重分岐命令を
処理するための装置であって、命令をディスパッチする
ためのディスパッチ・ユニットと、分岐命令データを格
納するために分岐レジスタを有する前記ディスパッチ・
ユニットに接続した完了バッファと、異なる種類の分岐
命令を実行するために前記ディスパッチ・ユニットに接
続した分岐ユニットと、前記分岐レジスタに格納された
前記データをバックアップするために前記分岐ユニット
によって保持された先取りレジスタ手段とを有し、さら
に前記先取りレジスタ手段は第一の種類の分岐命令が実
行されるごとに前記データを1によって減分するための
手段を有することを特徴とする多重分岐命令処理装置。 (18)前記先取りレジスタは、第一のレジスタと第二
のレジスタとを含むことを特徴とする上記(17)に記
載の多重分岐命令処理装置。 (19)前記第一のレジスタは、前記分岐ユニットが未
解決の分岐命令を実行する際に前記データを前記第二の
レジスタに退避させることを特徴とする上記(18)に
記載の多重分岐命令処理装置。 (20)前記先取りレジスタ手段に格納された前記デー
タを復元するための手段は、前記未解決の命令が予測か
らはずれている場合にデータを前記第一のレジスタにコ
ピーし戻すことを特徴とする上記(20)に記載の多重
分岐命令処理装置。 (21)前記第一のレジスタは先取りレジスタであり、
また前記第二のレジスタはシャドウ・レジスタであるこ
とを特徴とする上記(21)に記載の多重分岐命令処理
装置。
【図1】 本発明にもとづくプロセッサのブロック図で
ある。
ある。
【図2】 本発明の構築されたカウント・レジスタと先
取りカウント・レジスタとの間のデータフローを示す図
である。
取りカウント・レジスタとの間のデータフローを示す図
である。
【図3】 本発明の構築されたリンク・レジスタと先取
りリンク・レジスタとの間のデータフローを示す図であ
る。
りリンク・レジスタとの間のデータフローを示す図であ
る。
10 プロセッサ 12 命令キャッシュ(IC) 14 命令バッファ(IB) 16 命令アドレス待ち行列(IAQ) 18 タスク指名ユニット(DU) 20〜24 機能ユニット(FU) 26 完了バッファ(CB) 28 分岐ユニット(BU) 30 命令アドレス待ち行列(IAQ) 34 データライン 36 アドレス・ライン 38 命令バス 40 取り出しアドレス・ライン 42 カウント・レジスタ 44 リンク・レジスタ 50 先取りカウント・レジスタ 52 先取りリンク・レジスタ 54 リンク・シャドウ・レジスタ 58 パイプ・フラッシュ信号 60 分岐減分信号 62 カウンタ処理信号 64 カウント・シャドウ・レジスタ 68 バックアップ分岐減分信号 70 予測と異なる信号 76 バックアップ・リンク信号 78 予測誤り信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・ティー・ゴラ アメリカ合衆国75023、テキサス州プラノ 222 ラガシィ・ドライブ 300
Claims (21)
- 【請求項1】分岐命令が分岐レジスタ内の情報を変え、
同時に未解決となる複数の分岐命令を可能とする分岐命
令の処理方法であって、 分岐命令に出会った場合、前記分岐レジスタ内の前記情
報を先取りレジスタにコピーするステップと、 前記分岐命令が未解決の場合、前記先取りレジスタ内の
情報をシャドウ・レジスタにコピーするステップと、 前記未解決の分岐命令が予測はずれであった場合、前記
シャドウ・レジスタから情報を前記先取りレジスタに与
えるステップと、 前記分岐命令が完全に実行された場合、前記分岐レジス
タ内の前記情報を更新するステップとを有することを特
徴とする分岐命令の処理方法。 - 【請求項2】分岐・アンド・カウント命令の実行によっ
て前記先取りレジスタ内の情報を減分するステップをさ
らに有することを特徴とする請求項1に記載の分岐命令
の処理方法。 - 【請求項3】前記先取りレジスタ内の情報をシャドウ・
レジスタにコピーするステップには、前記未解決の分岐
命令が分岐・アンド・カウント命令であった場合に前記
情報を前記シャドウ・レジスタにコピーするのに先だっ
て前記先取りレジスタ内の前記情報を減分するステップ
がさらに含まれることを特徴とする請求項2に記載の分
岐命令の処理方法。 - 【請求項4】前記分岐レジスタは構築されたカウント・
レジスタであることを特徴とする請求項2に記載の分岐
命令の処理方法。 - 【請求項5】前記分岐命令が完全に実行された場合、前
記分岐レジスタ内の前記情報を更新するステップは、現
在の命令アドレスに4を加算してリンク・アドレスを生
成するステップと、 前記リンク・アドレスを分岐レジスタに格納するステッ
プとを有することを特徴とする請求項1に記載の分岐命
令の処理方法。 - 【請求項6】 前記未解決の分岐命令は、分岐・アンド
・リンク命令であり、また分岐アドレスに4を加算し、
新しい分岐アドレスを生成するステップと、 前記新しい分岐アドレスを前記シャドウ・レジスタに格
納するステップとをさらに有することを特徴とする請求
項5に記載の分岐命令の処理方法。 - 【請求項7】前記分岐レジスタは、構築されたリンク・
レジスタであることを特徴とする請求項6に記載の分岐
命令の処理方法。 - 【請求項8】カウント分岐命令およびリンク分岐命令が
分岐レジスタ内の情報を変え、同時に未解決となる複数
の分岐命令を可能とする、カウント分岐命令およびリン
ク分岐命令の処理方法であって、 先取りレジスタに前記情報をコピーするために前記分岐
レジスタ内の前記情報を変える分岐命令に出会った場合
に、前記分岐レジスタと前記先取りレジスタとの間に第
一の信号を生成するステップと、 前記先取りレジスタ内の情報を1まで減分するために分
岐・アンド・カウント命令が実行された場合、第二の信
号を生成するステップと、 前記先取りレジスタ内の前記情報をシャドウ・レジスタ
にコピーするために、前記分岐命令が未解決である場
合、前記先取りレジスタと前記シャドウ・レジスタとの
間に第三の信号を生成するステップと、 前記シャドウ・レジスタ内の情報により前記先取りレジ
スタを復元するために、前記未解決の分岐が予測誤りで
ある場合、第四の信号を生成するステップと、 分岐レジスタ内の前記情報を更新するために、前記分岐
命令が完全に実行される場合、第五の信号を生成するス
テップとを有することを特徴とするカウント分岐命令お
よびリンク分岐命令の処理方法。 - 【請求項9】前記第一の信号は、割込み信号であること
を特徴とする請求項8に記載のカウント分岐命令および
リンク分岐命令の処理方法。 - 【請求項10】前記第二の信号は、分岐減分信号である
ことを特徴とする請求項9に記載のカウント分岐命令お
よびリンク分岐命令の処理方法。 - 【請求項11】前記第二の信号はバックアップ信号であ
ることを特徴とする請求項10に記載のカウント分岐命
令およびリンク分岐命令の処理方法。 - 【請求項12】前記第四の信号は、予測誤り信号である
ことを特徴とする請求項11に記載のカウント分岐命令
およびリンク分岐命令の処理方法。 - 【請求項13】 前記第五の信号は、分岐処理信号であ
ることを特徴とする請求項11に記載のカウント分岐命
令およびリンク分岐命令の処理方法。 - 【請求項14】実行中に構築されたレジスタ・データを
修正する多重分岐命令を処理する装置であって、 命令をディスパッチするためのディスパッチ・ユニット
と、 分岐命令データを格納するために分岐レジスタを有する
前記ディスパッチ・ユニットに接続した完了バッファ
と、 異なる種類の分岐命令を実行するために前記ディスパッ
チ・ユニットに接続した分岐ユニットと、 前記分岐レジスタに格納された前記データをバックアッ
プするために前記分岐ユニットによって保持された先取
りレジスタ手段とを有し、さらに該先取りレジスタ手段
は第一のレジスタと第二のレジスタとを有し、かつ前記
第二のレジスタは前記データが変更されはじめると前記
第一のレジスタに格納された前記データを復元すること
を特徴とする多重分岐命令処理装置。 - 【請求項15】前記分岐ユニットが未解決の分岐命令を
実行する場合、前記第一のレジスタは前記第二のレジス
タに前記データを退避させることを特徴とする請求項1
4に記載の多重分岐命令処理装置。 - 【請求項16】前記未解決の分岐命令が予測からはずれ
ている場合、前記第二のレジスタは前記第一のレジスタ
に情報をコピーし戻すことを特徴とする請求項15に記
載の多重分岐命令処理装置。 - 【請求項17】カウント・レジスタおよびリンク・レジ
スタに割り当てるリネーム・レジスタの数に制限される
ことなく同時に未決定となる複数の分岐を可能とし、実
行中に構築されたレジスタ・データを修正する多重分岐
命令を処理するための装置であって、 命令をディスパッチするためのディスパッチ・ユニット
と、 分岐命令データを格納するために分岐レジスタを有する
前記ディスパッチ・ユニットに接続した完了バッファ
と、 異なる種類の分岐命令を実行するために前記ディスパッ
チ・ユニットに接続した分岐ユニットと、 前記分岐レジスタに格納された前記データをバックアッ
プするために前記分岐ユニットによって保持された先取
りレジスタ手段とを有し、さらに前記先取りレジスタ手
段は第一の種類の分岐命令が実行されるごとに前記デー
タを1によって減分するための手段を有することを特徴
とする多重分岐命令処理装置。 - 【請求項18】前記先取りレジスタは、第一のレジスタ
と第二のレジスタとを含むことを特徴とする請求項17
に記載の多重分岐命令処理装置。 - 【請求項19】前記第一のレジスタは、前記分岐ユニッ
トが未解決の分岐命令を実行する際に前記データを前記
第二のレジスタに退避させることを特徴とする請求項1
8に記載の多重分岐命令処理装置。 - 【請求項20】前記先取りレジスタ手段に格納された前
記データを復元するための手段は、前記未解決の命令が
予測からはずれている場合にデータを前記第一のレジス
タにコピーし戻すことを特徴とする請求項20に記載の
多重分岐命令処理装置。 - 【請求項21】前記第一のレジスタは先取りレジスタで
あり、また前記第二のレジスタはシャドウ・レジスタで
あることを特徴とする請求項21に記載の多重分岐命令
処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US486304 | 1995-06-07 | ||
US08/486,304 US5943494A (en) | 1995-06-07 | 1995-06-07 | Method and system for processing multiple branch instructions that write to count and link registers |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH096612A true JPH096612A (ja) | 1997-01-10 |
JP3093635B2 JP3093635B2 (ja) | 2000-10-03 |
Family
ID=23931363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08127484A Expired - Fee Related JP3093635B2 (ja) | 1995-06-07 | 1996-05-22 | カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5943494A (ja) |
EP (1) | EP0747809A1 (ja) |
JP (1) | JP3093635B2 (ja) |
KR (1) | KR970002606A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010505210A (ja) * | 2006-09-27 | 2010-02-18 | クゥアルコム・インコーポレイテッド | 同時に予測された分岐命令を解決するための方法および装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10177482A (ja) * | 1996-10-31 | 1998-06-30 | Texas Instr Inc <Ti> | マイクロプロセッサおよび動作方法 |
US6157999A (en) * | 1997-06-03 | 2000-12-05 | Motorola Inc. | Data processing system having a synchronizing link stack and method thereof |
US6766444B1 (en) * | 2000-11-02 | 2004-07-20 | Intel Corporation | Hardware loops |
US6920547B2 (en) * | 2000-12-20 | 2005-07-19 | Intel Corporation | Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor |
US6981083B2 (en) * | 2002-12-05 | 2005-12-27 | International Business Machines Corporation | Processor virtualization mechanism via an enhanced restoration of hard architected states |
US20060168432A1 (en) * | 2005-01-24 | 2006-07-27 | Paul Caprioli | Branch prediction accuracy in a processor that supports speculative execution |
KR100663709B1 (ko) * | 2005-12-28 | 2007-01-03 | 삼성전자주식회사 | 재구성 아키텍처에서의 예외 처리 방법 및 장치 |
KR101335001B1 (ko) | 2007-11-07 | 2013-12-02 | 삼성전자주식회사 | 프로세서 및 인스트럭션 스케줄링 방법 |
US9626119B2 (en) * | 2014-11-14 | 2017-04-18 | Intel Corporation | Using counters and a table to protect data in a storage device |
US11663013B2 (en) | 2021-08-24 | 2023-05-30 | International Business Machines Corporation | Dependency skipping execution |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4933897A (en) * | 1986-02-07 | 1990-06-12 | Advanced Micro Devices, Inc. | Method for designing a control sequencer |
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US5167026A (en) * | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
US5276882A (en) * | 1990-07-27 | 1994-01-04 | International Business Machines Corp. | Subroutine return through branch history table |
US5421020A (en) * | 1993-01-08 | 1995-05-30 | International Business Machines Corporation | Counter register implementation for speculative execution of branch on count instructions |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
US5623614A (en) * | 1993-09-17 | 1997-04-22 | Advanced Micro Devices, Inc. | Branch prediction cache with multiple entries for returns having multiple callers |
US5604877A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
-
1995
- 1995-06-07 US US08/486,304 patent/US5943494A/en not_active Expired - Fee Related
-
1996
- 1996-05-21 KR KR1019960017177A patent/KR970002606A/ko active IP Right Grant
- 1996-05-22 JP JP08127484A patent/JP3093635B2/ja not_active Expired - Fee Related
- 1996-05-31 EP EP96480078A patent/EP0747809A1/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010505210A (ja) * | 2006-09-27 | 2010-02-18 | クゥアルコム・インコーポレイテッド | 同時に予測された分岐命令を解決するための方法および装置 |
JP2013122774A (ja) * | 2006-09-27 | 2013-06-20 | Qualcomm Inc | 同時に予測された分岐命令を解決するための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3093635B2 (ja) | 2000-10-03 |
EP0747809A1 (en) | 1996-12-11 |
KR970002606A (ko) | 1997-01-28 |
US5943494A (en) | 1999-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3093639B2 (ja) | プロセッサ内の資源割当て追跡方法及びそのシステム | |
US5463745A (en) | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system | |
JP3120152B2 (ja) | コンピューターシステム | |
US5535346A (en) | Data processor with future file with parallel update and method of operation | |
US5687349A (en) | Data processor with branch target address cache and subroutine return address cache and method of operation | |
US5675759A (en) | Method and apparatus for register management using issue sequence prior physical register and register association validity information | |
US6356918B1 (en) | Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution | |
US6079014A (en) | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state | |
US5467473A (en) | Out of order instruction load and store comparison | |
US5500943A (en) | Data processor with rename buffer and FIFO buffer for in-order instruction completion | |
US5805877A (en) | Data processor with branch target address cache and method of operation | |
JP5313253B2 (ja) | 誤りの投機的更新のリンクスタック修復 | |
JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
JP2937485B2 (ja) | スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置 | |
JP3154660B2 (ja) | 条件レジスタ・データを一時的にバッファリングする方法およびシステム | |
JPS623340A (ja) | 分岐方法 | |
US6397326B1 (en) | Method and circuit for preloading prediction circuits in microprocessors | |
US4562538A (en) | Microprocessor having decision pointer to process restore position | |
JPH07248897A (ja) | コンピュータ・システムにおける例外からの回復方法、及びそのための装置 | |
US20060179265A1 (en) | Systems and methods for executing x-form instructions | |
US5898864A (en) | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors | |
US5740393A (en) | Instruction pointer limits in processor that performs speculative out-of-order instruction execution | |
JP3142813B2 (ja) | レジスタの名前変更を管理するための情報処理システムおよび方法 | |
US20070106888A1 (en) | Return address stack recovery in a speculative execution computing apparatus | |
JP3093635B2 (ja) | カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |