JP2835179B2 - 並列処理計算機 - Google Patents
並列処理計算機Info
- Publication number
- JP2835179B2 JP2835179B2 JP34034790A JP34034790A JP2835179B2 JP 2835179 B2 JP2835179 B2 JP 2835179B2 JP 34034790 A JP34034790 A JP 34034790A JP 34034790 A JP34034790 A JP 34034790A JP 2835179 B2 JP2835179 B2 JP 2835179B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- abort
- branch
- condition
- stage
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、複数の命令を同時に実行可能とした並列処
理計算機に関するものである。
理計算機に関するものである。
(従来の技術) 従来、複数の命令を同時に実行する並列処理計算機と
して、命令実行処理の速いRISC型のプロセッサが用いら
れているが、最近、さらに高速に命令を実行するものと
してスーパスカラ型のプロセッサが開発され、現在商品
化されたものでは、インテル社の80960CAが知られてい
る。
して、命令実行処理の速いRISC型のプロセッサが用いら
れているが、最近、さらに高速に命令を実行するものと
してスーパスカラ型のプロセッサが開発され、現在商品
化されたものでは、インテル社の80960CAが知られてい
る。
この場合、RISC型のプロセッサには、過去の豊富なソ
フトウェア資産が存在していることから、これらソフト
ウェアを有効活用するためにも、スーパスカラ型のプロ
セッサを開発するにあたって、これまでソフトウェアと
オブジェクトコンパチビリティを持つプロセッサを開発
することが必要になっている。
フトウェア資産が存在していることから、これらソフト
ウェアを有効活用するためにも、スーパスカラ型のプロ
セッサを開発するにあたって、これまでソフトウェアと
オブジェクトコンパチビリティを持つプロセッサを開発
することが必要になっている。
ところで、RISC型のプロセッサには、ブランチ命令に
対する実行時の無駄な動作による損失を少なくするた
め、ディレイドブランチ方式やスカッシュブランチ方式
を採用したものがあり、例えば、サンマイクロシステム
ズ社のR2000、R3000が知られている。ここで、ディレイ
ドブランチ方式は、ブライチ命令があると、このブライ
チ命令の次の命令を実行してからブランチ先命令を実行
するようにしたもので、また、スカッシュブランチ方式
は、ブライチ命令があると、ブランチノットテイクンの
とき、ブランチ命令の次の命令を実行せずに次の次の命
令を実行し、ブランチテイクンのときは、ブランチ命令
の次の命令を実行してブランチ先の命令を実行するよう
にしたものである。
対する実行時の無駄な動作による損失を少なくするた
め、ディレイドブランチ方式やスカッシュブランチ方式
を採用したものがあり、例えば、サンマイクロシステム
ズ社のR2000、R3000が知られている。ここで、ディレイ
ドブランチ方式は、ブライチ命令があると、このブライ
チ命令の次の命令を実行してからブランチ先命令を実行
するようにしたもので、また、スカッシュブランチ方式
は、ブライチ命令があると、ブランチノットテイクンの
とき、ブランチ命令の次の命令を実行せずに次の次の命
令を実行し、ブランチテイクンのときは、ブランチ命令
の次の命令を実行してブランチ先の命令を実行するよう
にしたものである。
ところが、スーパスカラ型のプロセッサは、命令実行
速度は速いが、制御方式が複雑になるため、上述のディ
レイドブランチ方式やスカッシュブランチ方式を採用し
たRISC型マシンのオブジェクトコードをそのまま実行す
ることが困難であり、これらディレイドブランチ命令や
スカッシュブランチ命令を実行するRISC型のプロセッサ
のプログラムとオブジェクトコンパチビリティを保つこ
とはできなかった。
速度は速いが、制御方式が複雑になるため、上述のディ
レイドブランチ方式やスカッシュブランチ方式を採用し
たRISC型マシンのオブジェクトコードをそのまま実行す
ることが困難であり、これらディレイドブランチ命令や
スカッシュブランチ命令を実行するRISC型のプロセッサ
のプログラムとオブジェクトコンパチビリティを保つこ
とはできなかった。
ちなみに、インテル社のスーパースカラ型プロセッサ
80960CAは、同社のRISC型プロセッサ80960KAとオブジェ
クトコンパチビリティを保っているが、80960KAは、デ
ィレイドブランチ方式やスカッシュブランチ方式を採用
していないのが現状である。
80960CAは、同社のRISC型プロセッサ80960KAとオブジェ
クトコンパチビリティを保っているが、80960KAは、デ
ィレイドブランチ方式やスカッシュブランチ方式を採用
していないのが現状である。
(発明が解決しようとする課題) このように、最近RISC型のプロセッサに代わって考え
られているスーパスカラ型プロセッサは、このままでは
ディレイドブランチ命令やスカッシュブランチ命令を実
行することができないため、これらブランチ命令を実行
可能としたRISC型プロセッサのプログラムとオブジェク
トコンパチビリティを保つことができない欠点があっ
た。
られているスーパスカラ型プロセッサは、このままでは
ディレイドブランチ命令やスカッシュブランチ命令を実
行することができないため、これらブランチ命令を実行
可能としたRISC型プロセッサのプログラムとオブジェク
トコンパチビリティを保つことができない欠点があっ
た。
本発明は、上記事情に鑑みてなされたもので、ディレ
イドブランチ命令およびスカッシュブランチ命令のいず
れも実行することができ、RISC型のプロセッサのプログ
ラムとオブジェクトコンパチビリティを保つことができ
るスーパスカラ型プログラムを有する並列処理計算機を
提供することを目的とする。
イドブランチ命令およびスカッシュブランチ命令のいず
れも実行することができ、RISC型のプロセッサのプログ
ラムとオブジェクトコンパチビリティを保つことができ
るスーパスカラ型プログラムを有する並列処理計算機を
提供することを目的とする。
[発明の構成] (課題を解決するための手段) 本発明は、複数の命令を同時に実行可能とした並列処
理計算機において、複数の命令のうちから、分岐先の命
令の実行に先だって直後の命令を実行させ得る所定のブ
ランチ命令を判断するとともに、この判断結果に基づい
て各命令にアボート条件を示すフラグを付加するフラグ
付加手段と、上記各命令に付加されたアボート条件を示
すフラグと上記ブランチ命令の成否の関係から各命令の
実行をアボートとするアボート実行手段とを具備したこ
とを特徴とする。
理計算機において、複数の命令のうちから、分岐先の命
令の実行に先だって直後の命令を実行させ得る所定のブ
ランチ命令を判断するとともに、この判断結果に基づい
て各命令にアボート条件を示すフラグを付加するフラグ
付加手段と、上記各命令に付加されたアボート条件を示
すフラグと上記ブランチ命令の成否の関係から各命令の
実行をアボートとするアボート実行手段とを具備したこ
とを特徴とする。
(作用) 本発明によれば、ディレイドブランチ命令やスカッシ
ュブランチ命令のように分岐先の命令の実行に先だって
直後の命令を実行させ得る所定のブランチ命令に基づい
て各命令に付加されるアボート条件フラグと上記ブラン
チ命令の成否の関係から各命令の実行をアボートできる
ことから、スーパースカラ型のプロセッサでも、ディレ
イドブランチ命令やスカッシュブランチ命令のようなブ
ランチ命令を実行することができるようになり、豊富な
ソフトウェア資産を有するRISC型のプロセッサのプログ
ラムとオブジェクトコンパチビリティを保つことができ
る。
ュブランチ命令のように分岐先の命令の実行に先だって
直後の命令を実行させ得る所定のブランチ命令に基づい
て各命令に付加されるアボート条件フラグと上記ブラン
チ命令の成否の関係から各命令の実行をアボートできる
ことから、スーパースカラ型のプロセッサでも、ディレ
イドブランチ命令やスカッシュブランチ命令のようなブ
ランチ命令を実行することができるようになり、豊富な
ソフトウェア資産を有するRISC型のプロセッサのプログ
ラムとオブジェクトコンパチビリティを保つことができ
る。
(実施例) 以下、本発明の一実施例を図面にしたがい説明する。
第1図は、本発明を5段パイプライン命令同時実行の
スーパスカラマシンに適用した例を示すものである。こ
こでのパイプラインは、フェッチ(F)、デコード
(D)、実行(E)、メモリアクセス(M)、ライト
(W)のステージからなっている。
スーパスカラマシンに適用した例を示すものである。こ
こでのパイプラインは、フェッチ(F)、デコード
(D)、実行(E)、メモリアクセス(M)、ライト
(W)のステージからなっている。
図において、1はフェッチ回路で、このフェッチ回路
1は、図示しないインストラクションキャッシュメモリ
をアクセスして複数の命令をフェッチするようになって
いる。
1は、図示しないインストラクションキャッシュメモリ
をアクセスして複数の命令をフェッチするようになって
いる。
フェッチ回路1にフェッチされた複数の命令は、イン
ストラクションバッファ2に送られラッチされる。ま
た、インストラクションバッファ2にラッチされた命令
は、命令供給器3に送られるとともに、条件アボート生
成回路4に送られる。
ストラクションバッファ2に送られラッチされる。ま
た、インストラクションバッファ2にラッチされた命令
は、命令供給器3に送られるとともに、条件アボート生
成回路4に送られる。
命令供給器3は、インストラクションバッファ2より
送られた命令を、各実行ユニットおよびブランチ実行ユ
ニット6にそれぞれ供給するようにしている。この場
合、実行ユニット5は、デコード(D)、実行(E)、
メモリアクセス(M)、ライト(W)の各ステージより
なっている。
送られた命令を、各実行ユニットおよびブランチ実行ユ
ニット6にそれぞれ供給するようにしている。この場
合、実行ユニット5は、デコード(D)、実行(E)、
メモリアクセス(M)、ライト(W)の各ステージより
なっている。
条件アボート生成回路4は、詳細は後述するが、実行
ユニット5およびフェッチ回路1に対する条件アボード
フラグを生成するもので、実行ユニット5に対してEス
テージ条件アボート信号481およびDステージ条件アボ
ート信号482を与え、フェッチ回路1に対してEステー
ジ条件アボート信号483を与えるようにしている。
ユニット5およびフェッチ回路1に対する条件アボード
フラグを生成するもので、実行ユニット5に対してEス
テージ条件アボート信号481およびDステージ条件アボ
ート信号482を与え、フェッチ回路1に対してEステー
ジ条件アボート信号483を与えるようにしている。
第2図は、実行ユニット5の具体的回路を示すもので
ある。
ある。
この場合、命令供給器3より供給される命令は、デコ
ード(D)ステージのデコーダ51に送られる。デコーダ
51は、命令供給器3より供給される命令をデコードして
(D)ステージのヴァリッド信号521を生成するように
している。このヴァリッド信号521は、アンド回路53の
一方の入力端子に入力される。
ード(D)ステージのデコーダ51に送られる。デコーダ
51は、命令供給器3より供給される命令をデコードして
(D)ステージのヴァリッド信号521を生成するように
している。このヴァリッド信号521は、アンド回路53の
一方の入力端子に入力される。
このアンド回路53は、他方の入力端子に与えられるア
ボード判定回路54の出力内容により、ヴァリッド信号52
1をネゲート可能にしている。
ボード判定回路54の出力内容により、ヴァリッド信号52
1をネゲート可能にしている。
アボード判定回路54は、ラッチ551にラッチされた
(D)ステージ条件アボード信号482とブランチするか
しないかを示すbranch−taken522の関係からアボードを
判定するようにしたものである。
(D)ステージ条件アボード信号482とブランチするか
しないかを示すbranch−taken522の関係からアボードを
判定するようにしたものである。
そして、アンド回路53の出力は、(E)ステージのラ
ッチ522にラッチされ、(E)ステージヴァリッド信号5
23としてアンド回路55の一方の入力端子に送られる。こ
のアンド回路55も他方の入力端子に与えられるアボード
判定回路56の出力内容により(E)ステージヴァリッド
信号523をネゲート可能にしている。
ッチ522にラッチされ、(E)ステージヴァリッド信号5
23としてアンド回路55の一方の入力端子に送られる。こ
のアンド回路55も他方の入力端子に与えられるアボード
判定回路56の出力内容により(E)ステージヴァリッド
信号523をネゲート可能にしている。
このアボード判定回路56も、上述したアボード判定回
路54と同様に、ラッチ553にラッチされた(E)ステー
ジ条件アボード信号481とブランチするかしないかを示
すbranch−taken522の関係からアボードを判定するよう
にしている。
路54と同様に、ラッチ553にラッチされた(E)ステー
ジ条件アボード信号481とブランチするかしないかを示
すbranch−taken522の関係からアボードを判定するよう
にしている。
そして、このアンド回路55の出力は、(M)ステージ
のラッチ554、(W)ステージのラッチ555を介してレジ
ストファイル57のライトイネーブル信号EWとして与えら
れる。
のラッチ554、(W)ステージのラッチ555を介してレジ
ストファイル57のライトイネーブル信号EWとして与えら
れる。
レジストファイル57は、その内容をEステージのラッ
チ556、557を介して演算部58で演算されるとともに、そ
の演算結果を(M)ステージのラッチ558、(W)ステ
ージのラッチ559を介して書込まれるようになってい
る。
チ556、557を介して演算部58で演算されるとともに、そ
の演算結果を(M)ステージのラッチ558、(W)ステ
ージのラッチ559を介して書込まれるようになってい
る。
第3図は、条件アボート生成回路4の具体的回路を示
すものである。
すものである。
この場合、インストラクションバッファ2にラッチさ
れた複数(ここでは4つ)の命令は、ブランチ命令デコ
ーダ44に送られる。
れた複数(ここでは4つ)の命令は、ブランチ命令デコ
ーダ44に送られる。
ブランチ命令デコーダ44は、インストラクションバッ
ファ2より与えられる命令についてデコードし、ディレ
イドブランチ命令、スカッシュブランチ命令、あるいは
それ以外の命令を判断するようにしている。
ファ2より与えられる命令についてデコードし、ディレ
イドブランチ命令、スカッシュブランチ命令、あるいは
それ以外の命令を判断するようにしている。
そして、ブランチ命令デコーダ44で判断された結果
は、それぞれアボート条件生成回路45、46、47に送られ
る。
は、それぞれアボート条件生成回路45、46、47に送られ
る。
ここで、アボート条件生成回路45は、ブランチ命令を
含む4つの命令のアボード条件を生成するようにしてい
る。また、アボート条件生成回路46は、ブランチ命令を
含む4つの命令の次の4つのアボード条件を生成するよ
うにしている。さらに、アボート条件生成回路47は、ブ
ランチ命令を含む4つの命令の次の次の4つのアボード
条件を生成するようにしている。
含む4つの命令のアボード条件を生成するようにしてい
る。また、アボート条件生成回路46は、ブランチ命令を
含む4つの命令の次の4つのアボード条件を生成するよ
うにしている。さらに、アボート条件生成回路47は、ブ
ランチ命令を含む4つの命令の次の次の4つのアボード
条件を生成するようにしている。
そして、アボート条件生成回路45の出力は、Eステー
ジ条件アボート信号481として出力されるとともに、マ
ルチプレクサ491を介してDステージ条件アボート信号4
82、マルチプレクサ492を介してFステージ条件アボー
ト信号483としてそれぞれ出力可能になり、アボート条
件生成回路46のは、マルチプレクサ491を介してDステ
ージ条件アボート信号482、マルチプレクサ492を介して
Fステージ条件アボート信号483としてそれぞれ出力可
能になり、アボート条件生成回路47の出力は、マルチプ
レクサ492を介してFステージ終了アボート信号483とし
て出力可能になっている。
ジ条件アボート信号481として出力されるとともに、マ
ルチプレクサ491を介してDステージ条件アボート信号4
82、マルチプレクサ492を介してFステージ条件アボー
ト信号483としてそれぞれ出力可能になり、アボート条
件生成回路46のは、マルチプレクサ491を介してDステ
ージ条件アボート信号482、マルチプレクサ492を介して
Fステージ条件アボート信号483としてそれぞれ出力可
能になり、アボート条件生成回路47の出力は、マルチプ
レクサ492を介してFステージ終了アボート信号483とし
て出力可能になっている。
この場合、マルチプレクサ491、492は、フェッチが行
われたことを示す信号501に基づいてコントロール回路5
0により制御されるが、ここでのマルチプレクサ491、49
2のコントロールアルゴリズムは、次のようになってい
る。
われたことを示す信号501に基づいてコントロール回路5
0により制御されるが、ここでのマルチプレクサ491、49
2のコントロールアルゴリズムは、次のようになってい
る。
Eステージ条件アボート信号481は、アボート条件生
成回路45により生成されるブランチ命令を含む4つの命
令の条件アボートフラグがそのまま出力される。また、
Dステージの条件アボート信号482は、ブランチ判定時
(ブランチ命令がDステージでデコードされてから、E
ステージで実行が完了するまで)に1回もフェッチが行
われないと、マルチプレクサ491を介してアボート条件
生成回路45により生成されるブランチ命令を含む4つの
命令の条件アボートフラグが出力され、ブランチ判定時
に1回フェッチが行われると、マルチプレクサ491を介
してアボート条件生成回路46により生成されるブランチ
命令を含む4つの命令の次の4つの条件アボードフラグ
が出力される。さらにFステージの条件アボート信号18
3は、ブランチ判定時に1回もフェッチが行われない
と、マルチプレクサ492を介してアボート条件生成回路4
5により生成されるブランチ命令を含む4つの命令の条
件アボートフラグが出力され、ブランチ判定時に1回フ
ェッチが行われると、マルチプレクサ492を介してアボ
ート条件生成回路46により生成されるブランチ命令を含
む4つの命令の次の4つの条件アボードフラグが出力さ
れ、ブランチ判定時に2回フェッチが行われると、マル
チプレクサ492を介してアボート条件生成回路47により
生成されるブランチ命令を含む4つの命令の次の次の4
つの条件アボードフラグが出力される。
成回路45により生成されるブランチ命令を含む4つの命
令の条件アボートフラグがそのまま出力される。また、
Dステージの条件アボート信号482は、ブランチ判定時
(ブランチ命令がDステージでデコードされてから、E
ステージで実行が完了するまで)に1回もフェッチが行
われないと、マルチプレクサ491を介してアボート条件
生成回路45により生成されるブランチ命令を含む4つの
命令の条件アボートフラグが出力され、ブランチ判定時
に1回フェッチが行われると、マルチプレクサ491を介
してアボート条件生成回路46により生成されるブランチ
命令を含む4つの命令の次の4つの条件アボードフラグ
が出力される。さらにFステージの条件アボート信号18
3は、ブランチ判定時に1回もフェッチが行われない
と、マルチプレクサ492を介してアボート条件生成回路4
5により生成されるブランチ命令を含む4つの命令の条
件アボートフラグが出力され、ブランチ判定時に1回フ
ェッチが行われると、マルチプレクサ492を介してアボ
ート条件生成回路46により生成されるブランチ命令を含
む4つの命令の次の4つの条件アボードフラグが出力さ
れ、ブランチ判定時に2回フェッチが行われると、マル
チプレクサ492を介してアボート条件生成回路47により
生成されるブランチ命令を含む4つの命令の次の次の4
つの条件アボードフラグが出力される。
次に、以上のように構成した実施例の動作を説明す
る。
る。
まず、ディレイドブランチ方式を採用したディレイド
ブランチ命令を実行する場合を説明する。
ブランチ命令を実行する場合を説明する。
ここでは、ディレイドブランチ命令を用いたアセンブ
ラコードに対して条件アボートフラグは、例えば下記の
ように付加される。
ラコードに対して条件アボートフラグは、例えば下記の
ように付加される。
つまり、ここでは、ステップ1〜3までの命令に対し
て条件アボートフラグalex(常に実行)が付加され、ス
テップ4でディレイドブランチ命令beqが与えられる
と、ステップ5のディレイ命令まで条件アボートフラグ
alex(常に実行)が付加され、ステップ6以降の命令に
対して条件アボートフラグbrad(ブランチしたらアボー
ト)が付加される。これにより、ディレイドブランチ命
令beqが与えられると、次のステップの命令を実行して
からブランチ先命令が実行されることになる。
て条件アボートフラグalex(常に実行)が付加され、ス
テップ4でディレイドブランチ命令beqが与えられる
と、ステップ5のディレイ命令まで条件アボートフラグ
alex(常に実行)が付加され、ステップ6以降の命令に
対して条件アボートフラグbrad(ブランチしたらアボー
ト)が付加される。これにより、ディレイドブランチ命
令beqが与えられると、次のステップの命令を実行して
からブランチ先命令が実行されることになる。
第4図は、スーパスカラマシンによるディレイドブラ
ンチ命令に対する具体的な動作例を示したものである。
ンチ命令に対する具体的な動作例を示したものである。
この場合、一連の命令のうち命令2がブランチ命令、
命令13がブランチ先命令、命令3がディレイ命令とな
り、命令1から3までの条件アボートフラグはalex(常
に実行)で、命令4から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。
命令13がブランチ先命令、命令3がディレイ命令とな
り、命令1から3までの条件アボートフラグはalex(常
に実行)で、命令4から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。
しかして、この場合、フェッチ回路1によりフェッチ
された複数の命令は、インストラクションバッファ2に
ラッチされるとともに、命令供給器3および条件アボー
ト生成回路4に送られる。
された複数の命令は、インストラクションバッファ2に
ラッチされるとともに、命令供給器3および条件アボー
ト生成回路4に送られる。
条件アボート生成回路4では、複数の命令をブランチ
命令デコーダ44によりデコードし、命令2がディレイド
ブランチ命令であることを判断する。そして、この判断
結果は、アボート条件生成回路45、46、47に送られる。
命令デコーダ44によりデコードし、命令2がディレイド
ブランチ命令であることを判断する。そして、この判断
結果は、アボート条件生成回路45、46、47に送られる。
すると、アボート条件生成回路45では、ブランチ命令
を含む4つの命令のアボード条件として命令1から4の
条件アボードフラグが生成され、また、アボート条件生
成回路45では、ブランチ命令を含む4つの命令の次の4
つのアボード条件として命令5から8の条件アボードフ
ラグが生成され、さらに、アボート条件生成回路47で
は、ブランチ命令を含む4つの命令の次の次の4つのア
ボード条件として命令9から12の条件アボードフラグが
生成される。
を含む4つの命令のアボード条件として命令1から4の
条件アボードフラグが生成され、また、アボート条件生
成回路45では、ブランチ命令を含む4つの命令の次の4
つのアボード条件として命令5から8の条件アボードフ
ラグが生成され、さらに、アボート条件生成回路47で
は、ブランチ命令を含む4つの命令の次の次の4つのア
ボード条件として命令9から12の条件アボードフラグが
生成される。
そして、アボート条件生成回路45で生成された命令1
から4のアボードフラグは、Eステージ条件アボート信
号481として1段目のパイプラインに出力され、アボー
ト条件生成回路46で生成された命令5から8のアボード
フラグは、マルチプレクサ491を介してDステージ条件
アボート信号482として2段目のパイプラインに出力さ
れ、アボート条件生成回路47で生成された命令8から12
のアボートフラグは、マルチプレクサ492を介してFス
テージ条件アボート信号484とし3段目のパイプライン
に出力される。
から4のアボードフラグは、Eステージ条件アボート信
号481として1段目のパイプラインに出力され、アボー
ト条件生成回路46で生成された命令5から8のアボード
フラグは、マルチプレクサ491を介してDステージ条件
アボート信号482として2段目のパイプラインに出力さ
れ、アボート条件生成回路47で生成された命令8から12
のアボートフラグは、マルチプレクサ492を介してFス
テージ条件アボート信号484とし3段目のパイプライン
に出力される。
一方、インストラクションバッファ2より命令供給器
3に複数の命令が与えられると、命令供給器3より各実
行ユニット5に命令が供給される。
3に複数の命令が与えられると、命令供給器3より各実
行ユニット5に命令が供給される。
すると、各実行ユニット5では、Dステージのデコー
ダ51で命令がデーコードされ、(D)ステージヴァリッ
ド信号521が(D)ステージのアンド回路53に、(E)
ステージヴァリッド信号523が(E)ステージのアンド
回路55に与えられるようになる。
ダ51で命令がデーコードされ、(D)ステージヴァリッ
ド信号521が(D)ステージのアンド回路53に、(E)
ステージヴァリッド信号523が(E)ステージのアンド
回路55に与えられるようになる。
この場合、命令1に対応する実行ユニット5では、E
ステージ条件アボート信号481のアボードフラグはalex
(常に実行)で、この時のbranch−taken522はブランチ
しないを示すので、この時のアボード判定回路56の出力
によりアンド回路55を通って(E)ステージヴァリッド
信号523がそのまま出力され、レジスタファイル57にラ
イトイネーブル信号として与えられ、レジスタファイル
57の内容に基づいた演算が(E)ステージの演算部58で
実行されるようになる。また、命令2のブランチ命令に
対応する実行ユニット5についても、アボードフラグは
alex(常に実行)で、この時のbranch−taken523はブラ
ンチしないを示すので、上述したと同様にして(E)ス
テージの演算が実行される。さらに、命令3のディレイ
命令に対応する実行ユニット5についても、アボードフ
ラグはalex(常に実行)で、この時のbranch−taken522
はブランチしないを示すので、上述したと同様にして
(E)ステージでの演算が実行される。そして、命令4
に対応する実行ユニット5では、アボードフラグはbran
d(ブランチしたらアボート)で、この時のbranch−tak
en522はブランチするを示すので、この時のアボード判
定回路56の出力によりアンド回路55は(E)ステージヴ
ァリッド信号523をネゲートし、命令の実行がアボート
されるようになる。
ステージ条件アボート信号481のアボードフラグはalex
(常に実行)で、この時のbranch−taken522はブランチ
しないを示すので、この時のアボード判定回路56の出力
によりアンド回路55を通って(E)ステージヴァリッド
信号523がそのまま出力され、レジスタファイル57にラ
イトイネーブル信号として与えられ、レジスタファイル
57の内容に基づいた演算が(E)ステージの演算部58で
実行されるようになる。また、命令2のブランチ命令に
対応する実行ユニット5についても、アボードフラグは
alex(常に実行)で、この時のbranch−taken523はブラ
ンチしないを示すので、上述したと同様にして(E)ス
テージの演算が実行される。さらに、命令3のディレイ
命令に対応する実行ユニット5についても、アボードフ
ラグはalex(常に実行)で、この時のbranch−taken522
はブランチしないを示すので、上述したと同様にして
(E)ステージでの演算が実行される。そして、命令4
に対応する実行ユニット5では、アボードフラグはbran
d(ブランチしたらアボート)で、この時のbranch−tak
en522はブランチするを示すので、この時のアボード判
定回路56の出力によりアンド回路55は(E)ステージヴ
ァリッド信号523をネゲートし、命令の実行がアボート
されるようになる。
以下、上述したと同様にして、命令5から8について
もDステージ条件アボート信号482のアボードフラグとb
ranch−taken522の関係により各実行ユニット5のアボ
ートが実行され、さらに命令9から12についてもFステ
ージ条件アボート信号483のアボードフラグとbranch−t
aken523の関係により各実行ユニット5での命令の実行
がアボートされ、スーパスカラマシンによるディレイド
ブランチ命令が実行できることになる。
もDステージ条件アボート信号482のアボードフラグとb
ranch−taken522の関係により各実行ユニット5のアボ
ートが実行され、さらに命令9から12についてもFステ
ージ条件アボート信号483のアボードフラグとbranch−t
aken523の関係により各実行ユニット5での命令の実行
がアボートされ、スーパスカラマシンによるディレイド
ブランチ命令が実行できることになる。
次に、第5図は、スーパスカラマシンによるディレイ
ドブランチ命令に対する他の動作例を示すものである。
ドブランチ命令に対する他の動作例を示すものである。
この場合、一連の命令のうち命令4がブランチ命令、
命令13がブランチ先命令、命令5がディレイ命令とな
り、命令1から5までの条件アボートフラグはalex(常
に実行)で、命令6から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。
命令13がブランチ先命令、命令5がディレイ命令とな
り、命令1から5までの条件アボートフラグはalex(常
に実行)で、命令6から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。
このようにしても、上述したと同様にスーパスカラマ
シンによるディレイドブランチ命令が実行できることに
なる。
シンによるディレイドブランチ命令が実行できることに
なる。
また、第6図は、スーパスカラマシンによるディレイ
ドブランチ命令に対する、さらに他の動作例を示すもの
である。
ドブランチ命令に対する、さらに他の動作例を示すもの
である。
この場合、一連の命令のうち命令3がブランチ命令、
命令13がブランチ先命令、命令4がディレイ命令とな
り、命令1から4までの条件アボートフラグはalex(常
に実行)で、命令5から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。また、
ここでは、命令3がブランチ命令であるが、命令3と命
令4の間に依存関係がある場合で、命令4が1サイクル
送れて実行されるようになる。
命令13がブランチ先命令、命令4がディレイ命令とな
り、命令1から4までの条件アボートフラグはalex(常
に実行)で、命令5から12までの条件アボートフラグは
brad(ブランチしたらアボート)になっている。また、
ここでは、命令3がブランチ命令であるが、命令3と命
令4の間に依存関係がある場合で、命令4が1サイクル
送れて実行されるようになる。
この場合、アボート条件生成回路45で生成されたアボ
ードフラグは、Eステージ条件アボート信号481として
出力されるとともに、マルチプレクサ491を介してDス
テージ条件アボート信号482として出力され、アボート
条件生成回路46で生成されたアボードフラグがマルチプ
レクサ492を介してFステージ条件アボート信号483とし
て出力されることになる。
ードフラグは、Eステージ条件アボート信号481として
出力されるとともに、マルチプレクサ491を介してDス
テージ条件アボート信号482として出力され、アボート
条件生成回路46で生成されたアボードフラグがマルチプ
レクサ492を介してFステージ条件アボート信号483とし
て出力されることになる。
このようにしても、上述したと同様にスーパスカラマ
シンによるディレイドブランチ命令が実行できることに
なる。
シンによるディレイドブランチ命令が実行できることに
なる。
次に、スカッシュブランチ方式を採用したスカッシュ
ブランチ命令を実行する場合を説明する。
ブランチ命令を実行する場合を説明する。
ここでも、ディレイドブランチ命令を用いてアセンブ
ラコードに対してその実行シーケンスが、例えば下記の
ように与えられる。
ラコードに対してその実行シーケンスが、例えば下記の
ように与えられる。
つまり、ここでは、ステップ1〜3までの命令に対し
て条件アボートフラグalex(常に実行)が付加され、ス
テップ4でスカッシュブランチ命令sbeqが与えられる
と、ステップ5の条件アボートフラグblex(ブランチし
たら実行)が付加され、ステップ6以降の命令に対して
条件アボートフラグbrad(ブランチしたらアボート)さ
れる。これにより、スカッシュブランチ命令sbeqが与え
られると、ブランチノットテイクンのときは、ブランチ
命令の次に命令を実行せずに次の次の命令を実行し、ブ
ランチテイクンのときは、ブランチ命令の次の命令を実
行してブランチ先の命令を実行するようになる。
て条件アボートフラグalex(常に実行)が付加され、ス
テップ4でスカッシュブランチ命令sbeqが与えられる
と、ステップ5の条件アボートフラグblex(ブランチし
たら実行)が付加され、ステップ6以降の命令に対して
条件アボートフラグbrad(ブランチしたらアボート)さ
れる。これにより、スカッシュブランチ命令sbeqが与え
られると、ブランチノットテイクンのときは、ブランチ
命令の次に命令を実行せずに次の次の命令を実行し、ブ
ランチテイクンのときは、ブランチ命令の次の命令を実
行してブランチ先の命令を実行するようになる。
第7図は、スーパスカラマシンによるスカッシュブラ
ンチ命令に対する具体的な動作例を示したものである。
ンチ命令に対する具体的な動作例を示したものである。
この場合、一連の命令のうち命令2がスカッシュブラ
ンチ命令、命令13がブランチ先命令、命令3がディレイ
命令となり、命令1と2の条件アボートフラグはalex
(常に実行)で、命令3の条件アボートフラグはbrex
(ブランチしたら実行)、命令4から12までの条件アボ
ートフラグはbrad(ブランチしたらアボート)になって
いる。
ンチ命令、命令13がブランチ先命令、命令3がディレイ
命令となり、命令1と2の条件アボートフラグはalex
(常に実行)で、命令3の条件アボートフラグはbrex
(ブランチしたら実行)、命令4から12までの条件アボ
ートフラグはbrad(ブランチしたらアボート)になって
いる。
しかして、この場合も、命令1、スカッシュブランチ
命令2にそれぞれ対応する実行ユニット5では、Eステ
ージ条件アボート信号481のアボードフラグはいずれもa
lex(常に実行)で、この時のbranch−taken522はブラ
ンチしないを示すので、この時のアボード判定回路56の
出力によりアンド回路55より(E)ステージヴァリッド
信号523がそのまま出力され、レジスタファイル57にラ
イトイネーブル信号として与えられ、レジスタファイル
57の内容に基づいた演算が(E)ステージの演算部58で
実行される。
命令2にそれぞれ対応する実行ユニット5では、Eステ
ージ条件アボート信号481のアボードフラグはいずれもa
lex(常に実行)で、この時のbranch−taken522はブラ
ンチしないを示すので、この時のアボード判定回路56の
出力によりアンド回路55より(E)ステージヴァリッド
信号523がそのまま出力され、レジスタファイル57にラ
イトイネーブル信号として与えられ、レジスタファイル
57の内容に基づいた演算が(E)ステージの演算部58で
実行される。
そして、命令3のディレイ命令に対応する実行ユニッ
ト5については、アボードフラグがblex(ブランチした
ら実行)であるので、この時のbranch−taken522がブラ
ンチしないブランチノットテイクンを示すものであれ
ば、命令3を実行せず命令4以降に進み、一方、branch
−taken522がブランチするブランチテイクンを示すもの
であれば、命令3を実行して命令4に進む。そして、命
令4に対応する実行ユニット5では、アボードフラグは
brad(ブランチしたらアボート)で、この時のbranch−
taken522はブランチするを示すので、これに応じたアボ
ード判定回路56の出力によりアンド回路55は(E)ステ
ージヴァリッド信号523をネゲートし命令の実行がアボ
ートされるようになる。
ト5については、アボードフラグがblex(ブランチした
ら実行)であるので、この時のbranch−taken522がブラ
ンチしないブランチノットテイクンを示すものであれ
ば、命令3を実行せず命令4以降に進み、一方、branch
−taken522がブランチするブランチテイクンを示すもの
であれば、命令3を実行して命令4に進む。そして、命
令4に対応する実行ユニット5では、アボードフラグは
brad(ブランチしたらアボート)で、この時のbranch−
taken522はブランチするを示すので、これに応じたアボ
ード判定回路56の出力によりアンド回路55は(E)ステ
ージヴァリッド信号523をネゲートし命令の実行がアボ
ートされるようになる。
以下、上述したと同様にして、命令5から8について
もDステージ条件アボート信号482のアボードフラグとb
ranch−taken522の関係により各実行ユニット5のアボ
ートが実行され、さらに命令8から12についてもFステ
ージ条件アボート信号483のアボードフラグとbranch−t
aken522の関係により各実行ユニット5での命令の実行
がアボートされるようになり、スーパスカラマシンによ
るスカッシュブランチ命令が実行できることになる。
もDステージ条件アボート信号482のアボードフラグとb
ranch−taken522の関係により各実行ユニット5のアボ
ートが実行され、さらに命令8から12についてもFステ
ージ条件アボート信号483のアボードフラグとbranch−t
aken522の関係により各実行ユニット5での命令の実行
がアボートされるようになり、スーパスカラマシンによ
るスカッシュブランチ命令が実行できることになる。
なお、本発明は上記実施例にのみ限定されず、要旨を
変更しない範囲で適宜変形して実施できる。
変更しない範囲で適宜変形して実施できる。
[発明の効果] 本発明によれば、複数の命令のうちから分岐先の命令
の実行に先だって直後の命令を実行させ得る所定のブラ
ンチ命令を判断するとともにこの判断結果に基づいて各
命令にアボート条件を示すフラグを付加し、上記各命令
に付加されたアボート条件を示すフラグと上記ブランチ
命令の成否の関係から各命令の実行をアボートするの
で、スーパースカラ型のプロセッサでも、ディレイドブ
ランチ命令やスカッシュブランチ命令のようなブランチ
命令を実行することができるようになり、RISC型のプロ
セッサのプログラムとオブジェクトコンパチビリティを
保つことができることから、豊富なソフトウェア資産を
有効に活用して、高速処理を実現することができる。
の実行に先だって直後の命令を実行させ得る所定のブラ
ンチ命令を判断するとともにこの判断結果に基づいて各
命令にアボート条件を示すフラグを付加し、上記各命令
に付加されたアボート条件を示すフラグと上記ブランチ
命令の成否の関係から各命令の実行をアボートするの
で、スーパースカラ型のプロセッサでも、ディレイドブ
ランチ命令やスカッシュブランチ命令のようなブランチ
命令を実行することができるようになり、RISC型のプロ
セッサのプログラムとオブジェクトコンパチビリティを
保つことができることから、豊富なソフトウェア資産を
有効に活用して、高速処理を実現することができる。
【図面の簡単な説明】 第1図は、本発明の一実施例の全体構成を示すブロック
図、第2図は、同実施例に用いられる実行ユニットを示
すブロック図、第3図は、同実施例に用いられる条件ア
ボート生成回路を示すブロック図、第4図乃至第7図
は、同実施例を説明するための図である。 1……フェッチ回路、2……インストラクションバッフ
ァ、3……命令供給器、4……条件アボート生成回路、
44……ブランチ命令デコーダ、45、46、47……アボート
条件生成回路、491、492……マルチプレクサ、50……コ
ントロール回路、5……実行ユニット、51……デコー
ダ、521、523……ヴァリッド信号、52、55……オアンド
回路、54、56……アボート判定回路、57……レジスタフ
ァイル。
図、第2図は、同実施例に用いられる実行ユニットを示
すブロック図、第3図は、同実施例に用いられる条件ア
ボート生成回路を示すブロック図、第4図乃至第7図
は、同実施例を説明するための図である。 1……フェッチ回路、2……インストラクションバッフ
ァ、3……命令供給器、4……条件アボート生成回路、
44……ブランチ命令デコーダ、45、46、47……アボート
条件生成回路、491、492……マルチプレクサ、50……コ
ントロール回路、5……実行ユニット、51……デコー
ダ、521、523……ヴァリッド信号、52、55……オアンド
回路、54、56……アボート判定回路、57……レジスタフ
ァイル。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−153734(JP,A) 特開 平3−269728(JP,A) 特開 昭61−109147(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38
Claims (1)
- 【請求項1】複数の命令を同時に実行可能とした並列処
理計算機において、 複数の命令のうちから、分岐先の命令の実行に先だって
直後の命令を実行させ得る所定のブランチ命令を判断す
るとともに、この判断結果に基づいて各命令にアボート
条件を示すフラグを付加するフラグ付加手段と、 上記各命令に付加されたアボート条件を示すフラグと上
記ブランチ命令の成否の関係から各命令の実行をアボー
トするアボート実行手段とを具備したことを特徴とする
並列処理計算機。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34034790A JP2835179B2 (ja) | 1990-11-30 | 1990-11-30 | 並列処理計算機 |
EP91311167A EP0488819B1 (en) | 1990-11-30 | 1991-11-29 | Conditional branch instructions execution apparatus |
DE69130757T DE69130757T2 (de) | 1990-11-30 | 1991-11-29 | Ausführungsvorrichtung für bedingte Verzweigungsbefehle |
US07/799,981 US5446849A (en) | 1990-11-30 | 1991-11-29 | Electronic computer which executes squash branching |
US08/429,103 US5617553A (en) | 1990-11-30 | 1995-04-26 | Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34034790A JP2835179B2 (ja) | 1990-11-30 | 1990-11-30 | 並列処理計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04205625A JPH04205625A (ja) | 1992-07-27 |
JP2835179B2 true JP2835179B2 (ja) | 1998-12-14 |
Family
ID=18336068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34034790A Expired - Fee Related JP2835179B2 (ja) | 1990-11-30 | 1990-11-30 | 並列処理計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2835179B2 (ja) |
-
1990
- 1990-11-30 JP JP34034790A patent/JP2835179B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04205625A (ja) | 1992-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US6510511B2 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
JP3881763B2 (ja) | データ処理装置 | |
EP0488819B1 (en) | Conditional branch instructions execution apparatus | |
US5561774A (en) | Parallel processing type processor system with trap and stall control functions | |
US20010005882A1 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
JP2507638B2 (ja) | デ―タ処理装置 | |
JPH02201651A (ja) | データ処理装置 | |
JP2987311B2 (ja) | プロセッサ及び翻訳装置 | |
EP1770507A2 (en) | Pipeline processing based on RISC architecture | |
JPH07120284B2 (ja) | データ処理装置 | |
JPH06266556A (ja) | データ処理装置 | |
JP2835179B2 (ja) | 並列処理計算機 | |
US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
JP3599499B2 (ja) | 中央処理装置 | |
JP2008299729A (ja) | プロセッサ | |
JP3146058B2 (ja) | 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法 | |
JP3394854B2 (ja) | 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ | |
EP0573071A2 (en) | A microprocessor | |
JP3739556B2 (ja) | 情報処理装置 | |
JP2856784B2 (ja) | 電子計算機 | |
JP2806093B2 (ja) | ロード・ストア処理装置 | |
US20050071830A1 (en) | Method and system for processing a sequence of instructions | |
JP2843844B2 (ja) | 並列演算処理装置 | |
JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081002 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081002 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091002 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101002 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |