JPS6254342A - ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法 - Google Patents

ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法

Info

Publication number
JPS6254342A
JPS6254342A JP61203569A JP20356986A JPS6254342A JP S6254342 A JPS6254342 A JP S6254342A JP 61203569 A JP61203569 A JP 61203569A JP 20356986 A JP20356986 A JP 20356986A JP S6254342 A JPS6254342 A JP S6254342A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
register
contents
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
JP61203569A
Other languages
English (en)
Other versions
JP2640454B2 (ja
Inventor
ブライアン・ダブリュ・ケース
ロッド・ジー・フレック
オゥリィ・モウラー
ジャン・ガン・コン
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPS6254342A publication Critical patent/JPS6254342A/ja
Application granted granted Critical
Publication of JP2640454B2 publication Critical patent/JP2640454B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

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)
  • Hardware Redundancy (AREA)

Abstract

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

Description

【発明の詳細な説明】 この発明はディジタルコンピュータのための命令を処理
するための方法および装置に関するものであって、特に
分岐予測または複雑な回路の必要なしにパイプライン内
で命令に割当てられた1つのサイクルのみを用いてバイ
ブラインで分岐命令を処理するための方法および装置に
関するものである。
[発明の背景〕 減少命令レットコンピュータ(RISC)は、簡単なデ
コーディングおよびパイプライン化した命令の実行を用
いることの有利さを認める。分岐命令は命令の流れを制
御するためにコンピュータ内に必要とされる。バイブラ
イン化したコンピュータの分岐命令は分岐命令がそこへ
制御を転送した位置である「分岐アドレス」で命令がフ
ェッチされるまで通常バイブラインを遅延させる。その
ような訳で、これらの命令は通常のパイプライン化した
命令の流れを妨げる。分岐の影響を遅延する「遅延分岐
」、または時間に先立って分岐を予測し、そして間違っ
た予測を正しくしたり、または分岐の方向がわかるまで
多数の命令を7エツチづるといった精巧な技術が先行技
術で周知である。
これらの技術の大部分がRISCアーキテクチャにはあ
まりに複雑すぎるので、遅延された分岐がそれに選ばれ
、その遅延された分岐はRISCが現在の命令の実行中
に、(物理的に)次の命令を常にフェッチすることを可
能にする。大部分のRISCが命令のパイプライン化を
採用するので、先行技術において遅延された分岐は分岐
命令を実行するために2つの命令プ、ロセッサクロック
サイクルを必要とする。これは命令のバイブラインを分
裂させる。そのような分裂をなくすために先行技術に複
雑な回路°が導入されていた。分岐命令はしばしば命令
ストリームの中で現われるので、先行技術のコンピュー
タは所望のものよりも遅くそして複雑であった。
サブルーチンならびにインターラプトおよびトラップル
ーチンでの呼出は同様に分岐を含むので、先行技術のR
ISCで招かれた時間ペナルティはまたこれらの共通に
起こる手順に対しても存在する。したがって、単一のサ
イクルで分岐を行ない、そして命令のパイプラインを分
裂させない一方、複雑な回路を要求することなしに完全
に正確な分岐予測を提供する、RISC内で用いるのに
適した命令プロセッサの必要性がある。
[発明の要約] この発明の命令プロセッサは分岐命令が条件コードレジ
スタの代わりに汎用レジスタにストアされたビットを含
むパイプライン化されたRISGに用いるためのプログ
ラムカウンタを提供し、これは分岐条件が条件コードレ
ジスタ内の特別な場合としてではなく、通常の命令オペ
ランドとして取扱われることを可能にする。分岐命令の
デコードサイクルの間、条件ビットはフェッチされ、そ
して実行される分岐命令の型に依存して分岐「ターゲッ
ト」アドレスは分離した相対アドレス加算°   器に
よって計算されるかまたは、レジスタからフェッチされ
る。
分岐命令の実行サイクルの始めでは、条件ビットおよび
ターゲットアドレスはどの命令がフェッチされるかを制
御し、次に続く命令が実行されるまで分岐は実施されな
い。マルブレクサはこの制御を実現する。このようにし
て、パイプラインの分岐命令に物理的に続く命令の置換
えはなされる必要がなく、こうしてバイブラインは中断
することなく最大の速度で実行できる。したがって、分
岐はそれに割り当てられたバイブラインの単一のサイク
ル内で起こる。
この発明のプロセッサを組込むコンピュータはまたり”
ブルーチン、インターラプトおよびトラップルーチンで
の呼出のための特別な取扱い技術をも容易に実行する。
[好ましい実施例の詳細な説明] この発明の単一サイクル分岐能力を提供するディジタル
プロセッサ制御のプログラムカウンタ部分10は、第1
図にブロック図の形で例示されている。第1図に示され
ていない命令レジスタは、現在プロセッサ10によって
実行されている命令を含む。もしこの命令が実行される
べき分岐を要求するなら、分岐条件は第1図に示されて
いない汎用レジスタ内の予め定められたビット位置にス
トアされ、そこではそれは命令オペランドとしてプロセ
ッサ10によって処理されるであろう。プロセッサ10
の命令デコードサイクルの間、分岐命令がデコードされ
ているとぎ、分岐条件は汎用レジスタから検索され、そ
してプロセッサ10の命令実行サイクルの間に用いられ
る。下に説明される分岐条件およびターゲットアドレス
はプロセッサ10にJ:って次に実行されるべき命令の
ロケーションを決定するために用いられる。第1図に例
示された単純な論理は命令バイブラインが、命令が条件
句の分岐を要求する場合でさえも、中断なく動作するこ
とを可能にする。
プロセッサ10は「相対または絶対分岐アドレス」、「
間接分岐アドレス」または[1−ラップアドレス」の3
つの分岐の行先の1つを特定することができる分岐命令
を実行する。第4の「継続アドレス」は単に、もし分岐
が引受けられないなら、実行される次に続く命令のもの
である。第1図に例示される経路は示された要素の間の
データの流れのみを示し、いくつかの信号を並列に導伝
することができる。当業者によって認められるであろう
、ように、制御信号経路もまた必要であるが、種々の例
示された要素のvl tillを行なう方法は当業者に
よって周知であるので、第1図に図示されていない。
第1図を参照すると、プロセッサ10は分岐ターゲット
アドレス(BRN  TGT)マルチプレクサ/レジス
タ12を含み、これは第1図に図示    。
されていない汎用レジスタファイルからデータ経路14
を介して、プロセッサ10によってそこへ分岐がなされ
るべきロケーションを含むアドレス、いわゆる「間接分
岐アドレス」を受取る。分岐アドレスの第2の型、いわ
ゆる「相対または絶対分岐アドレス」は加算器16によ
って決定され、これは第1の入力でデータ経路18を介
して命令レジスタから分岐変位値を受取る。この値はデ
ータ経路20を介して加算器16へ第2の入力で受取ら
れた現在実行されている命令のアドレスに加えられるこ
とができ、この結果相対分岐アドレスを生じる。もし加
算が行なわれないなら、分岐変位アドレスのみが加算器
16によって発生され、その結果、絶対分岐アドレスを
生じる。加算器16によって発生されるアドレスはデー
タ経路22を介してBRN  TGTレジスタ/マルチ
プレクサ12の第2の入力に導伝される。
プロセッサ10によって実行される分岐命令に従ってプ
ロセッサ10によって発生される制御信号によって決定
されるように、BRN  TGTレジスタ/マルチプレ
クサ12によって選択された分岐ターゲットアドレスは
、その出力で発生され、そしてデータ経路24を介して
マルチプレクサ(MUX)26の第1の入力に導伝され
、このマルチプレクサはその出力端子がデータ経路28
を介して命令キャッシュ30の入力端子に接続される。
命令キャッシュ30は、プロセッサ10によつC現在実
行されているプログラムの部分を構成する1組の連続命
令をストアするために、1組の記憶ロケーション、好ま
しい実施例では512、を含む。キャッシュ30の入力
端子にアドレスを与えることは、そのアドレスにストア
された命令がプロセッサ1oの命令レジスタに導伝され
、それによって実行されるべき次の命令となることを引
起こす。 プログラムカウンタ(PC)スタック32も
またMUX26によって発生されたアドレスを受取り、
これはデータ経路28を介してMUX26によって発生
されたアドレスがそれに導伝されるデコードPCレジス
タ34と、データ経路38を介してデコードPCレジス
タ34の内容物がそれに導伝される実行PCレジスタ3
6と、さらにデータ経路42を介して実行PCレジスタ
36の内容物がそれに導伝される記IIPCレジスタ4
0とを含む。PCスタック32は第2図に関連して以下
に説明されるように、4段階命令アドレスパイプライン
を実現する。
アドレス増分器(+1)44もまたMUX26によって
発生されるアドレスを受取り、これはデータ経路28を
介してそれに与えられるアドレスを1だけ増加させたア
ドレス、すなわち継続アドレスを出力で発生する。プロ
グラムカウンタ(PROG  CNT)レジスタ46は
データ経路48を介して増分器44によって発生される
継続アドレスを受取り、そしてこのアドレスをストアす
る。
継続アドレスはPROG  CNTレジスタ46の出力
で発生され、そしてデータ経路20を介して加算器16
の第2の入力とMUX26の第2の入力に導伝される。
MUX26は上に説明された分岐条件に基づいた制御信
号を受取り、データ経路24上に与えられた分岐ターゲ
ットアドレスかまたはデータ経路20上に与えられた継
続アドレスのどちらかが命令キャッシュ30に与えられ
てプロセッサ・1oによって実行されるべき次の命令を
フェッチするかを決定する。分岐を要求する命令はプロ
セッサ10によって処理され、そのため分岐は分岐命令
に続く命令が実行されるまで起こらない。このようにし
て、PCスタックバイブライン32によって実現された
命令バイブラインは、分岐命令がバイブラインに入ると
ぎでさえ、中断なく動作し、これは分岐命令に通常従う
命令の置換えがパイプラインでなされる必要がないから
である。したがって、分岐は第2図に関連して説明され
るように、それに割当てられたパイプラインの単一のサ
イクル内で起こる。
4段階パイプラインはこの発明のプロセッサ10によっ
て用いられ、これは命令フェッチ段階、命令デコード段
階、命令実行段階、およびデータ記憶段階である。プロ
セッサ10によって採用された命令バイブラインの種々
の段階は、分岐命令の実行を例示する第2図に示される
いわゆる「遅延分岐」技術を採用することによって、プ
ロセッサ10は複雑な論理回路を必要とせずに単一のプ
ロ゛セツサザイクル内で分岐命令の実行を達成すること
ができる。第2図の垂直の点線の間の空間は単一のプロ
セッササイクルと対応し、各サイクルは等しい持続期間
を有する。「分岐1」はプロセッサ10の第1のサイク
ルの間、【0からt、まで延在して示され、そこでは分
岐命令が命令キャッシュ30からフェッチされ、そして
プロセッサ10の命令レジスタ内にストアされる。プロ
セッサ10の第2のサイクルの間、【、からt2まで延
在して示される「分岐2jは命令レジスタにストアされ
た分岐命令をデコードする。命令によって必要とされる
分岐条件は上に説明された汎用レジスタから検索され、
そして命令によって特定された分岐ターゲットアドレス
は」二に説明されたように決定され、そ゛してデータバ
ス24上をMUX26の第1の入力へと導伝される。
t2からt、まで延在している「分岐3」の分岐命令の
実行サイクルの間、条件はプロセッサ10が制御信号を
発生することを引起こし、これは順に次の(論理)命令
をフェッチする際に用いるために、命令キャッシュ30
へと分岐ターゲットアドレスまたは継続アドレスのいず
れが導伝されるべきかをMIJX26が選択することを
引起こす。
t、からt4まで延在しているストアバックサイクルの
間、分岐命令に(物理的に)従う命令がプロセッサ10
の実行段階の中にある。
第2図に示されるように、分岐遅延命令「遅延Jは物理
的に分岐命令に従い、そして常に実行される、すなわも
分岐自身は分岐遅延命令の後まで現われることはなく、
すると分岐命令がそこへと制御を送る命令「ターゲット
」が実行する。このようにして・プロセッサ10は現在
の命令の実行の問、次の命令を常にフェッチすることが
でき、すなわちパイプラインをインターラプトしたり、
または命令のフェッチを取消すことなく、バイブライン
モード内で動作することかできる。したがって、第2図
は第2のサイクル「遅延1」の間、プロセッサ10が、
そのフエツチング、デコーディング、実行およびストア
バックサイクルが今説明された分岐命令に物理的に従う
命令をキャッシュ30からフェッチすることを示す。こ
うしてこの命令は、それに先行した分岐命令に即座に従
うバイブライン内の段階を占有する。こうして、分岐遅
延命令「遅延2」、「遅延3」J3よび「遅延4」のデ
コーディング、実行およびストアバックサイクルは第2
図に示されるように、プロセッサ10の第3、m4#よ
び第5のり・イクルの間に起こるであろう。
分岐命令によってそこに制御を送る命令「ターゲット」
は第2図に示されるように、遅延命令に即°座に従うパ
イプラインの段階を占有する。こうしてターゲット命令
「ターゲット1」、「ターゲット2」、「ターゲット3
」、および「ターゲット4」に対するフェッヂング、デ
コーディング、実行およびストアバックサイクルは第2
図に示されるようにブロセッナ10の第4、第5および
第6サイクルの間起こるであろう。間隔【。、【7、・
・・、t、でクロックされるデコードPCレジスタ34
、実行PCレジスタ36および記憶PCレジスタ40の
直列接続は、対応するパイプライン段階に関連した命令
のアドレスをストアすることによって上で説明されたパ
イプラインを実現する。
この発明のプロセッサ10は第2図に関連して上に説明
された遅延された分岐技術の修正による呼出サブルーチ
ン命令によって要求される分岐を実行することができる
。呼出サブルーチン命令はキャッシュ30からフェッチ
され、そして第2図の「分岐1」として示される、io
から℃、まで延在しているプロセッサ10の第1のサイ
クルの間、命令レジスタにストアされる。プロセッサ1
0の第2のサイクルの間、呼出サブルーチン命令「分岐
2」はデコードされ、そしてPROG  CNTレジス
タ46の内容物はデータ経路2o上で発生され、モして
MLIX26を介して第1図に示されていないデータ経
路パイプラインへ入るためにデータ経路2日上に発生さ
れる。プロセッサ10の第3のサイクル「分岐3」の間
、PROGCNTレジスタの内容物は第2図に示されて
いないプロセッサ10の演算論理装置内で4だGノ増加
され、サブルーチンからの復帰アドレスを確立する。プ
ロセッサ1゛0の第4の°サイクル「分岐4」の間、復
帰アドレスは汎用レジスタ内にセーブされる。その他あ
らゆる点において、呼出サブルーチンの命令を実行する
ための技術は分岐命令を実行するために第2図に関連し
て上に説明され、そこでは呼出サブルーチン命令によっ
てそこに制御が送られる命令「ターゲット」はサブルー
チンの第1の命令となる。
この発明のプロセッサ10はインターラストおよびトラ
ップを処理することができるので、分岐または呼出サブ
ルーチン命令とそれに続、く遅延された分岐命令との間
のインターラプトまたはトラップの発生に特別な考慮が
されなくてはならない。
、この場合、分岐または呼出命令によってそこに制御が
送られるターゲット命令に加えて箋インターラプトまた
はトラップルーチンから復帰した後にプロセッサ10は
遅延された分岐命令が実行されることを引き起こさなく
てはならない。インターラプトまたはトラップルーチン
から復帰するとぎこの結果を確実にするために、プロセ
ッサ10は2つの分岐を実行しなくてはならない。第1
の分岐は、インターラプトまたはトラップの発生によっ
て先取りされた分岐遅延命令の実行を引き起こし、そし
て第2の分岐は、遅延された分岐命令に続くターゲット
命令の実行を引き起こす。
分岐またはサブルーチン読出命令とそれに続く遅延され
た分岐命令との間に発生するインターラプトまたはトラ
ップルーチンを実行するためにプロセッサ10によって
採用された命令パイプラインの種々の段階が第3A図に
例示される。インターラプトまたはトラップルーチンか
らの復帰を達成するために、プロセッサ1oによって採
用されたパイプライン段階が第3B図に例示される。第
3A図を参照すると、プロセッサ10の動作は時間1.
で起こるインターラプトによって例示される。後者の手
順への修正は当業者によって与えられ得るので、ここで
は説明されない。例示の目的で、シフト命令は【。から
t、まで延在している先行のナイクル内で命令キャッシ
ュ30からフェッチされているのが示される。例示の目
的で、パイプラインはまた、ジャンプ命令を含み、加算
命令と、シフト命令がその後に続く。ジャンプ命令はイ
ンターラプトの発生の直前に実行され、そして加算およ
びシフト命令はまだ実行されていないので、プロセッサ
10がインターラプトルーチンから復帰し、そして次に
加算およびシフト命令を実行する必要性がある。これら
の命令のアドレスはインターラプトルーチンへの転送の
前にセーブされなくてはならない。したがって、[セー
ブ−PC−ジャンプ」命令はインターラプトの発生に引
き続いて%j+からt2まで延在しているサイクルの間
、フェッチされるのが第3A図に示され、 る。これは
プロセッサ10が分岐遅延命令のアドレスをセーブする
ことを引き起こし、すなわちこの分岐遅延命令はインタ
ーラプトの発生に引き続<1.からt2まで延在してい
るサイクルの間、実行されるべき加算命令である。PC
スタック32の実行PCレジスタ36(第1図)の内容
物は従ってセーブされる。また、「セーブ−PC−ジV
ンプj命令はプロセッサ10がデータ経路24上に、そ
してMUX26を介してデータ経路28上にそしてそこ
から命令キャッシュ30へとBRN  TGTマルチプ
レクサ/レジスタ12の内容物を発生することを引き起
こすであろう。これらの内容物はインターラプトルーチ
ンの第1の命令のアドレスである。第3A図に示される
ように、プロセッサ10はt2からt、まで延在してい
るサイクルの間、[セーブ−PCJ命令をフェッチし、
これはプロセッサ10がターゲット命令、すなわち通常
加算命令に引き続くシフト命令のアドレスをセーブする
ことを引き起こす。第3A図の「インターラプトハンド
ラ」で示されるインターラストルーチンの第1の命令は
次にt3から【。
まで延在しているサイクルの間、プロセッサ1゜によっ
てフェッチされるであろう。
それぞれシフトおよび加算命令のデコーディングおよび
実行はしたがって、デコーディングおよび実行段階の間
、表示「(加算)」および「(シフト)」によって第3
A図に示されるように放棄される。後のストアバック段
階の間、「セーブ−PC−ジャンプ」および[セーブ−
PCJ命令はプロセッサ10が、第3A図に示されるよ
うに、加算命令およびシフト命令のアドレスをセーブす
ることを引き起こす。
第3B図を参照すると、インターラプトルーチンはプロ
セッサ10が2つのジャンプ間接命令をフェッチするこ
とを引き起こすことによって完了し、これらの2つの命
令はt0′から(、/ までとt、Iから【2′まで延
在しているサイクルの間、デコードされて示される。次
にインターラプトルーチンから復帰するために、ブlコ
セッナ10は第3A図に関連して説明された「セーブ−
PCJ命令によってセーブされた値を介して間接ジャン
プを行ない、したがって[、lからt2′まで延在して
いるサイクルの間、キャッシュ30から加算命令をフェ
ッチし、「セーブ−PC−ジャンプ」命令によってセー
ブされた値を介して間接ジャンプを行ない、したがって
第3B図に示されるように【2′からt、′まで延在し
ているサイクルの間、キャッシュ30からシフト命令を
フェッチするであろう。こうして、プロセッサ10はイ
ンターラプトの発生の直前にパイプラインでの発生のそ
れらの順序におけるこれらの命令を実行するであろう。
【図面の簡単な説明】
第1図は、単一サイクルの分岐を提供するこの発明のブ
Oグラムカウンタユニットを採用する命令プロセッサの
ブロック図である。 第2図は、この発明の命令プロセッサによる分岐命令の
処理の間のパイプライン段階のタイミング図である。 第3図は命令プロセッサによるインターラプトルーチン
の処理の間、およびインターラプトルーチンからの復帰
の間のパイプライン段階の複合タイミング図である。 10はプロセッサ、12は分岐ターゲットアドレスマル
チプレクサ/レジスタ、14はデータ経路、16は加算
器、18.20.22.24.28.38.42および
48はデータ経路、26はマルチプレクサ、30は命令
キャッシュ、32はプログラムカランタスクツタ、34
はデコードプログラムカウンタレジスタ、36は実行プ
ログラムカウンタレジスタ、40はストアプログラムカ
ウンタレジスタ、44は増分器、46はプログラムカウ
ンタレジスタである。

Claims (10)

    【特許請求の範囲】
  1. (1)単一のサイクルで、複数個の複数ビット分岐命令
    を含むセットからの、各々が指示部を有する複数個のロ
    ケーションを有する命令キャッシュ内にストアされる命
    令をサイクル的に実行する、ディジタル命令プロセッサ
    制御であつて;「次の命令との継続」アドレスを示す信
    号を発生するための手段と; 前記継続アドレス信号と前記分岐命令の予め定められた
    ビット部分に応答し、「分岐ターゲット」アドレスを示
    す信号を発生するための手段と;さらに 前記命令キャッシュに接続された出力端子を有し、前記
    分岐命令の予め定められた「条件」ビット部分の内容物
    を示す制御信号に応答し、それの第1の入力端子に与え
    られる前記分岐ターゲットアドレス信号とそれの第2の
    入力端子に与えられる前記継続アドレス信号とに応答し
    て、そこから前記命令プロセッサによつて処理されるべ
    き次の命令をフェッチするために前記命令キャッシュ内
    のロケーションを示す前記アドレス信号の1つを前記出
    力端子に選択的に導伝するための、第1のマルチプレク
    サ手段とを含む、制御。
  2. (2)前記分岐ターゲットアドレス発生手段が; 前記第1のマルチプレクサ手段の前記第1の入力端子に
    接続される出力端子を有し、前記複数個の分岐命令のど
    れが実行されるかを示す制御信号に応答し、前記分岐命
    令によつて決定された「間接アドレス」を示す、第1の
    入力端子に与えられる信号と、「相対または絶対分岐ア
    ドレス」を示す、第2の入力端子に与えられる信号とに
    応答し、前記分岐ターゲットアドレスを示す前記アドレ
    ス信号の1つを前記出力端子に選択的に導伝するための
    第2のマルチプレクサ/レジスタ手段と;さらに 前記第2のマルチプレクサ/レジスタ手段の前記第2の
    入力端子に接続される出力端子を有し、前記複数個の分
    岐命令のどれが実行されるを示す前記制御信号に応答し
    、前記分岐命令の予め定められた「分岐変位」部分を示
    す、第1の入力端子に与えられる信号と、そして第2の
    入力端子に与えられる前記継続アドレス信号とに応答し
    、前記第1および第2の入力端子に与えられる前記信号
    の算術的組合わせを前記出力端子で選択的に発生するた
    めの加算器手段とを含む、特許請求の範囲第1項に記載
    のディジタル命令プロセッサ制御。
  3. (3)前記第1のマルチプレクサ手段の前記出力端子に
    接続され、そこに示される各命令は命令「パイプライン
    」内の段階を占有している、命令キャッシュロケーショ
    ン指示部を示す少なくとも3つの信号をストアし、そこ
    にストアされた前記内容物を示す信号を発生し、さらに
    そこにストアされた前記ロケーション指示部の内容物を
    更新するための手段をさらに含み、そのため前記命令プ
    ロセッサの先行するサイクルの間、前記第1のマルチプ
    レクサによって導伝された前記命令キャッシュロケーシ
    ョン指示部はそれの第1の記憶ロケーションの内容物を
    置換え、前記第1の記憶ロケーションでストアされた命
    令キャッシュロケーション指示部は第2の記憶ロケーシ
    ョンの内容物を取替え、そして前記第2の記憶ロケーシ
    ョンでストアされた命令キャッシュロケーション指示部
    は第3の記憶ロケーションの内容物を取替える、特許請
    求の範囲第1項に記載のディジタル命令プロセッサ制御
  4. (4)前記パイプライン手段が、前記第1のマルチプレ
    クサ手段の前記出力端子に接続される入力端子と、出力
    端子とを有する第1のクロックレジスタと、前記第1の
    レジスタの前記出力端子に接続される入力端子と、出力
    端子とを有する、第2のクロックレジスタと、さらに前
    記第2のレジスタの前記出力端子に接続される入力端子
    を有する第3のレジスタとを含む、特許請求の範囲第3
    項に記載のディジタル命令プロセッサ。
  5. (5)プログラムカウンタを有し、各々が 「分岐条件」を決定する複数個の分岐命令を含み、各々
    が指示部を有する複数個のロケーションを有する命令キ
    ャッシュにストアされる、セットからの命令をサイクル
    的に実行するデジタル命令プロセッサ制御の1サイクル
    内で分岐を実行する方法であって; a)前記プログラムカウンタの内容物によって特定され
    たロケーション指示部で分岐命令を前記キャッシュから
    フェッチし、そして命令レジスタに前記命令をストアす
    る段階と; b)前記命令レジスタにストアされた前記命令をデコー
    ドする段階と; c)前記命令によって決定された前記分岐条件をセーブ
    する段階と; d)デコード段階(c)で発生された情報および前記プ
    ログラムカウンタの内容物に基づいた分岐ターゲットア
    ドレスを決定する段階と; e)段階(d)で決定された前記分岐ターゲットアドレ
    スから決定された前記キャッシュでのロケーションから
    命令を、および段階(c)で発生された前記分岐条件情
    報をフェッチする段階と;さらに f)プログラムカウンタの内容物を、段階(e)で前記
    命令をフェッチするために用いられたアドレスを1だけ
    増やしたものと取替える段階とを含む方法
  6. (6)前記命令セットは手順呼出命令をさらに含み、段
    階(a)は前記手順呼出命令をフェッチすることを要求
    する、1サイクルで手順を要求するための方法をさらに
    含み: g)デコーディング段階(b)で発生された情報および
    前記プログラムカウンタの内容物に基づいて呼出復帰ア
    ドレスを決定する段階と; h)段階(g)で決定された前記呼出復帰アドレスをセ
    ーブする段階とをさらに含む、特許請求の範囲第5項に
    記載の1サイクル分岐方法。
  7. (7)各々が指示部を持った複数個のロケーションを有
    する命令キャッシュにストアされた、セットからの命令
    をサイクル的に実行する命令パイプラインを有するディ
    ジタル命令プロセッサ制御によってインターラプトルー
    チンを処理する方法であって: a)インターラプトの発生の2サイクル前に、パイプラ
    イン内に置かれた命令のロケーション指示部をセーブす
    る段階と; b)インターラプトの発生の1サイクル前に、パイプラ
    インに置かれた命令のロケーション指示部をセーブする
    段階と; c)前記インターラプトルーチンの第1の命令に制御を
    転送する段階と; d)前記インターラプトルーチンから復帰する前に、段
    階(a)でセーブされたロケーション指示部に位置され
    た命令を前記パイプラインに対してフェッチする段階と
    ;さらに e)前記インターラプトルーチンから復帰する前に、段
    階(b)でセーブされたロケーション指示部に位置され
    た命令を前記パイプラインに対してフェッチする段階と
    を含む、方法。
  8. (8)前記命令プロセッサ制御はプログラムカウンタお
    よびデータ経路パイプラインを有し、前記命令セットは
    インターラプト手順呼出命令を含み、そして転送制御段
    階(c)は: c1)前記プログラムカウンタの内容物によって特定さ
    れたロケーション指示部で前記キャッシュから前記イン
    ターラプト手順呼出命令をフェッチし、そして命令レジ
    スタに前記命令をストアする段階と; c2)前記命令レジスタにストアされた前記命令をデコ
    ードする段階と; c3)デコーディング段階(c2)で発生された情報お
    よび前記プログラムカウンタの内容物に基づいて分岐タ
    ーゲットアドレスを決定する段階と; c4)段階(c3)で決定された前記分岐ターゲットア
    ドレスから決定された前記キャッシュ内のロケーション
    から命令をフェッチする段階と; c5)プログラムカウンタの内容物を、段階(c4)で
    前記命令をフェッチするために用いられたアドレスを4
    だけ増やしたものと取替える段階と;さらに c6)前記プログラムカウンタの内容物を、後の記憶動
    作に用いるための前記データ経路パイプラインへと導伝
    する段階とを含む、特許請求の範囲第7項に記載のイン
    ターラプト処理方法。
  9. (9)f)前記インターラプトルーチンからの復帰に続
    いて、段階(a)でセーブされたロケーション指示部で
    前記キャッシュからフェッチし、そして命令レジスタ内
    に前記命令をストアする段階と; (g)前記インターラプトルーチンからの復帰に続いて
    、段階(b)でセーブされたロケーション指示部で前記
    キャッシュからフェッチし、そして命令レジスタ内に前
    記命令をストアする段階とをさらに含む、特許請求の範
    囲第7項に記載のインターラプト処理方法。
  10. (10)前記命令プロセッサ制御はプログラムカウンタ
    を有し、前記命令セットはインターラプト手順呼出命令
    を含み、そしてフェッチング段階(f)は: f1)前記プログラムカウンタの内容物によって特定さ
    れたロケーション指示部で前記キャッシュから前記間接
    分岐命令をフェッチし、そして命令レジスタ内に前記命
    令をストアする段階と; f2)前記命令レジスタにストアされた前記命令をデコ
    ードする段階と; f3)デコード段階(f2)で発生された情報および前
    記プログラムカウンタの内容物に基づいて間接分岐アド
    レスを決定する段階と; f4)段階(f3)で決定された前記間接分岐アドレス
    から決定された前記キャッシュのロケーションから命令
    をフェッチする段階と; さらにf5)プログラムカウンタの内容物を、段階(f
    4)で前記命令をフェッチするために用いられるアドレ
    スを1だけ増やしたものと取替える段階とを含む、特許
    請求の範囲第9項に記載のインターラプト処理方法。
