JP2508907B2 - 遅延分岐命令の制御方式 - Google Patents
遅延分岐命令の制御方式Info
- Publication number
- JP2508907B2 JP2508907B2 JP2248238A JP24823890A JP2508907B2 JP 2508907 B2 JP2508907 B2 JP 2508907B2 JP 2248238 A JP2248238 A JP 2248238A JP 24823890 A JP24823890 A JP 24823890A JP 2508907 B2 JP2508907 B2 JP 2508907B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- delayed
- signal
- condition
- 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.)
- Expired - Lifetime
Links
- 230000003111 delayed effect Effects 0.000 title claims description 37
- 238000000034 method Methods 0.000 title claims description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012360 testing method 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 or 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)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は命令をパイプライン的に処理する情報処理装
置における遅延分岐命令の処理方式に関する。
置における遅延分岐命令の処理方式に関する。
従来、命令をパイプライン的に実行する処理方式で
は、遅延分岐(delayed branch)とよばれる分岐方式が
採られることがある。例えば、命令フェッチ(F)、命
令デコード(D)、命令実行(E)の3段階のパイプラ
インで命令の処理が行なわれる場合を考えてみる(第5
図参照)。分岐命令のデコードがDステージで完了して
から次の分岐先がフェッチ(Fステージ)されるため、
少なくとも1ステージ分のパイプラインの空き(遅延ス
ロット)が発生する。遅延分岐は分岐命令のすぐ後の番
地にある演算命令を遅延スロットに挿入することで、無
駄なパイプラインの空きを除去する方式であり、これに
より性能の向上(特にループなど)が見込まれる。
は、遅延分岐(delayed branch)とよばれる分岐方式が
採られることがある。例えば、命令フェッチ(F)、命
令デコード(D)、命令実行(E)の3段階のパイプラ
インで命令の処理が行なわれる場合を考えてみる(第5
図参照)。分岐命令のデコードがDステージで完了して
から次の分岐先がフェッチ(Fステージ)されるため、
少なくとも1ステージ分のパイプラインの空き(遅延ス
ロット)が発生する。遅延分岐は分岐命令のすぐ後の番
地にある演算命令を遅延スロットに挿入することで、無
駄なパイプラインの空きを除去する方式であり、これに
より性能の向上(特にループなど)が見込まれる。
従来の遅延分岐方式は、大きく次の3つの方式に分類
できる。
できる。
無条件遅延分岐:全ての分岐命令において、その次の
命令が実行される。RISCプロセッサR2000などで用いら
れている[KANE87参照(Gerry Kane,“MIPS R2000 RISC
Architecture Hall,"Prentice Hall,1987)]。
命令が実行される。RISCプロセッサR2000などで用いら
れている[KANE87参照(Gerry Kane,“MIPS R2000 RISC
Architecture Hall,"Prentice Hall,1987)]。
指定遅延分岐:ある分岐命令においては、次命令の実
行を回避したい場合もある。遅延分岐であるか否かを指
定するビットを命令の中に持つことで、これを解決でき
る。DSPであるTI320C30などで用いられている。条件分
岐と無条件分岐の区別はない[PAPA8812参照(Panos Pa
pamichalis and Ray Simar,Jr.,“The TMS320C30 Float
ing−Point Digital Signal Processor,IEEE Micro,Vo
l.8,No.6,pp.13-29,Dec.,1988)]。
行を回避したい場合もある。遅延分岐であるか否かを指
定するビットを命令の中に持つことで、これを解決でき
る。DSPであるTI320C30などで用いられている。条件分
岐と無条件分岐の区別はない[PAPA8812参照(Panos Pa
pamichalis and Ray Simar,Jr.,“The TMS320C30 Float
ing−Point Digital Signal Processor,IEEE Micro,Vo
l.8,No.6,pp.13-29,Dec.,1988)]。
条件遅延分岐:無条件分岐については、次命令の実行
を行なうか否かを命令で指定でき、かつ条件分岐命令の
場合は、次命令の実行が命令の指定と分岐条件に依存す
るようなもの。
を行なうか否かを命令で指定でき、かつ条件分岐命令の
場合は、次命令の実行が命令の指定と分岐条件に依存す
るようなもの。
ここで、条件遅延分岐の場合の従来例であるRISCプロ
セッサSPARCについて説明する[GARN8803参照(Robert
B.Garner,et al,“The Scalable Processor Architectu
re(SPARC)",Digest of Papers,COMPCON'88,The compu
tor society of The IEEE,1988)]。
セッサSPARCについて説明する[GARN8803参照(Robert
B.Garner,et al,“The Scalable Processor Architectu
re(SPARC)",Digest of Papers,COMPCON'88,The compu
tor society of The IEEE,1988)]。
第6図はSPARCにおける遅延分岐禁止ビット(a bit)
と、条件の成立・不成立が遅延分岐に与える影響を示し
たものである。SPARC方式の特徴は、a=1の場合、条
件成立時に遅延分岐が実行されることである。この効用
は条件分岐命令による後方分岐でループを実現する場合
に現われる。この効果を第7図によって説明する。も
し、条件成立時にのみ実行される命令がアドレスDに対
して書けるなら、ループの先頭アドレスLOOPにある分岐
命令以外の命令はアドレスDにコピーでき、ループの先
頭アドレスをLOOP'とすることができる。これにより、
ループの動的実行ステップ数を1つ減らすことができ、
ループ回数が大きい場合の性能向上に役立つ。さらに、
ループ終了時にアドレスDをスキップすることで、余計
な命令実行を取除くことができる。
と、条件の成立・不成立が遅延分岐に与える影響を示し
たものである。SPARC方式の特徴は、a=1の場合、条
件成立時に遅延分岐が実行されることである。この効用
は条件分岐命令による後方分岐でループを実現する場合
に現われる。この効果を第7図によって説明する。も
し、条件成立時にのみ実行される命令がアドレスDに対
して書けるなら、ループの先頭アドレスLOOPにある分岐
命令以外の命令はアドレスDにコピーでき、ループの先
頭アドレスをLOOP'とすることができる。これにより、
ループの動的実行ステップ数を1つ減らすことができ、
ループ回数が大きい場合の性能向上に役立つ。さらに、
ループ終了時にアドレスDをスキップすることで、余計
な命令実行を取除くことができる。
SPARC方式は、a=0の場合、条件の成立・不成立に
拘わらず遅延分岐を実行する。これは、他の2つの分岐
方式の場合も同様であるといえる。しかし、次に述べる
if-then-else節による場合分け処理においては、この遅
延分岐は必ずしもよい効果をもたらさない。
拘わらず遅延分岐を実行する。これは、他の2つの分岐
方式の場合も同様であるといえる。しかし、次に述べる
if-then-else節による場合分け処理においては、この遅
延分岐は必ずしもよい効果をもたらさない。
例えば、第8図のように、多くの判定を実行しながら
も前記分岐で場合分けを行なう処理を考える。もし、条
件分岐命令が常時遅延分岐を伴うのであれば、条件Aと
条件Bを例外的な事象として除外するプログラムは第8
図のようになる。アドレスADLYおよびアドレスBDLYは、
いずれも例外事象のための処理(then節)の第1命令で
あり、通常のシーケンスはこのような遅延スロットによ
り処理が遅れてしまう。一方、通常の遅延分岐ではない
分岐命令でこの処理を書けば、第9図のようになる。こ
のような例外事象のテストと除外は、ループの内部で出
現することが多く、通常のシーケンスの短縮が性能向上
の点で重要である。
も前記分岐で場合分けを行なう処理を考える。もし、条
件分岐命令が常時遅延分岐を伴うのであれば、条件Aと
条件Bを例外的な事象として除外するプログラムは第8
図のようになる。アドレスADLYおよびアドレスBDLYは、
いずれも例外事象のための処理(then節)の第1命令で
あり、通常のシーケンスはこのような遅延スロットによ
り処理が遅れてしまう。一方、通常の遅延分岐ではない
分岐命令でこの処理を書けば、第9図のようになる。こ
のような例外事象のテストと除外は、ループの内部で出
現することが多く、通常のシーケンスの短縮が性能向上
の点で重要である。
SPARCでは、then節を通常シーケンス、else節を例外
シーケンスに割り当てることで、上述の性能の問題を回
避できる。しかし、この場合は通常シーケンスが分岐命
令で常時飛ばされることになり、アセンブリ言語レベル
でのプログラムの読み易さを著しく損うことになる。
シーケンスに割り当てることで、上述の性能の問題を回
避できる。しかし、この場合は通常シーケンスが分岐命
令で常時飛ばされることになり、アセンブリ言語レベル
でのプログラムの読み易さを著しく損うことになる。
このように、従来の遅延分岐方式は、条件分岐命令の
2つの代表的な用いられかたである、ループの実現と場
合分けとの両方に対して、うまく適合していないという
欠点を有している。
2つの代表的な用いられかたである、ループの実現と場
合分けとの両方に対して、うまく適合していないという
欠点を有している。
本発明では、ループの実現には条件付き遅延分岐を用
い、場合分けの実現には遅延分岐を用いないようにする
ことによって、遅延分岐を最も効果的に利用できるよう
にすることを目的としている。
い、場合分けの実現には遅延分岐を用いないようにする
ことによって、遅延分岐を最も効果的に利用できるよう
にすることを目的としている。
本発明は分岐命令に含まれる遅延分岐制御ビットによ
って前記分岐命令の次の命令を実行するか否かを決定す
る遅延分岐命令の制御方式において、前記分岐命令を無
条件分岐と条件分岐とに分けて解読する第1の手段と、
分岐条件の成立・不成立を示す条件成立信号を生成する
第2の手段と、前記分岐命令の次の命令を実行するか否
かを示す遅延命令成立指示信号を生成する第3の手段と
を備え、前記第1の手段において前記分岐命令が条件分
岐命令であると判断された場合、前記第3の手段におい
て前記遅延命令実行指示信号が前記遅延分岐制御ビット
の信号と前記条件成立信号との排他的論理和によって生
成される。
って前記分岐命令の次の命令を実行するか否かを決定す
る遅延分岐命令の制御方式において、前記分岐命令を無
条件分岐と条件分岐とに分けて解読する第1の手段と、
分岐条件の成立・不成立を示す条件成立信号を生成する
第2の手段と、前記分岐命令の次の命令を実行するか否
かを示す遅延命令成立指示信号を生成する第3の手段と
を備え、前記第1の手段において前記分岐命令が条件分
岐命令であると判断された場合、前記第3の手段におい
て前記遅延命令実行指示信号が前記遅延分岐制御ビット
の信号と前記条件成立信号との排他的論理和によって生
成される。
次に、本発明について図面を参照して説明する。
本発明の一実施例を示す第1図を参照すると、遅延分
岐方式を実行することのできる命令処理装置は、フェッ
チ用命令カウンタ101、マルチプレクサ(選択器)111、
インクリメンタ(+1)112、命令メモリ113、命令無効
化フラグラッチ121、デコード用命令カウンタ122、命令
語ラッチ123、アドレス計算用ベース/インデクスレジ
スタ124、分岐実行判定回路131、分岐条件判定回路13
2、命令デコーダ133、分岐アドレス計算回路134、命令
デコーダ135、データアドレス計算回路136、デコード済
み命令ラッチ141、命令実行用データレジスタ142、デー
タアドレスレジスタ143、命令実行用演算器151、データ
メモリ152、および命令実行結果ステータスレジスタ161
から構成されている。
岐方式を実行することのできる命令処理装置は、フェッ
チ用命令カウンタ101、マルチプレクサ(選択器)111、
インクリメンタ(+1)112、命令メモリ113、命令無効
化フラグラッチ121、デコード用命令カウンタ122、命令
語ラッチ123、アドレス計算用ベース/インデクスレジ
スタ124、分岐実行判定回路131、分岐条件判定回路13
2、命令デコーダ133、分岐アドレス計算回路134、命令
デコーダ135、データアドレス計算回路136、デコード済
み命令ラッチ141、命令実行用データレジスタ142、デー
タアドレスレジスタ143、命令実行用演算器151、データ
メモリ152、および命令実行結果ステータスレジスタ161
から構成されている。
この命令処理装置は3段パイプラインによって実行さ
れるものである。パイプラインの各ステージは同期をと
るためのラッチで区切られる。101,121,122,123,124,14
1,142,143,161は各々そのようなラッチであると考えて
よい。フェッチ用命令カウンタ101の値に従って命令メ
モリ113の内容がアクセスされ、命令語がラッチ123に入
力される。命令カウンタ101の値はインクリメンタ112に
よって次命令のアドレスを示すよう準備され、マルチプ
レクサ111へ送られる。フェッチ用命令カウンタ101の内
容はデコード用命令カウンタ122へも送られる。分岐ア
ドレス計算回路134ではカウンタ122、アドレス計算用レ
ジスタ124、およびラッチ123にある命令語の一部を用い
て、命令カウンタ相対などの分岐アドレス計算を実行す
る。その結果は、マルチプレクサ111に送られる。マル
チプレクサ111では分岐実行判定回路131の出力結果に基
づき、次命令アドレスおよび分岐先アドレスのいずれを
フェッチ用命令カウンタ101に入れるかを決定する。
れるものである。パイプラインの各ステージは同期をと
るためのラッチで区切られる。101,121,122,123,124,14
1,142,143,161は各々そのようなラッチであると考えて
よい。フェッチ用命令カウンタ101の値に従って命令メ
モリ113の内容がアクセスされ、命令語がラッチ123に入
力される。命令カウンタ101の値はインクリメンタ112に
よって次命令のアドレスを示すよう準備され、マルチプ
レクサ111へ送られる。フェッチ用命令カウンタ101の内
容はデコード用命令カウンタ122へも送られる。分岐ア
ドレス計算回路134ではカウンタ122、アドレス計算用レ
ジスタ124、およびラッチ123にある命令語の一部を用い
て、命令カウンタ相対などの分岐アドレス計算を実行す
る。その結果は、マルチプレクサ111に送られる。マル
チプレクサ111では分岐実行判定回路131の出力結果に基
づき、次命令アドレスおよび分岐先アドレスのいずれを
フェッチ用命令カウンタ101に入れるかを決定する。
分岐命令のデコードは分岐命令の次の命令のフェッチ
と同時に実行されるため、分岐先のフェッチはその次の
タイミング、すなわち第5図で示されたタイミングで行
なわれることになる。命令デコード133はラッチ123の内
容の一部に基づいて命令をデコードする。特に、ここで
は、少なくとも次の(1)〜(4)の信号を生成するも
のとする。このうち、最初の信号(1)は、デコード済
み命令ラッチ141へと転送される。その他の信号は分岐
実行判定回路131に転送される。
と同時に実行されるため、分岐先のフェッチはその次の
タイミング、すなわち第5図で示されたタイミングで行
なわれることになる。命令デコード133はラッチ123の内
容の一部に基づいて命令をデコードする。特に、ここで
は、少なくとも次の(1)〜(4)の信号を生成するも
のとする。このうち、最初の信号(1)は、デコード済
み命令ラッチ141へと転送される。その他の信号は分岐
実行判定回路131に転送される。
(1) 算術論理演算の種類を指定する信号 (2) 無条件分岐命令であることを示す信号 (3) 条件分岐命令であることを示す信号 (4) 遅延分岐指定信号 また、命令デコーダ135はラッチ123の内容の一部に基
づいて命令をデコードする。特に、ここでは、少なくと
も次の(5),(6)の信号を生成するものとする。こ
のうち、後者の信号(6)は、分岐条件判定回路132に
転送される。
づいて命令をデコードする。特に、ここでは、少なくと
も次の(5),(6)の信号を生成するものとする。こ
のうち、後者の信号(6)は、分岐条件判定回路132に
転送される。
(5) 命令実行用データレジスタ142の選択信号 (6) 条件分岐命令の場合、命令で指定された条件を
示す信号 データアドレス計算回路136はラッチ123とアドレス計
算用レジスタ124の内容に基づいて、データメモリ152の
アドレスを計算する。その結果は、データアドレスレジ
スタ143にラッチされる。命令実行用演算器151はデコー
ド済み命令ラッチ141で指定された命令をデコーダ135で
指示された命令実行用データレジスタ142の内容に対し
て実行する。その結果は、最びデータレジスタ142、ま
たは命令実行結果ステータスレジスタ161に書き込まれ
る。データメモリ152はアドレスレジスタ143によって指
示されたアドレスによってリードアクセスされ、その内
容を命令実行用データレジスタ142に書き込むか、また
はデータレジスタ142から読み出された内容をその中に
書き込む。
示す信号 データアドレス計算回路136はラッチ123とアドレス計
算用レジスタ124の内容に基づいて、データメモリ152の
アドレスを計算する。その結果は、データアドレスレジ
スタ143にラッチされる。命令実行用演算器151はデコー
ド済み命令ラッチ141で指定された命令をデコーダ135で
指示された命令実行用データレジスタ142の内容に対し
て実行する。その結果は、最びデータレジスタ142、ま
たは命令実行結果ステータスレジスタ161に書き込まれ
る。データメモリ152はアドレスレジスタ143によって指
示されたアドレスによってリードアクセスされ、その内
容を命令実行用データレジスタ142に書き込むか、また
はデータレジスタ142から読み出された内容をその中に
書き込む。
分岐条件判定回路132では、命令デコーダ135およびス
テータスレジスタ161の内容から条件分岐命令で指定さ
れた条件(less than)などが成立したかどうかを判定
するための回路である。この回路出力は分岐実行判定回
路131に送られる。この分岐実行判定回路131は第2図に
詳細構成を示すように、判定回路132から送られた条件
成立判定信号176と、命令デコーダ133から送られた無条
件分岐命令デコード信号173、条件分岐命令デコード信
号174、遅延分岐制御信号175とより、分岐実行決定信号
171と遅延命令実行決定信号172とを生成する。このう
ち、分岐実行決定信号171については、従来の方式と差
異がない。つまり、信号171はORゲート181とANDゲート1
82で生成されるが、この動作機能は無条件分岐命令、ま
たは条件分岐命令でかつ条件が成立したとき分岐が実行
されるというものである。もう一方の遅延命令実行決定
信号172が本発明の特徴である。この信号172の生成部
は、ORゲート183、ANDゲート184,185、XOR(排他的論理
和)ゲート186、インバータ187で構成されるが、この機
能は第3図に示した真理値に基づくものである。すなわ
ち、ANDゲート185が無条件分岐の場合、ANDゲート184が
条件分岐の場合に対応し、ORゲート183がこれらの場合
の論理和を求めるのに用いられている。特に、条件分岐
の場合、a bitに対応する選択分岐制御信号175と条件成
立判定信号176との排他的論理和がXORゲート186で実行
される。信号172は第1図に示された命令無効化フラグ
ラッチ121にラッチされる。その結果、ラッチ121の内容
に従って分岐命令に続く命令のデコード時に、その命令
を実行するかどうかを決定することができる。例えば、
ラッチ121の内容は命令デコーダ133に伝えられ、デコー
ドされる命令を無効化することができる。このようにし
て、遅延分岐の実行が制御される。
テータスレジスタ161の内容から条件分岐命令で指定さ
れた条件(less than)などが成立したかどうかを判定
するための回路である。この回路出力は分岐実行判定回
路131に送られる。この分岐実行判定回路131は第2図に
詳細構成を示すように、判定回路132から送られた条件
成立判定信号176と、命令デコーダ133から送られた無条
件分岐命令デコード信号173、条件分岐命令デコード信
号174、遅延分岐制御信号175とより、分岐実行決定信号
171と遅延命令実行決定信号172とを生成する。このう
ち、分岐実行決定信号171については、従来の方式と差
異がない。つまり、信号171はORゲート181とANDゲート1
82で生成されるが、この動作機能は無条件分岐命令、ま
たは条件分岐命令でかつ条件が成立したとき分岐が実行
されるというものである。もう一方の遅延命令実行決定
信号172が本発明の特徴である。この信号172の生成部
は、ORゲート183、ANDゲート184,185、XOR(排他的論理
和)ゲート186、インバータ187で構成されるが、この機
能は第3図に示した真理値に基づくものである。すなわ
ち、ANDゲート185が無条件分岐の場合、ANDゲート184が
条件分岐の場合に対応し、ORゲート183がこれらの場合
の論理和を求めるのに用いられている。特に、条件分岐
の場合、a bitに対応する選択分岐制御信号175と条件成
立判定信号176との排他的論理和がXORゲート186で実行
される。信号172は第1図に示された命令無効化フラグ
ラッチ121にラッチされる。その結果、ラッチ121の内容
に従って分岐命令に続く命令のデコード時に、その命令
を実行するかどうかを決定することができる。例えば、
ラッチ121の内容は命令デコーダ133に伝えられ、デコー
ドされる命令を無効化することができる。このようにし
て、遅延分岐の実行が制御される。
第4図は分岐実行判定回路131の別の構成を示す図で
ある。同図において、188はインバータを表わす。第2
図との相違点は信号175の正負論理が逆転していること
である。この回路131を実現する真理値は、第3図の上
段(a=1)と下段(a=0)を、それぞれa=0,a=
1と読み替えることで得られる。
ある。同図において、188はインバータを表わす。第2
図との相違点は信号175の正負論理が逆転していること
である。この回路131を実現する真理値は、第3図の上
段(a=1)と下段(a=0)を、それぞれa=0,a=
1と読み替えることで得られる。
また、第2図に示す回路131のインバータ187を取除く
ことにより、無条件分岐に対してのみ信号175の意味を
替えた変形例や、第2図および第4図に示す2つのイン
バータ187,188を設けることで、この正負論理が逆であ
るような変形例を考えることもできる。
ことにより、無条件分岐に対してのみ信号175の意味を
替えた変形例や、第2図および第4図に示す2つのイン
バータ187,188を設けることで、この正負論理が逆であ
るような変形例を考えることもできる。
本発明の遅延分岐命令の制御方式を用いることによ
り、条件分岐命令の2つの代表的な用いられかたである
ループの実現と場合分けとの両方に適合できる分岐命令
を提供することができる。つまり、ループの実現には条
件付き遅延分岐を用い、場合分けの実現には遅延分岐を
用いないようにすることによって、遅延分岐を最も効果
的に利用できる。
り、条件分岐命令の2つの代表的な用いられかたである
ループの実現と場合分けとの両方に適合できる分岐命令
を提供することができる。つまり、ループの実現には条
件付き遅延分岐を用い、場合分けの実現には遅延分岐を
用いないようにすることによって、遅延分岐を最も効果
的に利用できる。
第1図は本発明の一実施例における遅延分岐方式を実行
することのできる命令処理装置の構成を示す図である。 101:フェッチ用命令カウンタ、111:マルチプレクサ、11
2:インクリメンタ、113:命名メモリ、121:命令無効化フ
ラグラッチ、122:デコード用命令カウンタ、123:命令語
ラッチ、124:アドレス計算用ベース/インデクスレジス
タ、131:分岐実行判定回路、132:分岐条件判定回路、13
3:命令デコーダ、134:分岐アドレス計算回路、135:命令
デコーダ、136:データアドレス計算回路、141:デコード
済み命令ラッチ、142:命令実行用データレジスタ、143:
データアドレスレジスタ、151:命令実行用演算器、152:
データメモリ、161:命令実行結果ステータスレジスタ。 第2図は第1図中の分岐実行判定回路の詳細を示す構成
図である。 171:分岐実行決定信号、172:遅延命令実行決定信号、17
3:無条件分岐命令デコード信号、174:条件分岐命令デコ
ード信号、175:遅延分岐制御信号、176:条件成立判定信
号、181:ORゲート、182:ANDゲート、183:ORゲート、18
4,185:ANDゲート、186:XORゲート(排他的論理和ゲー
ト)、187:インバータ。 第3図は遅延命令実行決定信号(172)を決定する真理
値を表わす図である。 第4図は分岐実行判定回路の他の構成例を示す図であ
る。 第5図は命令のパイプライン処理における遅延スロット
の存在を示す図である。 第6図は従来の条件遅延分岐の方式の真理値を表わす図
である。 第7図は第6図の方式により最適化されるプログラムル
ープを表わす図である。 第8図は第6図の方式により複雑になった場合分け処理
プログラムを表わす図である。 第9図は遅延分岐を用いないときの場合分け処理プログ
ラムを表わす図である。
することのできる命令処理装置の構成を示す図である。 101:フェッチ用命令カウンタ、111:マルチプレクサ、11
2:インクリメンタ、113:命名メモリ、121:命令無効化フ
ラグラッチ、122:デコード用命令カウンタ、123:命令語
ラッチ、124:アドレス計算用ベース/インデクスレジス
タ、131:分岐実行判定回路、132:分岐条件判定回路、13
3:命令デコーダ、134:分岐アドレス計算回路、135:命令
デコーダ、136:データアドレス計算回路、141:デコード
済み命令ラッチ、142:命令実行用データレジスタ、143:
データアドレスレジスタ、151:命令実行用演算器、152:
データメモリ、161:命令実行結果ステータスレジスタ。 第2図は第1図中の分岐実行判定回路の詳細を示す構成
図である。 171:分岐実行決定信号、172:遅延命令実行決定信号、17
3:無条件分岐命令デコード信号、174:条件分岐命令デコ
ード信号、175:遅延分岐制御信号、176:条件成立判定信
号、181:ORゲート、182:ANDゲート、183:ORゲート、18
4,185:ANDゲート、186:XORゲート(排他的論理和ゲー
ト)、187:インバータ。 第3図は遅延命令実行決定信号(172)を決定する真理
値を表わす図である。 第4図は分岐実行判定回路の他の構成例を示す図であ
る。 第5図は命令のパイプライン処理における遅延スロット
の存在を示す図である。 第6図は従来の条件遅延分岐の方式の真理値を表わす図
である。 第7図は第6図の方式により最適化されるプログラムル
ープを表わす図である。 第8図は第6図の方式により複雑になった場合分け処理
プログラムを表わす図である。 第9図は遅延分岐を用いないときの場合分け処理プログ
ラムを表わす図である。
Claims (1)
- 【請求項1】分岐命令に含まれる遅延分岐制御ビットに
よって前記分岐命令の次の命令を実行するか否かを決定
する遅延分岐命令の制御方式において、前記分岐命令を
無条件分岐と条件分岐とに分けて解読する第1の手段
と、分岐条件の成立・不成立を示す条件成立信号を生成
する第2の手段と、前記分岐命令の次の命令を実行する
か否かを示す遅延命令成立指示信号を生成する第3の手
段とを備え、前記第1の手段において前記分岐命令が条
件分岐命令であると判断された場合、前記第3の手段に
おいて前記遅延命令実行指示信号が前記遅延分岐制御ビ
ットの信号と前記条件成立信号との排他的論理和によっ
て生成されることを特徴とする遅延分岐命令の制御方
式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2248238A JP2508907B2 (ja) | 1990-09-18 | 1990-09-18 | 遅延分岐命令の制御方式 |
EP19910115861 EP0476628A3 (en) | 1990-09-18 | 1991-09-18 | Pipelined data processing system capable of processing delayed branch instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2248238A JP2508907B2 (ja) | 1990-09-18 | 1990-09-18 | 遅延分岐命令の制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04127237A JPH04127237A (ja) | 1992-04-28 |
JP2508907B2 true JP2508907B2 (ja) | 1996-06-19 |
Family
ID=17175216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2248238A Expired - Lifetime JP2508907B2 (ja) | 1990-09-18 | 1990-09-18 | 遅延分岐命令の制御方式 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0476628A3 (ja) |
JP (1) | JP2508907B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0810518B1 (en) * | 1996-05-30 | 2004-03-17 | Matsushita Electric Industrial Co., Ltd. | Method and circuit for delayed branch control |
TW373149B (en) | 1997-07-02 | 1999-11-01 | Matsushita Electric Ind Co Ltd | Program control method |
GB2343973B (en) * | 1998-02-09 | 2000-07-12 | Mitsubishi Electric Corp | Data processing device for scheduling conditional operation instructions in a program sequence |
JP3881763B2 (ja) * | 1998-02-09 | 2007-02-14 | 株式会社ルネサステクノロジ | データ処理装置 |
US6862563B1 (en) | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
ATE251776T1 (de) * | 1999-05-13 | 2003-10-15 | Arc Internat U S Holdings Inc | Verfahren und vorrichtung zum steuern eines sprungverzögerungsschlitzes in einem pipelineprozessor |
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
AU7098500A (en) * | 1999-09-01 | 2001-03-26 | Intel Corporation | Branch instruction for processor |
WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
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 |
US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
JP2007287186A (ja) * | 2007-08-09 | 2007-11-01 | Denso Corp | Risc型cpu,コンパイラ及びマイクロコンピュータ |
US20150227371A1 (en) * | 2014-02-12 | 2015-08-13 | Imagination Technologies Limited | Processors with Support for Compact Branch Instructions & Methods |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4755966A (en) * | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
-
1990
- 1990-09-18 JP JP2248238A patent/JP2508907B2/ja not_active Expired - Lifetime
-
1991
- 1991-09-18 EP EP19910115861 patent/EP0476628A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH04127237A (ja) | 1992-04-28 |
EP0476628A3 (en) | 1993-09-29 |
EP0476628A2 (en) | 1992-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
KR930008686B1 (ko) | 정보 처리장치 | |
JP2508907B2 (ja) | 遅延分岐命令の制御方式 | |
US3728692A (en) | Instruction selection in a two-program counter instruction unit | |
US20010021970A1 (en) | Data processor | |
US5446849A (en) | Electronic computer which executes squash branching | |
US6981131B2 (en) | Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction | |
JPH1124929A (ja) | 演算処理装置およびその方法 | |
US7552313B2 (en) | VLIW digital signal processor for achieving improved binary translation | |
JPH04309131A (ja) | 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 | |
US5689694A (en) | Data processing apparatus providing bus attribute information for system debugging | |
EP0093430B1 (en) | Pipeline data processing system | |
US5479622A (en) | Single cycle dispatch delay in a multiple instruction dispatch mechanism of a data processing system | |
EP0094535B1 (en) | Pipe-line data processing system | |
US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
US7003649B2 (en) | Control forwarding in a pipeline digital processor | |
US6230258B1 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
JPH1091441A (ja) | プログラム実行方法およびその方法を利用した装置 | |
US7191432B2 (en) | High frequency compound instruction mechanism and method for a compare operation in an arithmetic logic unit | |
US5895497A (en) | Microprocessor with pipelining, memory size evaluation, micro-op code and tags | |
US5978925A (en) | System for improving processing efficiency in a pipeline by delaying a clock signal to a program counter and an instruction memory behind a system clock | |
US6807625B1 (en) | Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions | |
JP3512707B2 (ja) | マイクロコンピュータ | |
JPH06131180A (ja) | 命令処理方式および命令処理装置 |