JPH02211533A - 分岐命令に続く命令の選択的実行を行うためのコンピューター装置 - Google Patents

分岐命令に続く命令の選択的実行を行うためのコンピューター装置

Info

Publication number
JPH02211533A
JPH02211533A JP1270137A JP27013789A JPH02211533A JP H02211533 A JPH02211533 A JP H02211533A JP 1270137 A JP1270137 A JP 1270137A JP 27013789 A JP27013789 A JP 27013789A JP H02211533 A JPH02211533 A JP H02211533A
Authority
JP
Japan
Prior art keywords
instruction
branch
condition code
shadow
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1270137A
Other languages
English (en)
Inventor
Jr John S Yates
ジョン・エス・ヤッツ、ジュニア
Stephen J Ciavaglia
ステフェン・ジェイ・シャバグリア
Hugh Lauer
ヒュー・ラウヤー
Oppen Peter
ピーター・オープン
Richard G Bahr
リチャード・ジー・バール
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.)
Apollo Computer Inc
Original Assignee
Apollo Computer 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 Apollo Computer Inc filed Critical Apollo Computer Inc
Publication of JPH02211533A publication Critical patent/JPH02211533A/ja
Pending 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、パイプラインコンピューター装置、特に分
岐命令遅延を組み込んだパイプラインコンピューター装
置に関する。
〔従来の技術〕
パイプライン式装置は、非順次に生ずるメモリー位置へ
の条件分岐の様な突然の転送に際して性能が低下する。
リスク(RI S C)の設計者は、この様な制御不在
によって生ずる不利益を減らそうと、分岐遅延と一般に
呼ばれるが、制御の転送が複数の遅延の命令後にのみ有
効になる様にした。しかし、分岐命令の実行と、分岐目
標の命令の実行との間に行われる命令−「分岐シャドウ
命令」−はその時中央処理装置(CP U)の命令パイ
プラインの中にある。分岐の可能性があると、プログラ
ムのコンパイラと対応するコンピューターハードウェア
のせいで、分岐シャドウ命令が有用な仕事をすることは
困難となる。その結果、ノーオペレージシン命令(No
−ops)が分岐シャドウとして使われることが多くな
り、プログラムを組んだコンピューターシステムの効率
が下がる。
〔課題を解決するための手段〕
この発明による装置は、分岐した場合は命令のストリー
ム、分岐しなかった場合はその結果行われる命令の実行
に制限を加えることなく、分岐シャドウ命令を実行する
CPUとプログラムコンパイラを含む。この発明による
装置と方法は、分岐自体が決定された条件コードに選択
的に応じる一群の分岐シャドウ命令を定める。選択は、
分岐命令に応じて行われる。更にこの発明においては、
この様な分岐命令は条件コードと無関係に、又は分岐し
た場合に、選択的に実行されることも予測しうる。その
結果できるハードウェアとコンパイルしたプログラム命
令順序により、計算システムは性能が向上し、システム
プログラムの柔軟性が増す。
更にこの発明により、命令セット内の任意の命令を一つ
の命令ブリフェイスによって条件的に実行することがで
きる。例えば、原始命令から「条件付きトラップ」命令
を構成することができる。
〔実 施 例〕
分岐演算は、先行演算によって設定された条件コードを
テストする。分岐演算によってテストされた条件が満た
されると、プログラムにより分岐演算によってできた番
地に移る。CALL演算は分岐命令と同じ機能を果たす
が、これは戻りプログラムセンター(PC)を、レジス
ターに保存する。分岐演算によってテストされた条件が
満たされると、プログラムにより分岐演算の宛先オペラ
ンドの番地に移る。分岐演算は、次の三つの部分より成
る。
■)分岐述部(B CC) 2)シャドウ制御モディファイア(シャドウ)3)分岐
宛先(宛 先) 分岐述部は、分岐する前に満たすべき条件を記述する。
分岐述部には二つの種類がある。即ち、整数プロセッサ
ー条件コードに基づ(ものと、浮動小数点プロセッサー
条件コードに基づくものとである。
この発明の実施態様の一つにおいて、整数プロセッサー
条件コード(、CC5)設定した演算の結果をテストす
る分岐述部を用いる時、条件コードを設定する命令と、
それをテストできる最初の命令との間に、一つの命令遅
延が生ずる。そこで、条件コードを設定する命令の後2
番目の命令が、その条件コードをテストする分岐述部を
使用できる最初の場所となる。リスト1に例を示す。
リスト 1 oo、cc l   nop 2  bit、  シャドウ宛先 3 分岐シャドウ演算 CCsを設定する演算では、演算で「ゼロ」に設定され
たCCパイプラインテストCCsのせいで、このスロッ
トではコードをテストできない。
浮動小数点条件コードを設定する演算の結果をテストす
る分岐述部を用いる時は、コードを設定する際に遅延は
生じない。そこで、条件コードを設定する演算の直後の
演算において、条件コードをテストできる。但し分岐は
、算術演算が終わるまで立往生(ストール)する。
この発明のプロセスによるフローチャート50を図1に
示す。ここで次の命令は52でフェッチされ、54で実
行される。ここで、条件コード(CC)は命令の実行の
結果に応えて設定される。上述の様に、整数プロセッサ
ーでは次の命令が図1のフローチャート50に介入する
ことが必要である。条件コードはステップ58の表1〜
■に示す様に、分岐述部との関連でテストされる。テス
ト58からのどちらの分岐でも、次の3ステツプは分岐
シャドウの実行に関係し、58のテストの結果と無関係
にほぼ同様である。ステップ60では、分岐シャドウ命
令がフェッチされ、分岐命令に含まれるシャドウ制御修
飾ビットに従って、ステップB2でテストされる。条件
コードと分岐シャドウ制御修飾ビットを下表■に掲げる
が、これに従ってシャドウ命令はステップ84で実行さ
れる。次の順次命令はステップ6Bでフェッチされ、ス
テップ68で実行される。続くプログラム命令はフェッ
チされ続け、その後実行される。
5Bのテストの結果、分岐すると分岐シャドウ命令がス
テップ70でフェッチされ、表■のシャドウ1i1Ja
モデイフアイアに関し、条件コードがステップ72でテ
ストされる。72のテストの結果及び条件コードとシャ
ドウ制御モディファイアの値をもとに条件付けられて、
シャドウはステップ74で実行される。宛先命令は、シ
ャドウがステップ74で実行されようと、されまいと、
その後ステップ7Bでフェッチされる。宛先命令はステ
ップ7Bで実行され、次の順次命令はステップ80でフ
ェッチされる。
その後プログラムは順次実行され続ける。この発明の好
ましい実施態様においては、パイプライン中プロセッサ
ーにおいて実現される図1のプロセスを予想している。
従って、新しい命令は継続的にパイプラインにロードさ
れてフェッチされ、順次実行されるが、特に図1のフロ
ーチャート50に従う。次の命令をパイプラインにロー
ドする方が好ましいステップは、フローチャート50の
ステップの隣にアスタリスク(*)で示しである。
但し他の実施態様では、パイプラインに別の命令入力が
行われる。
この発明の実現によるハードウェアは、図2のブロック
図100に示す図1のプロセスを含む。
命令キャッシュ102は、命令メモリー(示していない
)から、メモリー管理ユニット104によってロードさ
れるが、この技術で知られるテクニックに従って操作で
きる。命令キャッシュ102は、プログラム・カウンタ
ー・ソースバス(PCSRC)で与えられる命令番地に
従って、リード104で命令をフェッチする。信号は、
レジスター106に保存され、そこで分岐選択ロジック
108と、実行装置150のファイルされたレジスター
110部のオペランド・フェッチ舎ロジックによって解
読される。ファイルレジスター110は、レジスター1
12と114J、:AとBのオペランドを供給する。そ
こに保存された信号は、算術演算装置(ALUllB)
が受は取る。ALUは結果を与え、これは結果レジスタ
〜118に保存され、更に上述の条件コード信号(CC
)を与え、これはレジスター120に保存される。この
結果は書込データと呼ばれ、更新レジスター122から
与えられる書込番地信号に従って、ファイルレジスター
110に保存される。この命令は、結果を書込む位置を
指定することがあるため、又この発明の実施態様のパイ
プライン構造を考慮して、命令解読レジスター106、
実行レジスター124(オペランドとALυ信号の発生
に対応する)、更新レジスター122から命令を順次保
存することにより、実行装置内に信号が生じて流れるの
と同期して、この命令はパイプライン内を伝播する。条
件コードは又、次の条件コードレジスター120と、現
在の条件コードレジスター12Bを具備するパイプライ
ン内を伝播し、ここで条件コード信号は命令語に含まれ
る信号に従って、マルチプレクサ−128で選択して与
えられる。条件コードの選択はこの発明と共に出願し、
参考として含める「中央プロセッサー条件コード法と装
置」と題する同時係属特許出願APOLL−107XX
において、更に詳しく述べである。結果として選択され
た条件コードは、分岐選択ロジックIO8が受は取り、
これは図1のステップ58に示す様に、分岐述部信号に
比較される。プログラム・カウンターの値は、PCソー
ス書マルチプレクサ−130による特定の信号の選択に
従って与えられるが、ここでこの様なプログラム番カウ
ンター値とは、リード132に与えられる、前のカウン
ター・プログラム値、リード134に与えられる、次の
順次命令(PC+8) 、そして分岐選択ロジック10
8の結果に従って選択される、リード13B上の分岐宛
先番地信号を含むものである。他のPC信号ソースはト
ラップとPC十移動を含むが、示されていない。PCソ
ースセレクタ130が供給する信号は、フェッチPCレ
ジスター140に保存され、命令キャッシュ102へ送
るPCSRC信号となる。
パイプライン構造の結果として、分岐シャドウ命令は命
令キャッシュ102が次の命令を出している間に、命令
解読レジスター106にロードされる。
命令解読レジスター106に現在保存された命令に含ま
れるシャドウ制御モディファイアは、分岐選択ロジック
lO8から出る信号と共に、実行装置のファイルレジス
ター110が受は取る。ここで、図1のステップ62と
72に示したテストを行って、シャドウを実行するかど
うかを決定する。行った分岐は、その後ファイルレジス
ター110が受は取り、ここでそれに従って命令が実行
される。
下表I、  n、 IIIは整数と浮動小数点条件コー
ド3をテストするのに用いられる全ての分岐述部を掲げ
たものである。
表 整数プロセッサー条件コードに対してテストした分岐述
部(以下余白) (続き) 表    ■ 浮動小数点プロセッサー条件コードに対してテストされ
た分岐述部整数プロセッサー条件コードに対してテスト
した分岐述部浮動小数点プロセッサー条件フードに対し
てテストされた分岐述部分岐に続く命令は、分岐シャド
ウ演算で、常に宛先命令がフェッチされる前にフェッチ
される。
分岐シャドウ命令を実行するかどうかは、シャドウ制御
モディファイアによって決まる。シャドウ制御モディフ
ァイアとは、ハードウェアに、分岐シャドウ命令を行う
時間を伝える分岐述部につく接尾部である。下表■に示
す通り、次の情報を伝えるシャドウ制御モディファイア
は4つある。
 a  n 表    ■ 常に分岐シャドウ命令を実行する。
分岐シャドウ命令を実行しない。
テストした条件が真で、分岐した 場合は分岐シャドウ演算を行う。
テストした条件が偽で、実行が順次 下る場合は分岐シャドウ命令を実行 する。
モディファイア、sfは、通常の(即ち68000)分
岐行動に対応する。
リスト2のコードのセグメントを考慮すること。
リスト 2 A  Bee、シャドウd;これはDの宛先をもつどの
分岐でもある。
B 次のシャドウ命令 C介硅−儂よ今々 D 分岐命令 このプログラムセグメントの命令実行の追跡は、2つの
変数によって決まる。即ち、シャドウ制御モディファイ
アと、分岐条件が満たされるかどうかである。下表Vは
、この2つの変数によって、コードセグメントの実行を
追跡する。表の中のハイフン(“−“)は、リストした
命令の実行の間の1サイクルの立往生(ストール)を表
す。例えば、A−Dは、命令AからDまでの実行を意味
するのでなく、命令Aを実行してストールを置き、その
後命令りを実行することを意味する。
分岐演算の宛先は、整数レジスターに含む番地か、PC
相対表現の何れかである。
同様にCALL演算は、目標番地をプログラム・カウン
ター(PC)にロードするが、その結果実行した次の命
令は目標番地の命令であって、メモリーで物理的に次に
あるものではない。
CALL演算は、分岐演算として同じ機能を果たすが、
更に戻りPCをレジスターに保存する。
BRANCHと同じく、CALLに続く命令は常に制御
が宛名に移る前にフェッチされる。シャドウ制御モディ
ファイアは、このシャドウ命令を実行するかどうかを決
定する。CALL演算用のシャドウ制御モディファイア
は、上表■に掲げた様に1.saか、snである。CA
LL演算の宛先は、整数レジスターかPC相対表現かに
含まれる番地となる。CALL演算の例をリスト3に示
す。
(以下余白) リスト 3 0 −ac  5tart    ;呼出すルーチンの
番地 、 22 −call 、sn (,0)  ;ルーチ
ンを呼出す nop           ;シャドウ命令ac  
5tart data 5tartstart pro
cedure ok     ;手順の入力点; ro
utine body b 、sn  [,22]      ;コーラ−に戻
るnop           ;分岐シャドウこの発
明は、同時にディスバッチした命令プロセッサーでも機
能でき、参考に含めた1988年10月7日提出の、「
多機能装置への命令の同時ディスバッチの方法と機器」
と題する同時係属特許出願APOLL−105XXで論
じている。命令を実行する時浮動小数点装置には、整数
プロセッサー(IP)信号IPNOPによって、分岐シ
ャドウの状態が伝えられる。IP  NOPは、アサー
トされるとFPUに、IP内に常駐の命令用nopをデ
ィスバッチする様に求める。
この発明の実施態様の1つによると、シャドウに関する
全てのフェッチ関連の実行とストールは、シャドウをデ
ィスパッチする前に行われる。特にメモリー管理装置(
MMU)の分岐シャドウ上のフェッチ例外は、シャドウ
が行われないとしても、行われる。パイプライン行動を
示す予約表(表■)は、以下の通りである。
(以下余白) 表 ■ 分岐シャドウ予約 前節に述べたBRANCH演算以外に、この発明はトラ
ップ戻りに影響し、トラップを有効又は無効にするのに
用いられる特権分岐演算を行わせる。これらの演算は、
トラップ制御側の効果を伴う正規のBRANCH演算で
ある。
特権BRANCH演算は、表■と■に掲げるBRANC
H述部の何れも使用できる。シャドウ制御モディファイ
アは常に、Saである。これは、BRANCH命令が必
ず実行されるということである。
特権BRANCH演算には、次の種類がある。
「ディスエイプル」は演算の解読段階の最後で、整数プ
ロセッサー状態ワード(IPSW)を、トラップビット
に設定する。一方「イントラツブ」を設定すると割込み
が禁止される。「エネイブル」は演算の解読段階の最後
で、トラップビットの整数プロセッサー状態ワード(I
PSW)をクリアする。「ノートラップ」は非同期フェ
ッチトラップが演算の解読段階で生ずるのを禁止する。
「再発行J  (RB)はRBの内容を番地として用い
、メモリー要求を発行する。メモリー要求の属性は、ト
ラップの開始キューから引き出される。普通の技術の熟
練の1つによって成される代替や変更は、この発明の範
囲内である。例えば、この発明によるプロセスに介入の
ステップを加えたり、この発明による構成に図示する様
に、命令パイプラインにレジスターを加えたりするのは
、この発明の範囲内である。更に、ここに述べる命令や
コードを変更して、分岐シャドウ命令の実行を選択する
ことも、この発明の範囲内と考えられる。この発明は、
請求の範囲以外によっては限定されるものではない。
【図面の簡単な説明】
この発明のこれらの特徴及びその他の特徴は、詳細な説
明を、図面を参照しながら読むことにより良く理解され
るだろう。但し、図1はこの発明の実施態様の一つによ
る装置の動作のフローチャートである。 図2は、この発明の実施態様の一つによる中央処理装置
(CPU)のブロック図である。 外する

Claims (5)

    【特許請求の範囲】
  1. (1)パイプライン式プロセッサーで、効率的にデータ
    の条件付き処理を行う方法で、次のステップより成る; 第一の命令を与え、前記第一の命令を実行することによ
    り、少なくとも1つの真又は偽の状態を有する条件コー
    ドをつくり; 前記第一の命令に続いて第二の命令を与え、前記条件コ
    ードの結果として、宛先命令への実行分岐を選択できる
    様にし; 前記第二の命令と、宛先命令番地がフェッチされる前に
    、前記プロセッサーの実行装置によりフェッチされるの
    に続いて、第三の命令を与え、ここで、 前記第二の命令は、更に付加された制御接尾辞を含み、 前記第三の命令は、前記制御接尾辞と前記条件コードに
    従って、選択的に実行される。
  2. (2)請求の範囲(1)の方法において、 第二の命令を与える前記のステップが、分岐述部の供給
    を含み、 第三の命令を与える前記のステップが、分岐シャドウの
    供給を含み、ここで 前記条件コードは、次のステップの少なくとも1つを備
    え、 必ず前記第三の命令を実行する様にし、 前記第三の命令を決して実行しない様にし、条件コード
    が真で、前記第二の命令が前記分岐命令を実行した場合
    、前記第三の命令を実行する様にし、 条件コードが偽で、第二の命令が分岐に到達できない場
    合、前記第三の命令を実行する。
  3. (3)請求の範囲(1)の方法は、更に次のステップを
    含む。即ち、前記第一の命令によって設定された条件コ
    ードの状態に応える第二の命令に必要な待ち時間に対応
    する多数の命令より成る前記第一及び第二の命令に介入
    する、第四の命令を与えることである。
  4. (4)請求の範囲(3)の方法において、前記第四の命
    令は、少なくとも1つのノーオペレーション命令を含む
  5. (5)コンピューター実行装置で、次のものを備えるも
    の。 第一の命令タイプの命令の実行の結果、少なくとも1つ
    の真と偽の状態を有する条件コードをつくる前記第一の
    命令タイプの命令を実行する手段;前記条件コードの状
    態の結果、宛先命令への実行分岐を与える前記第一の命
    令に続いて、第二の命令タイプの命令を実行する手段; 前記第二の命令と、宛先命令番地がフェッチされる前に
    命令がフェッチされるのに続いて、第三の命令タイプの
    命令を実行する手段; ここで、第三の命令タイプを実行する前記手段は、前記
    第二の命令に含まれる制御接尾辞に応答するものであり
    、 第三の命令タイプを実行する前記手段は、前記制御接尾
    辞と前記条件コードに従って働くことができる。
JP1270137A 1988-10-18 1989-10-17 分岐命令に続く命令の選択的実行を行うためのコンピューター装置 Pending JPH02211533A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25913088A 1988-10-18 1988-10-18
US259130 1988-10-18

Publications (1)

Publication Number Publication Date
JPH02211533A true JPH02211533A (ja) 1990-08-22

Family

ID=22983656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1270137A Pending JPH02211533A (ja) 1988-10-18 1989-10-17 分岐命令に続く命令の選択的実行を行うためのコンピューター装置

Country Status (2)

Country Link
EP (1) EP0365187A3 (ja)
JP (1) JPH02211533A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0365188B1 (en) * 1988-10-18 1996-09-18 Hewlett-Packard Company Central processor condition code method and apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization

Also Published As

Publication number Publication date
EP0365187A3 (en) 1992-04-29
EP0365187A2 (en) 1990-04-25

Similar Documents

Publication Publication Date Title
US11853763B2 (en) Backward compatibility by restriction of hardware resources
CN106406849B (zh) 提供向后兼容性的方法和系统、非暂态计算机可读介质
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
KR100616722B1 (ko) 수퍼스칼라프로세서내의파이프라인명령디스패치유닛
US20070143581A1 (en) Superscalar data processing apparatus and method
US20240036876A1 (en) Pipeline protection for cpus with save and restore of intermediate results
US6735687B1 (en) Multithreaded microprocessor with asymmetrical central processing units
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
US6983359B2 (en) Processor and method for pre-fetching out-of-order instructions
US7831979B2 (en) Processor with instruction-based interrupt handling
US6405300B1 (en) Combining results of selectively executed remaining sub-instructions with that of emulated sub-instruction causing exception in VLIW processor
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US20080141252A1 (en) Cascaded Delayed Execution Pipeline
US6988121B1 (en) Efficient implementation of multiprecision arithmetic
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
US6851044B1 (en) System and method for eliminating write backs with buffer for exception processing
KR20230077251A (ko) 벡터 연산을 위한 데이터 처리 방법 및 장치
US6453412B1 (en) Method and apparatus for reissuing paired MMX instructions singly during exception handling
JPH02211533A (ja) 分岐命令に続く命令の選択的実行を行うためのコンピューター装置
US8966230B2 (en) Dynamic selection of execution stage
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
JP3547562B2 (ja) マイクロプロセッサ
US20050071830A1 (en) Method and system for processing a sequence of instructions
JP2856784B2 (ja) 電子計算機