JP61203569A 1985-08-30 1986-08-28 ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法 Expired - Lifetime JP2640454B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/771,327 US4777587A (en) 1985-08-30 1985-08-30 System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
US771327 1985-08-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP8283792A Division JP2796797B2 (ja) 1985-08-30 1996-10-25 ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法

Publications (2)

Publication Number Publication Date
JPS6254342A true JPS6254342A (ja) 1987-03-10
JP2640454B2 JP2640454B2 (ja) 1997-08-13

Family

ID=25091461

Family Applications (2)

Application Number Title Priority Date Filing Date
JP61203569A Expired - Lifetime JP2640454B2 (ja) 1985-08-30 1986-08-28 ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
JP8283792A Expired - Lifetime JP2796797B2 (ja) 1985-08-30 1996-10-25 ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP8283792A Expired - Lifetime JP2796797B2 (ja) 1985-08-30 1996-10-25 ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法

Country Status (5)

Country Link
US (1) US4777587A (ja)
EP (1) EP0219203B1 (ja)
JP (2) JP2640454B2 (ja)
AT (1) ATE118628T1 (ja)
DE (1) DE3650232T2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01126732A (ja) * 1987-11-12 1989-05-18 Matsushita Electric Ind Co Ltd 情報処理装置
JPH01126733A (ja) * 1987-11-12 1989-05-18 Matsushita Electric Ind Co Ltd 情報処理装置
JPH01214931A (ja) * 1988-02-23 1989-08-29 Mitsubishi Electric Corp データ処理装置
JPH01220034A (ja) * 1988-02-29 1989-09-01 Nec Corp 条件ジャンプ実行制御方式
JPH02212936A (ja) * 1989-02-14 1990-08-24 Matsushita Electron Corp パイプライン構造を有する半導体装置
JPH0844562A (ja) * 1994-06-22 1996-02-16 Sgs Thomson Microelectron Ltd コンピュータシステム及びその動作方法
JP2010501963A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
US4890221A (en) * 1988-04-01 1989-12-26 Digital Equipment Corporation Apparatus and method for reconstructing a microstack
GB8815042D0 (en) * 1988-06-24 1988-08-03 Int Computers Ltd Data processing apparatus
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
US5159680A (en) * 1988-07-28 1992-10-27 Sun Microsystems, Inc. Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5155818A (en) * 1988-09-28 1992-10-13 Data General Corporation Unconditional wide branch instruction acceleration
DE68927218T2 (de) * 1988-10-18 1997-02-06 Hewlett Packard Co Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
EP0404068A3 (en) * 1989-06-20 1991-12-27 Fujitsu Limited Branch instruction executing device
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5210841A (en) * 1990-01-30 1993-05-11 Advanced Micro Devices, Inc. External memory accessing system
EP0442116A3 (en) * 1990-02-13 1993-03-03 Hewlett-Packard Company Pipeline method and apparatus
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
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
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5333280A (en) * 1990-04-06 1994-07-26 Nec Corporation Parallel pipelined instruction processing system for very long instruction word
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
CA2045791A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Branch performance in high speed processor
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
US5454090A (en) * 1990-10-12 1995-09-26 Siemens Aktiengesellschaft Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units
DE69130757T2 (de) * 1990-11-30 1999-07-29 Toshiba Kawasaki Kk Ausführungsvorrichtung für bedingte Verzweigungsbefehle
US5265213A (en) * 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
US5454089A (en) * 1991-04-17 1995-09-26 Intel Corporation Branch look ahead adder for use in an instruction pipeline sequencer with multiple instruction decoding
US5450585A (en) * 1991-05-15 1995-09-12 International Business Machines Corporation Compiler with delayed conditional branching
US5434986A (en) * 1992-01-09 1995-07-18 Unisys Corporation Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5692167A (en) * 1992-07-31 1997-11-25 Intel Corporation Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
US5410660A (en) * 1992-12-24 1995-04-25 Motorola, Inc. System and method for executing branch on bit set/clear instructions using microprogramming flow
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
US5604909A (en) 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5539888A (en) * 1993-12-23 1996-07-23 Unisys Corporation System and method for processing external conditional branch instructions
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
EP0715251B1 (en) * 1994-11-29 2000-07-26 International Business Machines Corporation One cycle processor for real time processing
JPH08212075A (ja) * 1995-01-31 1996-08-20 Nec Corp 情報処理装置
US6003127A (en) 1995-10-04 1999-12-14 Nippondenso Co., Ltd. Pipeline processing apparatus for reducing delays in the performance of processing operations
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
AU3666697A (en) * 1996-08-20 1998-03-06 Idea Corporation A method for identifying hard-to-predict branches to enhance processor performance
US5964869A (en) * 1997-06-19 1999-10-12 Sun Microsystems, Inc. Instruction fetch mechanism with simultaneous prediction of control-flow instructions
US5935238A (en) * 1997-06-19 1999-08-10 Sun Microsystems, Inc. Selection from multiple fetch addresses generated concurrently including predicted and actual target by control-flow instructions in current and previous instruction bundles
JPH1165840A (ja) * 1997-08-11 1999-03-09 Sony Corp 演算処理装置およびその方法
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US6243805B1 (en) * 1998-08-11 2001-06-05 Advanced Micro Devices, Inc. Programming paradigm and microprocessor architecture for exact branch targeting
US6289442B1 (en) 1998-10-05 2001-09-11 Advanced Micro Devices, Inc. Circuit and method for tagging and invalidating speculatively executed instructions
EP1236092A4 (en) 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
AU2597401A (en) * 1999-12-22 2001-07-03 Ubicom, Inc. System and method for instruction level multithreading in an embedded processor using zero-time context switching
US7120783B2 (en) 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US7308686B1 (en) 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
US7047396B1 (en) 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US7010612B1 (en) 2000-06-22 2006-03-07 Ubicom, Inc. Universal serializer/deserializer
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7822950B1 (en) 2003-01-22 2010-10-26 Ubicom, Inc. Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
US7278014B2 (en) * 2004-12-02 2007-10-02 International Business Machines Corporation System and method for simulating hardware interrupts
JP2008165589A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 情報処理装置
CN102117198B (zh) * 2009-12-31 2015-07-15 上海芯豪微电子有限公司 一种分支处理方法
US11003459B2 (en) 2013-03-15 2021-05-11 Intel Corporation Method for implementing a line speed interconnect structure
CN105190579B (zh) 2013-03-15 2018-04-06 英特尔公司 一种用于实现线路速度互连结构的方法
US9817666B2 (en) * 2013-03-15 2017-11-14 Intel Corporation Method for a delayed branch implementation by using a front end track table
US9753691B2 (en) 2013-03-15 2017-09-05 Intel Corporation Method for a stage optimized high speed adder
US20170277539A1 (en) * 2016-03-24 2017-09-28 Imagination Technologies Limited Exception handling in processor using branch delay slot instruction set architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5640382A (en) * 1979-08-20 1981-04-16 Faroudja Y C Right angle modulation color television signal separator
JPS57162034A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Data processing system
JPS59183434A (ja) * 1983-04-01 1984-10-18 Nippon Telegr & Teleph Corp <Ntt> 命令先取り制御方式
JPS60142747A (ja) * 1983-12-29 1985-07-27 Hitachi Ltd 命令再実行制御方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52120640A (en) * 1976-04-02 1977-10-11 Toshiba Corp Micro program control system
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
US4471431A (en) * 1982-09-27 1984-09-11 Data General Corporation Encachement apparatus
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
EP0208181A1 (en) * 1985-06-28 1987-01-14 Hewlett-Packard Company Programme counter queue for a pipelined processor
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5640382A (en) * 1979-08-20 1981-04-16 Faroudja Y C Right angle modulation color television signal separator
JPS57162034A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Data processing system
JPS59183434A (ja) * 1983-04-01 1984-10-18 Nippon Telegr & Teleph Corp <Ntt> 命令先取り制御方式
JPS60142747A (ja) * 1983-12-29 1985-07-27 Hitachi Ltd 命令再実行制御方式

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01126732A (ja) * 1987-11-12 1989-05-18 Matsushita Electric Ind Co Ltd 情報処理装置
JPH01126733A (ja) * 1987-11-12 1989-05-18 Matsushita Electric Ind Co Ltd 情報処理装置
JPH01214931A (ja) * 1988-02-23 1989-08-29 Mitsubishi Electric Corp データ処理装置
JPH01220034A (ja) * 1988-02-29 1989-09-01 Nec Corp 条件ジャンプ実行制御方式
JPH02212936A (ja) * 1989-02-14 1990-08-24 Matsushita Electron Corp パイプライン構造を有する半導体装置
JPH0844562A (ja) * 1994-06-22 1996-02-16 Sgs Thomson Microelectron Ltd コンピュータシステム及びその動作方法
JP2010501963A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置
JP2014002769A (ja) * 2006-08-31 2014-01-09 Qualcomm Incorporated 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置
US8943300B2 (en) 2006-08-31 2015-01-27 Qualcomm Incorporated Method and apparatus for generating return address predictions for implicit and explicit subroutine calls using predecode information

