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
Links
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 2
- 230000003111 delayed effect Effects 0.000 description 12
- GVBNSPFBYXGREE-UHFFFAOYSA-N Visnadine Natural products C1=CC(=O)OC2=C1C=CC1=C2C(OC(C)=O)C(OC(=O)C(C)CC)C(C)(C)O1 GVBNSPFBYXGREE-UHFFFAOYSA-N 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000574648 Homo sapiens Retinoid-inducible serine carboxypeptidase Proteins 0.000 description 1
- 102100025483 Retinoid-inducible serine carboxypeptidase Human genes 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005562 fading Methods 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative 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つのサイクルのみを用いてバイ
ブラインで分岐命令を処理するための方法および装置に
関するものである。
するための方法および装置に関するものであって、特に
分岐予測または複雑な回路の必要なしにパイプライン内
で命令に割当てられた1つのサイクルのみを用いてバイ
ブラインで分岐命令を処理するための方法および装置に
関するものである。
[発明の背景〕
減少命令レットコンピュータ(RISC)は、簡単なデ
コーディングおよびパイプライン化した命令の実行を用
いることの有利さを認める。分岐命令は命令の流れを制
御するためにコンピュータ内に必要とされる。バイブラ
イン化したコンピュータの分岐命令は分岐命令がそこへ
制御を転送した位置である「分岐アドレス」で命令がフ
ェッチされるまで通常バイブラインを遅延させる。その
ような訳で、これらの命令は通常のパイプライン化した
命令の流れを妨げる。分岐の影響を遅延する「遅延分岐
」、または時間に先立って分岐を予測し、そして間違っ
た予測を正しくしたり、または分岐の方向がわかるまで
多数の命令を7エツチづるといった精巧な技術が先行技
術で周知である。
コーディングおよびパイプライン化した命令の実行を用
いることの有利さを認める。分岐命令は命令の流れを制
御するためにコンピュータ内に必要とされる。バイブラ
イン化したコンピュータの分岐命令は分岐命令がそこへ
制御を転送した位置である「分岐アドレス」で命令がフ
ェッチされるまで通常バイブラインを遅延させる。その
ような訳で、これらの命令は通常のパイプライン化した
命令の流れを妨げる。分岐の影響を遅延する「遅延分岐
」、または時間に先立って分岐を予測し、そして間違っ
た予測を正しくしたり、または分岐の方向がわかるまで
多数の命令を7エツチづるといった精巧な技術が先行技
術で周知である。
これらの技術の大部分がRISCアーキテクチャにはあ
まりに複雑すぎるので、遅延された分岐がそれに選ばれ
、その遅延された分岐はRISCが現在の命令の実行中
に、(物理的に)次の命令を常にフェッチすることを可
能にする。大部分のRISCが命令のパイプライン化を
採用するので、先行技術において遅延された分岐は分岐
命令を実行するために2つの命令プ、ロセッサクロック
サイクルを必要とする。これは命令のバイブラインを分
裂させる。そのような分裂をなくすために先行技術に複
雑な回路°が導入されていた。分岐命令はしばしば命令
ストリームの中で現われるので、先行技術のコンピュー
タは所望のものよりも遅くそして複雑であった。
まりに複雑すぎるので、遅延された分岐がそれに選ばれ
、その遅延された分岐はRISCが現在の命令の実行中
に、(物理的に)次の命令を常にフェッチすることを可
能にする。大部分のRISCが命令のパイプライン化を
採用するので、先行技術において遅延された分岐は分岐
命令を実行するために2つの命令プ、ロセッサクロック
サイクルを必要とする。これは命令のバイブラインを分
裂させる。そのような分裂をなくすために先行技術に複
雑な回路°が導入されていた。分岐命令はしばしば命令
ストリームの中で現われるので、先行技術のコンピュー
タは所望のものよりも遅くそして複雑であった。
サブルーチンならびにインターラプトおよびトラップル
ーチンでの呼出は同様に分岐を含むので、先行技術のR
ISCで招かれた時間ペナルティはまたこれらの共通に
起こる手順に対しても存在する。したがって、単一のサ
イクルで分岐を行ない、そして命令のパイプラインを分
裂させない一方、複雑な回路を要求することなしに完全
に正確な分岐予測を提供する、RISC内で用いるのに
適した命令プロセッサの必要性がある。
ーチンでの呼出は同様に分岐を含むので、先行技術のR
ISCで招かれた時間ペナルティはまたこれらの共通に
起こる手順に対しても存在する。したがって、単一のサ
イクルで分岐を行ない、そして命令のパイプラインを分
裂させない一方、複雑な回路を要求することなしに完全
に正確な分岐予測を提供する、RISC内で用いるのに
適した命令プロセッサの必要性がある。
[発明の要約]
この発明の命令プロセッサは分岐命令が条件コードレジ
スタの代わりに汎用レジスタにストアされたビットを含
むパイプライン化されたRISGに用いるためのプログ
ラムカウンタを提供し、これは分岐条件が条件コードレ
ジスタ内の特別な場合としてではなく、通常の命令オペ
ランドとして取扱われることを可能にする。分岐命令の
デコードサイクルの間、条件ビットはフェッチされ、そ
して実行される分岐命令の型に依存して分岐「ターゲッ
ト」アドレスは分離した相対アドレス加算° 器に
よって計算されるかまたは、レジスタからフェッチされ
る。
スタの代わりに汎用レジスタにストアされたビットを含
むパイプライン化されたRISGに用いるためのプログ
ラムカウンタを提供し、これは分岐条件が条件コードレ
ジスタ内の特別な場合としてではなく、通常の命令オペ
ランドとして取扱われることを可能にする。分岐命令の
デコードサイクルの間、条件ビットはフェッチされ、そ
して実行される分岐命令の型に依存して分岐「ターゲッ
ト」アドレスは分離した相対アドレス加算° 器に
よって計算されるかまたは、レジスタからフェッチされ
る。
分岐命令の実行サイクルの始めでは、条件ビットおよび
ターゲットアドレスはどの命令がフェッチされるかを制
御し、次に続く命令が実行されるまで分岐は実施されな
い。マルブレクサはこの制御を実現する。このようにし
て、パイプラインの分岐命令に物理的に続く命令の置換
えはなされる必要がなく、こうしてバイブラインは中断
することなく最大の速度で実行できる。したがって、分
岐はそれに割り当てられたバイブラインの単一のサイク
ル内で起こる。
ターゲットアドレスはどの命令がフェッチされるかを制
御し、次に続く命令が実行されるまで分岐は実施されな
い。マルブレクサはこの制御を実現する。このようにし
て、パイプラインの分岐命令に物理的に続く命令の置換
えはなされる必要がなく、こうしてバイブラインは中断
することなく最大の速度で実行できる。したがって、分
岐はそれに割り当てられたバイブラインの単一のサイク
ル内で起こる。
この発明のプロセッサを組込むコンピュータはまたり”
ブルーチン、インターラプトおよびトラップルーチンで
の呼出のための特別な取扱い技術をも容易に実行する。
ブルーチン、インターラプトおよびトラップルーチンで
の呼出のための特別な取扱い技術をも容易に実行する。
[好ましい実施例の詳細な説明]
この発明の単一サイクル分岐能力を提供するディジタル
プロセッサ制御のプログラムカウンタ部分10は、第1
図にブロック図の形で例示されている。第1図に示され
ていない命令レジスタは、現在プロセッサ10によって
実行されている命令を含む。もしこの命令が実行される
べき分岐を要求するなら、分岐条件は第1図に示されて
いない汎用レジスタ内の予め定められたビット位置にス
トアされ、そこではそれは命令オペランドとしてプロセ
ッサ10によって処理されるであろう。プロセッサ10
の命令デコードサイクルの間、分岐命令がデコードされ
ているとぎ、分岐条件は汎用レジスタから検索され、そ
してプロセッサ10の命令実行サイクルの間に用いられ
る。下に説明される分岐条件およびターゲットアドレス
はプロセッサ10にJ:って次に実行されるべき命令の
ロケーションを決定するために用いられる。第1図に例
示された単純な論理は命令バイブラインが、命令が条件
句の分岐を要求する場合でさえも、中断なく動作するこ
とを可能にする。
プロセッサ制御のプログラムカウンタ部分10は、第1
図にブロック図の形で例示されている。第1図に示され
ていない命令レジスタは、現在プロセッサ10によって
実行されている命令を含む。もしこの命令が実行される
べき分岐を要求するなら、分岐条件は第1図に示されて
いない汎用レジスタ内の予め定められたビット位置にス
トアされ、そこではそれは命令オペランドとしてプロセ
ッサ10によって処理されるであろう。プロセッサ10
の命令デコードサイクルの間、分岐命令がデコードされ
ているとぎ、分岐条件は汎用レジスタから検索され、そ
してプロセッサ10の命令実行サイクルの間に用いられ
る。下に説明される分岐条件およびターゲットアドレス
はプロセッサ10にJ:って次に実行されるべき命令の
ロケーションを決定するために用いられる。第1図に例
示された単純な論理は命令バイブラインが、命令が条件
句の分岐を要求する場合でさえも、中断なく動作するこ
とを可能にする。
プロセッサ10は「相対または絶対分岐アドレス」、「
間接分岐アドレス」または[1−ラップアドレス」の3
つの分岐の行先の1つを特定することができる分岐命令
を実行する。第4の「継続アドレス」は単に、もし分岐
が引受けられないなら、実行される次に続く命令のもの
である。第1図に例示される経路は示された要素の間の
データの流れのみを示し、いくつかの信号を並列に導伝
することができる。当業者によって認められるであろう
、ように、制御信号経路もまた必要であるが、種々の例
示された要素のvl tillを行なう方法は当業者に
よって周知であるので、第1図に図示されていない。
間接分岐アドレス」または[1−ラップアドレス」の3
つの分岐の行先の1つを特定することができる分岐命令
を実行する。第4の「継続アドレス」は単に、もし分岐
が引受けられないなら、実行される次に続く命令のもの
である。第1図に例示される経路は示された要素の間の
データの流れのみを示し、いくつかの信号を並列に導伝
することができる。当業者によって認められるであろう
、ように、制御信号経路もまた必要であるが、種々の例
示された要素のvl tillを行なう方法は当業者に
よって周知であるので、第1図に図示されていない。
第1図を参照すると、プロセッサ10は分岐ターゲット
アドレス(BRN TGT)マルチプレクサ/レジス
タ12を含み、これは第1図に図示 。
アドレス(BRN TGT)マルチプレクサ/レジス
タ12を含み、これは第1図に図示 。
されていない汎用レジスタファイルからデータ経路14
を介して、プロセッサ10によってそこへ分岐がなされ
るべきロケーションを含むアドレス、いわゆる「間接分
岐アドレス」を受取る。分岐アドレスの第2の型、いわ
ゆる「相対または絶対分岐アドレス」は加算器16によ
って決定され、これは第1の入力でデータ経路18を介
して命令レジスタから分岐変位値を受取る。この値はデ
ータ経路20を介して加算器16へ第2の入力で受取ら
れた現在実行されている命令のアドレスに加えられるこ
とができ、この結果相対分岐アドレスを生じる。もし加
算が行なわれないなら、分岐変位アドレスのみが加算器
16によって発生され、その結果、絶対分岐アドレスを
生じる。加算器16によって発生されるアドレスはデー
タ経路22を介してBRN TGTレジスタ/マルチ
プレクサ12の第2の入力に導伝される。
を介して、プロセッサ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の入力端子に接続される。
ロセッサ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組の連続命
令をストアするために、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によって発生される
継続アドレスを受取り、そしてこのアドレスをストアす
る。
発生されるアドレスを受取り、これはデータ経路28を
介してそれに与えられるアドレスを1だけ増加させたア
ドレス、すなわち継続アドレスを出力で発生する。プロ
グラムカウンタ(PROG CNT)レジスタ46は
データ経路48を介して増分器44によって発生される
継続アドレスを受取り、そしてこのアドレスをストアす
る。
継続アドレスはPROG CNTレジスタ46の出力
で発生され、そしてデータ経路20を介して加算器16
の第2の入力とMUX26の第2の入力に導伝される。
で発生され、そしてデータ経路20を介して加算器16
の第2の入力とMUX26の第2の入力に導伝される。
MUX26は上に説明された分岐条件に基づいた制御信
号を受取り、データ経路24上に与えられた分岐ターゲ
ットアドレスかまたはデータ経路20上に与えられた継
続アドレスのどちらかが命令キャッシュ30に与えられ
てプロセッサ・1oによって実行されるべき次の命令を
フェッチするかを決定する。分岐を要求する命令はプロ
セッサ10によって処理され、そのため分岐は分岐命令
に続く命令が実行されるまで起こらない。このようにし
て、PCスタックバイブライン32によって実現された
命令バイブラインは、分岐命令がバイブラインに入ると
ぎでさえ、中断なく動作し、これは分岐命令に通常従う
命令の置換えがパイプラインでなされる必要がないから
である。したがって、分岐は第2図に関連して説明され
るように、それに割当てられたパイプラインの単一のサ
イクル内で起こる。
号を受取り、データ経路24上に与えられた分岐ターゲ
ットアドレスかまたはデータ経路20上に与えられた継
続アドレスのどちらかが命令キャッシュ30に与えられ
てプロセッサ・1oによって実行されるべき次の命令を
フェッチするかを決定する。分岐を要求する命令はプロ
セッサ10によって処理され、そのため分岐は分岐命令
に続く命令が実行されるまで起こらない。このようにし
て、PCスタックバイブライン32によって実現された
命令バイブラインは、分岐命令がバイブラインに入ると
ぎでさえ、中断なく動作し、これは分岐命令に通常従う
命令の置換えがパイプラインでなされる必要がないから
である。したがって、分岐は第2図に関連して説明され
るように、それに割当てられたパイプラインの単一のサ
イクル内で起こる。
4段階パイプラインはこの発明のプロセッサ10によっ
て用いられ、これは命令フェッチ段階、命令デコード段
階、命令実行段階、およびデータ記憶段階である。プロ
セッサ10によって採用された命令バイブラインの種々
の段階は、分岐命令の実行を例示する第2図に示される
。
て用いられ、これは命令フェッチ段階、命令デコード段
階、命令実行段階、およびデータ記憶段階である。プロ
セッサ10によって採用された命令バイブラインの種々
の段階は、分岐命令の実行を例示する第2図に示される
。
いわゆる「遅延分岐」技術を採用することによって、プ
ロセッサ10は複雑な論理回路を必要とせずに単一のプ
ロ゛セツサザイクル内で分岐命令の実行を達成すること
ができる。第2図の垂直の点線の間の空間は単一のプロ
セッササイクルと対応し、各サイクルは等しい持続期間
を有する。「分岐1」はプロセッサ10の第1のサイク
ルの間、【0からt、まで延在して示され、そこでは分
岐命令が命令キャッシュ30からフェッチされ、そして
プロセッサ10の命令レジスタ内にストアされる。プロ
セッサ10の第2のサイクルの間、【、からt2まで延
在して示される「分岐2jは命令レジスタにストアされ
た分岐命令をデコードする。命令によって必要とされる
分岐条件は上に説明された汎用レジスタから検索され、
そして命令によって特定された分岐ターゲットアドレス
は」二に説明されたように決定され、そ゛してデータバ
ス24上をMUX26の第1の入力へと導伝される。
ロセッサ10は複雑な論理回路を必要とせずに単一のプ
ロ゛セツサザイクル内で分岐命令の実行を達成すること
ができる。第2図の垂直の点線の間の空間は単一のプロ
セッササイクルと対応し、各サイクルは等しい持続期間
を有する。「分岐1」はプロセッサ10の第1のサイク
ルの間、【0からt、まで延在して示され、そこでは分
岐命令が命令キャッシュ30からフェッチされ、そして
プロセッサ10の命令レジスタ内にストアされる。プロ
セッサ10の第2のサイクルの間、【、からt2まで延
在して示される「分岐2jは命令レジスタにストアされ
た分岐命令をデコードする。命令によって必要とされる
分岐条件は上に説明された汎用レジスタから検索され、
そして命令によって特定された分岐ターゲットアドレス
は」二に説明されたように決定され、そ゛してデータバ
ス24上をMUX26の第1の入力へと導伝される。
t2からt、まで延在している「分岐3」の分岐命令の
実行サイクルの間、条件はプロセッサ10が制御信号を
発生することを引起こし、これは順に次の(論理)命令
をフェッチする際に用いるために、命令キャッシュ30
へと分岐ターゲットアドレスまたは継続アドレスのいず
れが導伝されるべきかをMIJX26が選択することを
引起こす。
実行サイクルの間、条件はプロセッサ10が制御信号を
発生することを引起こし、これは順に次の(論理)命令
をフェッチする際に用いるために、命令キャッシュ30
へと分岐ターゲットアドレスまたは継続アドレスのいず
れが導伝されるべきかをMIJX26が選択することを
引起こす。
t、からt4まで延在しているストアバックサイクルの
間、分岐命令に(物理的に)従う命令がプロセッサ10
の実行段階の中にある。
間、分岐命令に(物理的に)従う命令がプロセッサ10
の実行段階の中にある。
第2図に示されるように、分岐遅延命令「遅延Jは物理
的に分岐命令に従い、そして常に実行される、すなわも
分岐自身は分岐遅延命令の後まで現われることはなく、
すると分岐命令がそこへと制御を送る命令「ターゲット
」が実行する。このようにして・プロセッサ10は現在
の命令の実行の問、次の命令を常にフェッチすることが
でき、すなわちパイプラインをインターラプトしたり、
または命令のフェッチを取消すことなく、バイブライン
モード内で動作することかできる。したがって、第2図
は第2のサイクル「遅延1」の間、プロセッサ10が、
そのフエツチング、デコーディング、実行およびストア
バックサイクルが今説明された分岐命令に物理的に従う
命令をキャッシュ30からフェッチすることを示す。こ
うしてこの命令は、それに先行した分岐命令に即座に従
うバイブライン内の段階を占有する。こうして、分岐遅
延命令「遅延2」、「遅延3」J3よび「遅延4」のデ
コーディング、実行およびストアバックサイクルは第2
図に示されるように、プロセッサ10の第3、m4#よ
び第5のり・イクルの間に起こるであろう。
的に分岐命令に従い、そして常に実行される、すなわも
分岐自身は分岐遅延命令の後まで現われることはなく、
すると分岐命令がそこへと制御を送る命令「ターゲット
」が実行する。このようにして・プロセッサ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の
直列接続は、対応するパイプライン段階に関連した命令
のアドレスをストアすることによって上で説明されたパ
イプラインを実現する。
は第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の命令となる。
された遅延された分岐技術の修正による呼出サブルーチ
ン命令によって要求される分岐を実行することができる
。呼出サブルーチン命令はキャッシュ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は
遅延された分岐命令が実行されることを引き起こさなく
てはならない。インターラプトまたはトラップルーチン
から復帰するとぎこの結果を確実にするために、プロセ
ッサ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から【。
た分岐命令との間に発生するインターラプトまたはトラ
ップルーチンを実行するためにプロセッサ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図に示されるよ
うに、加算命令およびシフト命令のアドレスをセーブす
ることを引き起こす。
実行はしたがって、デコーディングおよび実行段階の間
、表示「(加算)」および「(シフト)」によって第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はイ
ンターラプトの発生の直前にパイプラインでの発生のそ
れらの順序におけるこれらの命令を実行するであろう。
セッサ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はプログラムカウ
ンタレジスタである。
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の入力端子に与え
られる前記分岐ターゲットアドレス信号とそれの第2の
入力端子に与えられる前記継続アドレス信号とに応答し
て、そこから前記命令プロセッサによつて処理されるべ
き次の命令をフェッチするために前記命令キャッシュ内
のロケーションを示す前記アドレス信号の1つを前記出
力端子に選択的に導伝するための、第1のマルチプレク
サ手段とを含む、制御。 - (2)前記分岐ターゲットアドレス発生手段が; 前記第1のマルチプレクサ手段の前記第1の入力端子に
接続される出力端子を有し、前記複数個の分岐命令のど
れが実行されるかを示す制御信号に応答し、前記分岐命
令によつて決定された「間接アドレス」を示す、第1の
入力端子に与えられる信号と、「相対または絶対分岐ア
ドレス」を示す、第2の入力端子に与えられる信号とに
応答し、前記分岐ターゲットアドレスを示す前記アドレ
ス信号の1つを前記出力端子に選択的に導伝するための
第2のマルチプレクサ/レジスタ手段と;さらに 前記第2のマルチプレクサ/レジスタ手段の前記第2の
入力端子に接続される出力端子を有し、前記複数個の分
岐命令のどれが実行されるを示す前記制御信号に応答し
、前記分岐命令の予め定められた「分岐変位」部分を示
す、第1の入力端子に与えられる信号と、そして第2の
入力端子に与えられる前記継続アドレス信号とに応答し
、前記第1および第2の入力端子に与えられる前記信号
の算術的組合わせを前記出力端子で選択的に発生するた
めの加算器手段とを含む、特許請求の範囲第1項に記載
のディジタル命令プロセッサ制御。 - (3)前記第1のマルチプレクサ手段の前記出力端子に
接続され、そこに示される各命令は命令「パイプライン
」内の段階を占有している、命令キャッシュロケーショ
ン指示部を示す少なくとも3つの信号をストアし、そこ
にストアされた前記内容物を示す信号を発生し、さらに
そこにストアされた前記ロケーション指示部の内容物を
更新するための手段をさらに含み、そのため前記命令プ
ロセッサの先行するサイクルの間、前記第1のマルチプ
レクサによって導伝された前記命令キャッシュロケーシ
ョン指示部はそれの第1の記憶ロケーションの内容物を
置換え、前記第1の記憶ロケーションでストアされた命
令キャッシュロケーション指示部は第2の記憶ロケーシ
ョンの内容物を取替え、そして前記第2の記憶ロケーシ
ョンでストアされた命令キャッシュロケーション指示部
は第3の記憶ロケーションの内容物を取替える、特許請
求の範囲第1項に記載のディジタル命令プロセッサ制御
。 - (4)前記パイプライン手段が、前記第1のマルチプレ
クサ手段の前記出力端子に接続される入力端子と、出力
端子とを有する第1のクロックレジスタと、前記第1の
レジスタの前記出力端子に接続される入力端子と、出力
端子とを有する、第2のクロックレジスタと、さらに前
記第2のレジスタの前記出力端子に接続される入力端子
を有する第3のレジスタとを含む、特許請求の範囲第3
項に記載のディジタル命令プロセッサ。 - (5)プログラムカウンタを有し、各々が 「分岐条件」を決定する複数個の分岐命令を含み、各々
が指示部を有する複数個のロケーションを有する命令キ
ャッシュにストアされる、セットからの命令をサイクル
的に実行するデジタル命令プロセッサ制御の1サイクル
内で分岐を実行する方法であって; a)前記プログラムカウンタの内容物によって特定され
たロケーション指示部で分岐命令を前記キャッシュから
フェッチし、そして命令レジスタに前記命令をストアす
る段階と; b)前記命令レジスタにストアされた前記命令をデコー
ドする段階と; c)前記命令によって決定された前記分岐条件をセーブ
する段階と; d)デコード段階(c)で発生された情報および前記プ
ログラムカウンタの内容物に基づいた分岐ターゲットア
ドレスを決定する段階と; e)段階(d)で決定された前記分岐ターゲットアドレ
スから決定された前記キャッシュでのロケーションから
命令を、および段階(c)で発生された前記分岐条件情
報をフェッチする段階と;さらに f)プログラムカウンタの内容物を、段階(e)で前記
命令をフェッチするために用いられたアドレスを1だけ
増やしたものと取替える段階とを含む方法 - (6)前記命令セットは手順呼出命令をさらに含み、段
階(a)は前記手順呼出命令をフェッチすることを要求
する、1サイクルで手順を要求するための方法をさらに
含み: g)デコーディング段階(b)で発生された情報および
前記プログラムカウンタの内容物に基づいて呼出復帰ア
ドレスを決定する段階と; h)段階(g)で決定された前記呼出復帰アドレスをセ
ーブする段階とをさらに含む、特許請求の範囲第5項に
記載の1サイクル分岐方法。 - (7)各々が指示部を持った複数個のロケーションを有
する命令キャッシュにストアされた、セットからの命令
をサイクル的に実行する命令パイプラインを有するディ
ジタル命令プロセッサ制御によってインターラプトルー
チンを処理する方法であって: a)インターラプトの発生の2サイクル前に、パイプラ
イン内に置かれた命令のロケーション指示部をセーブす
る段階と; b)インターラプトの発生の1サイクル前に、パイプラ
インに置かれた命令のロケーション指示部をセーブする
段階と; c)前記インターラプトルーチンの第1の命令に制御を
転送する段階と; d)前記インターラプトルーチンから復帰する前に、段
階(a)でセーブされたロケーション指示部に位置され
た命令を前記パイプラインに対してフェッチする段階と
;さらに e)前記インターラプトルーチンから復帰する前に、段
階(b)でセーブされたロケーション指示部に位置され
た命令を前記パイプラインに対してフェッチする段階と
を含む、方法。 - (8)前記命令プロセッサ制御はプログラムカウンタお
よびデータ経路パイプラインを有し、前記命令セットは
インターラプト手順呼出命令を含み、そして転送制御段
階(c)は: c1)前記プログラムカウンタの内容物によって特定さ
れたロケーション指示部で前記キャッシュから前記イン
ターラプト手順呼出命令をフェッチし、そして命令レジ
スタに前記命令をストアする段階と; c2)前記命令レジスタにストアされた前記命令をデコ
ードする段階と; c3)デコーディング段階(c2)で発生された情報お
よび前記プログラムカウンタの内容物に基づいて分岐タ
ーゲットアドレスを決定する段階と; c4)段階(c3)で決定された前記分岐ターゲットア
ドレスから決定された前記キャッシュ内のロケーション
から命令をフェッチする段階と; c5)プログラムカウンタの内容物を、段階(c4)で
前記命令をフェッチするために用いられたアドレスを4
だけ増やしたものと取替える段階と;さらに c6)前記プログラムカウンタの内容物を、後の記憶動
作に用いるための前記データ経路パイプラインへと導伝
する段階とを含む、特許請求の範囲第7項に記載のイン
ターラプト処理方法。 - (9)f)前記インターラプトルーチンからの復帰に続
いて、段階(a)でセーブされたロケーション指示部で
前記キャッシュからフェッチし、そして命令レジスタ内
に前記命令をストアする段階と; (g)前記インターラプトルーチンからの復帰に続いて
、段階(b)でセーブされたロケーション指示部で前記
キャッシュからフェッチし、そして命令レジスタ内に前
記命令をストアする段階とをさらに含む、特許請求の範
囲第7項に記載のインターラプト処理方法。 - (10)前記命令プロセッサ制御はプログラムカウンタ
を有し、前記命令セットはインターラプト手順呼出命令
を含み、そしてフェッチング段階(f)は: f1)前記プログラムカウンタの内容物によって特定さ
れたロケーション指示部で前記キャッシュから前記間接
分岐命令をフェッチし、そして命令レジスタ内に前記命
令をストアする段階と; f2)前記命令レジスタにストアされた前記命令をデコ
ードする段階と; f3)デコード段階(f2)で発生された情報および前
記プログラムカウンタの内容物に基づいて間接分岐アド
レスを決定する段階と; f4)段階(f3)で決定された前記間接分岐アドレス
から決定された前記キャッシュのロケーションから命令
をフェッチする段階と; さらにf5)プログラムカウンタの内容物を、段階(f
4)で前記命令をフェッチするために用いられるアドレ
スを1だけ増やしたものと取替える段階とを含む、特許
請求の範囲第9項に記載のインターラプト処理方法。
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)
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)
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)
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)
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 |
-
1985
- 1985-08-30 US US06/771,327 patent/US4777587A/en not_active Expired - Lifetime
-
1986
- 1986-08-14 AT AT86306269T patent/ATE118628T1/de not_active IP Right Cessation
- 1986-08-14 DE DE3650232T patent/DE3650232T2/de not_active Expired - Lifetime
- 1986-08-14 EP EP86306269A patent/EP0219203B1/en not_active Expired - Lifetime
- 1986-08-28 JP JP61203569A patent/JP2640454B2/ja not_active Expired - Lifetime
-
1996
- 1996-10-25 JP JP8283792A patent/JP2796797B2/ja not_active Expired - Lifetime
Patent Citations (4)
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)
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 |