Also Published As

Publication number Publication date
ATE118628T1 (de) 1995-03-15
EP0219203A2 (en) 1987-04-22
US4777587A (en) 1988-10-11
DE3650232T2 (de) 1995-08-10
JPH09171463A (ja) 1997-06-30
DE3650232D1 (de) 1995-03-23
JP2640454B2 (ja) 1997-08-13
EP0219203B1 (en) 1995-02-15
EP0219203A3 (en) 1989-07-19
JP2796797B2 (ja) 1998-09-10

Similar Documents

Publication Publication Date Title
JPS6254342A (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US4025771A (en) Pipe line high speed signal processor
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5611061A (en) Method and processor for reliably processing interrupt demands in a pipeline processor
US5606682A (en) Data processor with branch target address cache and subroutine return address cache and method of operation
EP0352103B1 (en) Pipeline bubble compression in a computer system
US5006980A (en) Pipelined digital CPU with deadlock resolution
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
US5023828A (en) Microinstruction addressing in high-speed CPU
US4967338A (en) Loosely coupled pipeline processor
KR100875377B1 (ko) 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법
EP0094535B1 (en) Pipe-line data processing system
US5978896A (en) Method and system for increased instruction dispatch efficiency in a superscalar processor system
US5617549A (en) System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US4896264A (en) Microprocess with selective cache memory
US5410657A (en) Method and system for high speed floating point exception enabled operation in a multiscalar processor system
US20050144427A1 (en) Processor including branch prediction mechanism for far jump and far call instructions
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
US6182211B1 (en) Conditional branch control method
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
US5220670A (en) Microprocessor having ability to carry out logical operation on internal bus
JPH0544049B2 (ja)

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term