JPH0520066A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH0520066A
JPH0520066A JP3203980A JP20398091A JPH0520066A JP H0520066 A JPH0520066 A JP H0520066A JP 3203980 A JP3203980 A JP 3203980A JP 20398091 A JP20398091 A JP 20398091A JP H0520066 A JPH0520066 A JP H0520066A
Authority
JP
Japan
Prior art keywords
instruction
data
branch
boost
basic block
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
JP3203980A
Other languages
English (en)
Inventor
Chikako Ikenaga
知嘉子 池永
Hideki Ando
秀樹 安藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3203980A priority Critical patent/JPH0520066A/ja
Priority to US07/883,948 priority patent/US5396640A/en
Priority to DE4218622A priority patent/DE4218622C2/de
Publication of JPH0520066A publication Critical patent/JPH0520066A/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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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

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)【要約】 【目的】 ブースティング方式の並列計算機の並列度を
増加させ、計算機の性能を向上させる。 【構成】 分岐命令から分岐命令までを一単位とする複
数の基本ブロックからなる命令群のある基本ブロック1
00aの下位の基本ブロック100b,100cに属す
る命令を、上位の基本ブロックに移動させ、該移動され
た命令を上記上位の基本ブロックに含まれる命令と並列
に命令コードの順に実行(発行)していくものにおい
て、分岐先(テイクン)の下位基本ブロック100b及
び分岐先とならない(ノットテイクン)下位基本ブロッ
ク100cの両方から命令を上位の基本ブロックに移動
させるようにした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の命令を並列実
行することが可能な並列計算機に関し、特に分岐先命令
の予測実行を行うブースティング方式を改良した並列計
算機、及びブースティングを行うものにおいて、参照デ
ータのバイパス制御及びスコアボーディングを可能とで
きる並列計算機に関するものである。
【0002】
【従来の技術】計算機の命令並列度の増加に伴い、より
多くの命令を同時に実行できるようになった。しかし、
基本ブロックに含まれる命令数、即ち分岐から分岐まで
の命令数は4命令程度といわれており、このため命令並
列度を高くすることが困難である。命令の並列実行度を
向上して計算機を有効に使うための方式として、例え
ば、IEEE インターナショナル シンポジウム コ
ンピュータ アーキテクチャ論文集(1990年5月)
に発表された、ブースティング方式というものがある。
ブースティング方式とは、ある基本ブロックの下位の基
本ブロックに属する命令を上位の基本ブロックに移動さ
せ、プロセッサにより、移動先の基本ブロックの命令と
移動された命令(以下ブースト命令と称する)を並列に
命令コードの順に実行(発行)してゆき、移動先の基本
ブロックの分岐の成否に従って、ブースト命令で既に発
行された命令の実行結果を有効化,あるいは無効化する
ことで分岐先命令の予測実行を実現する方式である。
【0003】図19は従来のブースティング方式の依存
グラフを示す図であり、図19(a)はブースト前、図1
9(b) はブースト後をそれぞれ示す。図において、10
0a,100b,100cはそれぞれ分岐命令から分岐
命令までを1単位とする基本ブロックであり、上位の基
本ブロック100aの分岐命令により下位の基本ブロッ
ク100b又は100cの何れかに分岐される。また、
図20は従来のブースティングを行う並列計算機のアー
キテクチャを示す図であり、図において、1は命令を格
納する命令メモリ、2はデータを格納するデータメモリ
である。3a,3bはレジスタファイル,及びシャドウ
レジスタファイルであり、データを一時的に格納するメ
モリであり命令デコードステージ5,及びライトバック
ステージ8からアクセスすることができる。4は命令フ
ェッチステージであり、命令メモリ1より命令をフェッ
チする。5は命令デコードステージであり、フェッチさ
れた命令をデコードし、命令の実行が可能ならば命令を
実行ステージ6に投入、即ち命令を発行する。実行ステ
ージ6は、演算命令の実行及びメモリアクセスのための
アドレス計算を行う。7はメモリアクセスステージであ
り、ロードあるいはストア命令を実行する。8はライト
バックステージであり、演算結果,及びロードデータを
レジスタファイルに書き戻す。9a,9bはストアバッ
ファ,及びシャドウストアバッファであり、データメモ
リ2に格納するアドレス及びデータを一時的に格納する
メモリである。
【0004】図21は並列計算機の動作タイミングを与
える2相クロックを示す図であり、図に示す1サイクル
ごとに1ステージずつ処理が移行する。
【0005】従来のブースティングは以下のルールに基
づいて行われる。即ち、(1) ブーストできる命令はメモ
リアクセス命令及び演算命令である。(2) ブースト命令
であるかそうでないかは命令コードにおいて明に示す。
(3) ブースティングは分岐先の下位基本ブロック(テイ
クン)か分岐先でない下位基本ブロック(ノットテイク
ン)のどちらか一方からのみ行う。
【0006】ブースティングを実現するためのハードウ
ェアの特徴の1つとして、図20に示すような、レジス
タファイルとストアバッファの二重化が上げられる。図
20に示すように従来のハードウェアはレジスタファイ
ル3a,シャドウレジスタファイル3b,およびストア
バッファ9a,シャドウストアバッファ9bを備えてい
る。これは分岐の成否の決定により無効となるべきブー
スト命令、即ち本来実行されてはならない無効なブース
ト命令が、分岐の成否が決定されていない段階において
未決定なブースト命令として実行されることで、記憶状
態を変更してしまうことがないようにするためである。
【0007】未決定なブースト命令による記憶状態の変
更は通常のレジスタファイル,ストアバッファに書き込
まれずシャドウレジスタファイル,シャドウストアバッ
ファに書きこまれる。シャドウ側に書きこまれたデータ
は分岐の方向が定まった時点で有効化する。
【0008】図22は従来のパイプライン式計算機のバ
イパス動作を説明するための図であり、図において、図
20と同一符号は同一又は相当部分である。また10は
各ステージのデータを実行ステージ6にバイパスするた
めのバス11を制御するバイパス制御回路である。
【0009】図23はパイプラインの内部回路を示す図
である。図において、21はレジスタファイル、22は
アドレス比較部、23,24はそれぞれ実行ステージ,
メモリアクセスステージの命令の出力データの格納先で
あるデスティネーションアドレスを保持する第1,第2
のデスティネーション保持用レジスタ、26は演算実行
部、27,28はそれぞれ実行ステージ,メモリアクセ
スステージの演算結果を保持する第1,第2のデータレ
ジスタ、25はデータの選択回路である。
【0010】図24はアドレス比較部22の内部回路の
一例を示す図である。アドレス比較部では命令デコーダ
より与えられたソースアドレスsrc1,src2と先行する命
令のデスティネーションのアドレスA1,A2を入力と
し、src1と各々のデスティネーションアドレスA1,A
2またsrc2とA1,A2を比較し、選択回路制御のため
の信号(アドレスが一致しているか不一致かを示す)を
出力する。
【0011】図25は選択回路25の構成の一例を示す
図である。18,19はそれぞれ演算器の入力データを
選択するためのバスで、バス18はデータs1-data を演
算実行部に転送するためのバス(s1-bus)、バス19は
データs2-data を演算実行部に転送するためのバス(s2
-bus)である。この選択回路ではs1-bus,s2-busに出力
するデータをアドレス比較部22から供給された制御信
号に従って、アドレスが一致している場合その一致して
いるアドレスのデータを選択する。またs1-busに出力さ
れるデータの選択を制御する制御信号が全て不一致の場
合、レジスタファイル21から供給されるデータdata1
を選択し、s2-busに出力されるデータの選択を制御する
制御信号が全て不一致の場合、レジスタファイル21か
ら供給されるデータdata2を選択する。
【0012】アドレス比較部22は命令デコーダより与
えられた2つの参照データのアドレスであるソースアド
レスsrc1,src2と第1,第2のデスティネーション保持
用レジスタ23,24に保持された先行する命令の出力
データの格納先であるデスティネーションアドレスA
1,A2を入力とし、これらのアドレスを比較し、デー
タ選択回路25に対し制御信号を出力する。データ選択
回路25はレジスタファイル21からの出力data1,da
ta2及び第1,第2のデータレジスタ27,28に保持
されているデータD1,D2を入力とし、アドレス比較
部22より与えられた制御信号に従って演算実行部26
に入力するデータs1-data ,s2-data を選択する。これ
により、各ステージのデータの実行ステージへのバイパ
スが実行される。
【0013】図26は従来のパイプライン式計算機のス
コアボーディング機能を説明するための構成図である。
図において、図20,図22と同一符号は同一または相
当部分である。また12はスコアボードであり、レジス
タファイルのデータを管理するためのメモリを持ち、そ
の制御回路を含む。
【0014】図26に示すようにレジスタファイル3へ
の書込みは実行の最後で行われる。そのためまだ実行が
完了していない命令のデータを続く命令が使用する場
合、誤ったデータを使用してしまう場合がある。このよ
うなことを避けるためにパイプライン式計算機のレジス
タファイルにはスコアボーディングという機能を設けて
いる。レジスタファイルの書込みを行う命令はスコアボ
ードに印をつけ(登録)、後続の命令がそのレジスタを
読み出して最新でない正しくないデータを使用すること
がないように制御する。また書込みが終了した時点でス
コアボードの印を解除する(登録解除)。
【0015】図27はスコアボードの構成を示す図であ
る。以下、スコアボードの動作を説明する。スコアボー
ドは命令デコードステージよりレジスタの読出アドレ
ス、書込みアドレスを入力する。入力データに従って書
込みが行われるレジスタには印をつけ、レジスタのデー
タが後続の命令で使用されないように登録する。またレ
ジスタのデータの読出に対しては読み出したいレジスタ
がロックさているか否かを調べ、登録,未登録のデータ
に従ってデータ正誤信号を出力する。またライトバック
ステージからは書込みアドレスを受け、書込みが終了し
た時点でスコアボード印を消去し登録を解除する。
【0016】
【発明が解決しようとする課題】従来の並列計算機は以
上のように構成されており、ブースティングを分岐先の
下位基本ブロック(テイクン)か分岐先でない下位基本
ブロック(ノットテイクン)のどちらか一方からのみ行
うようにしているためブーストできる命令が少なく、十
分に命令の並列実行度を向上できないという問題点があ
った。また並列度を増すための演算器などの複数化に伴
い、ハードウェアが大きくなってきているが、従来の並
列計算機ではブースティングを実現するためにレジスタ
ファイル,ストアバッファなどを二重持ちする構成をと
っているため、さらにハードウェアが大きくなり、1チ
ップに入らなくなるという問題点もあった。
【0017】また、従来のブースティングを行わない計
算機のバイパス制御は、上述のようにソースアドレスと
デスティネーションアドレスの比較結果のみに基づいて
行うように構成されていたので、ブースティングに対応
できないという問題点があった。
【0018】また、従来のブースティングを行わない計
算機のスコアボードは、上述のように構成されていたの
で、ブースティングに対応できないという問題点があっ
た。
【0019】この発明は上記のような問題点を解消する
ためになされたもので、並列計算機の並列実行度を向上
することを目的とする。また、この発明は、ブースティ
ングを行う並列計算機のハードウェアを縮小することを
目的とする。また、この発明は、ブースティング方式の
計算機におけるデータバイパスを実現することを目的と
する。また、この発明は、ブースティング方式の計算機
におけるスコアボーディングを実現することを目的とす
る。
【0020】
【課題を解決するための手段】この発明に係る並列計算
機は、ブースティングを、分岐先の下位基本ブロック
(テイクン),分岐先でない下位基本ブロック(ノット
テイクン)の両方から行うようにしたものである。
【0021】また、この発明に係る並列計算機は、ブー
ストできる範囲を、分岐が決定するサイクルよりも、ブ
ーストしている命令が記憶状態を書き換えるステージと
分岐が決定するステージのサイクルの差分だけ前までに
制限してブースティングを行うようにしたものである。
【0022】また、この発明に係る並列計算機は、下位
基本ブロックの命令を上位基本ブロックにブースティン
グを行うものにおいて、参照データのアドレスと先行す
る命令の出力データのアドレスとを比較し、これらのア
ドレスの一致,不一致を示す第1の制御信号を出力する
アドレス比較回路と、データを参照する側の命令のブー
スト命令であるか否かを示すブースティングビットと先
行する命令のブースト命令であるか否かを示すブーステ
ィングビットとを比較し、データを参照する側の命令が
ブースト命令でない場合はブースト命令でない先行命令
のデータを、データを参照する側の命令がブースト命令
である場合はその命令の種類と一致した先行命令および
ブースト命令でない先行命令のデータを参照するように
制御することを示す第2の制御信号を出力するブースト
比較回路と、上記第1,第2の制御信号に基づいてデー
タを選択するデータ選択回路とを備えたものである。
【0023】また、この発明に係る並列計算機は、下位
基本ブロックの命令を上位基本ブロックにブースティン
グを行うものにおいて、ブースト命令でない命令用,及
びブースト命令用のスコアボードと、命令の種類により
対応するスコアボードに登録,登録解除を行い、分岐が
決定したときに分岐方向に対応したブースト命令用のス
コアボードを有効としてその登録内容をブースト命令で
ない命令用のスコアボードに付加し、かつすべてのスコ
アボードを同一の状態にするスコアボード管理回路と、
命令の種類によって対応するスコアボードを参照し、読
み出したいレジスタが登録されているならば誤り、登録
されていないならば正しいとする信号を出力するデータ
正誤信号生成回路とを備えたものである。
【0024】
【作用】この発明においては、ブースティングを、分岐
先の下位基本ブロック(テイクン),分岐先でない下位
基本ブロック(ノットテイクン)の両方から行う構成と
したから、並列に実行できるブースト命令の数を増加さ
せることができ、並列度を増加させ計算機の性能を向上
させることができる。
【0025】また、この発明においては、ブーストする
命令に制限を持たせず、分岐先の下位基本ブロック(テ
イクン),分岐先でない下位基本ブロック(ノットテイ
クン)の両方から行うものにおいて、ブーストできる範
囲を分岐が決定するサイクルよりも、ブーストしている
命令が記憶状態を書き換えるステージと分岐が決定する
ステージのサイクル差分だけ前までに制限したから、記
憶状態を書き換えるまでに分岐が決定し、無効な命令に
よってメモリを書き換えることがなくなり、レジスタフ
ァイル,ストアバッファを二重持ちする必要がなくなり
ハードウェアを縮小することができ、制御回路も簡単化
することができる。
【0026】また、この発明においては、ブースティン
グを行う並列計算機において、アドレス比較回路により
参照データのアドレスと先行する命令の出力データのア
ドレスとを比較し、これらのアドレスの一致,不一致を
示す第1の制御信号を出力し、ブースト比較回路により
データを参照する側の命令のブースト命令であるか否か
を示すブースティングビットと先行する命令のブースト
命令であるか否かを示すブースティングビットとを比較
し、データを参照する側の命令がブースト命令でない場
合はブースト命令でない先行命令のデータを、データを
参照する側の命令がブースト命令である場合はその命令
の種類と一致した先行命令およびブースト命令でない先
行命令のデータを参照するように制御することを示す第
2の制御信号を出力し、これら第1,第2の制御信号に
基づいてデータ選択回路においてデータを選択する構成
としたから、ブースティング方式の計算機におけるデー
タバイパスを実現できる。
【0027】また、この発明においては、ブースティン
グを行う並列計算機において、ブースト命令でない命令
用,及びブースト命令用のスコアボードを設け、スコア
ボード管理回路により命令の種類により対応するスコア
ボードに登録,登録解除を行い、分岐が決定したときに
分岐方向に対応したブースト命令用のスコアボードを有
効としてその登録内容をブースト命令でない命令用のス
コアボードに付加し、かつすべてのスコアボードを同一
の状態とし、データ正誤信号生成回路により命令の種類
によって対応するスコアボードを参照し、読み出したい
レジスタが登録されているならば誤り、登録されていな
いならば正しいとする信号を出力するようにしたから、
ブースティング方式の計算機におけるスコアボーディン
グを実現できる。
【0028】
【実施例】以下、この発明の実施例を図について説明す
る。図1は本発明の第1の実施例による並列計算機のブ
ースティング方式の依存グラフを示す図であり、図1
(a)はブースト前、図1(b) はブースト後をそれぞれ示
す。図において、100a,100b,100cはそれ
ぞれ分岐命令から分岐命令までを1単位とする基本ブロ
ックであり、上位の基本ブロック100aの分岐命令に
より下位の基本ブロック100b又は100cの何れか
に分岐される。
【0029】図2は本第1の実施例による並列計算機の
アーキテクチャを示す図である。図において、1は命令
を格納する命令メモリ、2はデータを格納するデータメ
モリである。3はデータを一時的に格納するレジスタフ
ァイルで、メモリで構成され、命令デコードステージ
5,ライトバックステージ8からアクセスすることがで
きる。4は命令フェッチステージであり命令メモリより
命令をフェッチする。5は命令デコードステージであ
り、フェッチされた命令をデコードし、命令の実行が可
能ならば命令を次の実行ステージ6に投入する。実行ス
テージ6は演算命令の実行及びメモリアクセスのための
アドレス計算を行う。7はメモリアクセスステージであ
り、ロードあるいはストア命令をを実行する。8はライ
トバックステージであり、演算結果,及びロードデータ
をレジスタファイルに書き戻す。13はブースト制御回
路であり、ブースト命令の無効化,ブースティングの制
御を行う。また図3は本実施例で用いる命令レジスタの
構成を示す図である。
【0030】本実施例におけるブースティングは以下の
ルールに基づいて行われる。即ち、(1) ブーストできる
命令はメモリアクセス命令及び演算命令とする。(2) ブ
ースト命令はテイクン側,ノットテイクン側であること
を命令コードにおいて明に示す。(3) ブースト命令をお
くことのできる範囲は、分岐が決定するサイクルの前か
ら、ブーストしている命令が記憶状態を書き換えるステ
ージと分岐が決定するステージのサイクル差のサイクル
数だけ前までに制限する。即ち、メモリロード命令また
は演算命令の場合は分岐が実行されるサイクルの2サイ
クル前まで、メモリストア命令の場合は分岐が実行され
るサイクルの1サイクル前までと限定する。
【0031】ルール(2) の実現には、例えば図4に示す
ように命令コードに拡張子を付加すればよい。ルール
(3) に基づいてブースティングを行った例を図5に示
す。図5に示すように、下位の基本ブロックのストア命
令sw.tは上位の基本ブロックの分岐命令○branch の1
サイクル前以前には置かれず、またロード命令lw.nある
いは演算命令or.t等は上位の基本ブロックの分岐命令○
branch の2サイクル前以前には置かれない。ブースト
命令をおく範囲をこのように制限することで、ブースト
命令によりメモリが書き換えられる前に、分岐が決定す
るため、無効な命令によりメモリが書き換えられること
がなくなる。したがって、レジスタファイルおよびスト
アバッファを二重化する必要がなくなり、ハードウェア
の縮小,制御回路の簡単化を図ることができる。
【0032】次にブースト制御回路の動作について説明
する。図6はブースト制御回路の動作を説明するための
図である。ブースト制御回路には命令デコードステージ
から分岐が未決定であるか、テイクン側に決定したか、
ノットテイクン側に決定したかを表す信号bunki ,命令
デコードステージ,実行ステージ,メモリアクセステー
ジ,ライトバックステージの命令レジスタの内容(id.i
nst ,exc.inst,mem.inst,及びwb.inst )が与えられ
る。ブースト制御回路では命令デコードステージの命令
レジスタの内容(id.inst)と信号bunki より、図7に従
って命令デコードステージの命令が無効になったことを
示す(分岐が決定し、かつ命令が実行されない基本ブロ
ックからのブースト命令の場合)信号id.inst.avail.of
f を出力し、またブースティングビットをオフする(分
岐が決定したとき)信号id.boost.offを出力する。また
実行ステージ,メモリアクセスステージ,ライトバック
ステージの命令レジスタの内容(exc.inst,men.inst,
及びwb.inst)により図7,図8に従って信号,各命令レ
ジスタの命令が無効になったことを示す信号exc.inst.a
vail.off,mem.inst.avail.off,及びwb.inst.avail.of
f を出力し、またブースティングビットをオフするため
の信号exc.boost.off ,mem.boost.off ,及びwb.boos
t.offを出力する。
【0033】またブースト制御回路の出力信号をうけた
命令デコードステージでは、id.inst.avail.off がオン
の場合、すなわち分岐方向か決定し、ブーストされた命
令を実行する必要がなくなった場合なので命令は発行し
ない。またid.boost.offがオンの場合命令のブースティ
ングビットをオフする。また実行ステージ、メモリアク
セスステージ,ライトバックステージでは出力信号に従
って命令の無効化,命令のブースティングビットのオフ
を行う。
【0034】このように本実施例では、テイクンの基本
ブロックとノットテイクンの基本ブロックの両方から命
令をブーストする構成としたから、並列実行度を向上す
ることができる。
【0035】次に本発明の第2の実施例について説明す
る。図9は本発明の第2の実施例による並列計算機のパ
イプラインの内部回路を示す図である。図において21
はレジスタファイル、22はアドレス比較部、23,2
4はそれぞれ実行ステージ,メモリアクセスステージの
命令の出力データの格納アドレスであるデスティネーシ
ョンアドレスを保持する第1及び第2のデスティネーシ
ョンアドレス保持用レジスタ、26は演算実行部、2
7,28はそれぞれ実行ステージ,メモリアクセスステ
ージの演算結果を保持する第1及び第2のデータレジス
タ、25はデータの選択回路である。また、20はブー
スト比較部、29,30はそれぞれ実行ステージ,メモ
リアクセスステージの命令を保持する第1及び第2の命
令保持レジスタである。
【0036】また、図10は本第2の実施例による並列
計算機のアーキテクチャを示す図である。図において、
図2と同一符号は同一または相当部分である。14はバ
イパス制御回路であり、各ステージのデータを実行ステ
ージにバイパスするためのバス15を制御する。本実施
例の並列計算機は上記第1の実施例による計算機と同様
の方式でブースティングを行うものである。また、図1
1は本実施例で用いられる命令レジスタの構成を示す図
である。
【0037】本実施例におけるバイパスの制御は図9中
のアドレス比較回路22からの第1の制御信号(アドレ
スの一致,不一致を表す)とブースト命令のためのブー
スト比較回路20からの第2の制御信号に基づきデータ
選択回路25において行う。
【0038】アドレス比較回路22の動作は従来のもの
と同様である。即ち、命令デコーダより与えられたソー
スアドレスsrc1,src2と先行する命令のデスティネーシ
ョンのアドレスA1,A2を入力とし、src1と各々のデ
スティネーションアドレスA1,A2またsrc2とA1,
A2を比較し、選択回路制御のための信号(アドレスが
一致しているか不一致かを示す)を出力する。
【0039】また、ブースト比較回路20では命令レジ
スタ29,30に格納された先行する命令のブースティ
ングビットB2,及びB3とレジスタファイルを参照す
る命令のブースティングビットB1を比較し、図12の
論理に従ってデータをバイパスするか否かを制御する信
号(bypass-avail) を生成する。
【0040】図13は本実施例で用いるデータ選択回路
の内部回路を示す図である。データ選択回路25ではア
ドレス比較回路22からの第1の制御信号とブースト比
較回路20からの第2の制御信号(bypass-avail) に基
づいて、アドレスが一致しており、かつbypass-availが
バイパスデータを参照することを示しているとき(bypa
ss-avail=1)バイパスデータを選択し、アドレスが一
致していないか、bypass-availがバイパスデータを参照
しないことを示しているときにはバイパスデータを参照
しない。
【0041】このように、本実施例では、アドレス比較
回路により、参照データのアドレスと先行する命令の出
力データのアドレスとを比較し、これらのアドレスの一
致,不一致を示す第1の制御信号を出力し、ブースト比
較回路により、データを参照する側の命令のブースティ
ングビットと先行する命令のブースティングビットとを
比較し、データを参照する側の命令がブースト命令でな
い場合はブースト命令でない先行命令のデータを、デー
タを参照する側の命令がブースト命令である場合はその
命令の種類と一致した先行命令およびブースト命令でな
い先行命令のデータを参照するように制御することを示
す第2の制御信号を出力し、これら第1,第2の制御信
号に基づいてデータ選択回路においてデータを選択する
構成としたから、ブースティング方式の計算機における
データバイパスを実現できる。
【0042】なお、上記実施例では、ブースティングを
テイクン,ノットテイクンの両方の基本ブロックから行
う並列計算機に適用したものを示したが、いずれか一方
のみからブースティングを行う方式のものにも適用でき
ることはいうまでもない。
【0043】次に本発明の第3の実施例について説明す
る。図15は本発明の第3の実施例による並列計算機の
アーキテクチャを示す図である。図において、図2,図
10と同一符号は同一または相当部分であり、16はス
コアボードである。命令デコードステージ5は、フェッ
チされた命令をデコードし、命令の実行が可能であれば
命令を実行ステージ6に投入するとともに、命令オペコ
ード,読み出しアドレス,分岐決定情報をスコアボード
16に出力する。ここで、命令デコードステージ5は、
スコアボード16からデータの正誤信号を受け取り、デ
ータが正しいときのみ命令を実行ステージ6に投入す
る。ライトバックステージ8は、実行ステージ6での演
算結果,及びメモリアクセスステージ7でのロードデー
タをレジスタファイル3に書き戻すとともに、スコアボ
ード16に書き込みが終了したことを示す登録解除信号
を出力する。スコアボード16は、レジスタファイルの
データを管理するためのメモリ及びこのメモリの制御回
路を含む。なお、本実施例の並列計算機は上記第1の実
施例による計算機と同様の方式でブースティングを行う
ものである。
【0044】図14は本発明の第3の実施例による並列
計算機のスコアボードの構成を示す図である。本実施例
のスコアボードはブースト命令でない命令用31,ノッ
トテイクンのブースト命令用32,テイクンのブースト
命令用33の3個用意する。また34はスコアボード登
録管理回路、35はデータ正誤信号生成回路、36は分
岐制御回路である。本実施例ではスコアボード管理回路
はスコアボード登録管理回路34及び分岐制御回路36
で構成される。
【0045】次にそれぞれの回路の動作について説明す
る。スコアボードへの登録及び登録解除はスコアボード
登録管理回路34で行う。スコアボード登録管理回路3
4は、命令デコードステージの命令のブーストビット
(id.boost),書込みアドレス(id.w.addr)をライトバ
ックステージの命令のブーストビット(wb.boost) ,書
込みアドレス(wb.w.addr)を入力とし、ブースト命令で
ない命令、ノットテイクン側のブースト命令,テイクン
側のブースト命令に分け図16に従って登録,登録解除
をそれぞれのスコアボードに対して行う。
【0046】データの正誤信号は命令がブースト命令で
ない(id.boost=0)ならブースト命令でない命令用の
スコアボード31を参照して生成し、ノットテイクン側
のブースト命令(id.boost=n)ならノットテイクン側
のブースト命令用のスコアボード32を参照し、テイク
ン側のブースト命令(id.boost=t)ならテイクン側ブ
ースト命令用33のスコアボードを参照して生成する。
どの場合もデータ正誤信号生成回路35によって読み出
したいレジスタが登録されているならば(読出アドレス
read,addr によって参照)誤り「1」、登録されていな
いなら正しい「0」とする信号を生成し出力する。命令
の種類と参照するスコアボートの対応表を図17にまと
めておく。
【0047】分岐が決定したときには分岐情報信号(i
d.branch)が命令デコードステージより与えられ、分岐
制御回路36によって分岐がノットテイクン側に決定し
たときにはノットテイクン側のブースト命令用のスコア
ボード32に登録されているレジスタをブースト命令で
ない命令用のスコアボード31に登録する。そしてノッ
トテイクン側のブースト命令用のスコアボード32,テ
イクン側のブースト命令用のスコアボード33もブース
ト命令でない命令用のスコアボード31と同一の状態に
する。また分岐がテイクン側に決定したときはテイクン
側のブースト命令用のスコアボード32に登録されてい
るレジスタをブースト命令でない命令用のスコアボード
31に登録し、ノットテイクン側のブースト命令用のス
コアボード32,テイクン側のブースト命令用のスコア
ボード33もブースト命令でない命令用のスコアボード
31と同一の状態にする。以上の動作を図18にまとめ
る。
【0048】このように、本実施例では、ブースト命令
でない命令用,ノットテイクンのブースト命令用,及び
テイクンのブースト命令用の3つのスコアボードを設
け、命令の種類により対応するスコアボードに登録,登
録解除を行い、分岐が決定したときに分岐方向に対応し
たブースト命令用のスコアボードを有効としてその登録
内容をブースト命令でない命令用のスコアボードに付加
し、かつすべてのスコアボードを同一の状態にするスコ
アボード管理回路と、命令の種類によって対応するスコ
アボードを参照し、読み出したいレジスタが登録されて
いるならば誤り、登録されていないならば正しいとする
信号を出力するデータ正誤信号生成回路とを備えた構成
としたから、ブースティング方式の計算機におけるスコ
アボーディングを実現できる。
【0049】なお、上記実施例では、ブースティングを
テイクン,ノットテイクンの両方の基本ブロックから行
う並列計算機に適用したものを示したが、いずれか一方
のみからブースティングを行う方式のものにも適用でき
ることはいうまでもない。
【0050】
【発明の効果】以上のように、この発明によれば、ブー
ストする命令に制限を持たせず、分岐先の基本ブロック
(テイクン)、以下に続く基本ブロック(ノットテイク
ン)の両方から可能としたので、並列に実行できるブー
スト命令の数を増加させることができ、並列度を増加さ
せ計算機の性能を向上することができる効果がある。
【0051】また、この発明によれば、ブーストできる
範囲を分岐が決定するサイクルの前からブーストしてい
る命令が記憶状態を書き換えるステージと分岐が決定す
るステージのサイクルの差のサイクル数だけ前までに制
限したので、ブースト命令が記憶状態を書き換えるまで
に分岐が決定し、無効な命令によってメモリを書き換え
ることがなくなり、レジスタファイル,ストアバッファ
を二重持ちする必要がなくなりハードウェアを縮小する
ことができる効果がある。
【0052】また、この発明によれば、ブースティング
を行う並列計算機において、アドレス比較回路により参
照データのアドレスと先行する命令の出力データのアド
レスとを比較し、これらのアドレスの一致,不一致を示
す第1の制御信号を出力し、ブースト比較回路によりデ
ータを参照する側の命令のブースト命令であるか否かを
示すブースティングビットと先行する命令のブースト命
令であるか否かを示すブースティングビットとを比較
し、データを参照する側の命令がブースト命令でない場
合はブースト命令でない先行命令のデータを、データを
参照する側の命令がブースト命令である場合はその命令
の種類と一致した先行命令およびブースト命令でない先
行命令のデータを参照するように制御することを示す第
2の制御信号を出力し、これら第1,第2の制御信号に
基づいてデータ選択回路においてデータを選択する構成
としたから、ブースティング方式の計算機におけるデー
タバイパスを実現できる効果がある。
【0053】また、この発明によれば、ブースティング
を行う並列計算機において、ブースト命令でない命令
用,及びブースト命令用のスコアボードを設け、スコア
ボード管理回路により命令の種類により対応するスコア
ボードに登録,登録解除を行い、分岐が決定したときに
分岐方向に対応したブースト命令用のスコアボードを有
効としてその登録内容をブースト命令でない命令用のス
コアボードに付加し、かつすべてのスコアボードを同一
の状態とし、データ正誤信号生成回路により命令の種類
によって対応するスコアボードを参照し、読み出したい
レジスタが登録されているならば誤り、登録されていな
いならば正しいとする信号を出力するようにしたから、
ブースティング方式の計算機におけるスコアボーディン
グを実現できる効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例による並列計算機のブー
スティング方式のデータ依存グラフを示す図である。
【図2】本発明の第1の実施例による並列計算機のアー
キテクチャを示す図である。
【図3】本発明の第1の実施例による並列計算機に用い
る命令レジスタの構成図である。
【図4】本発明の第1の実施例による並列計算機に用い
る命令コードの一例を示す図である。
【図5】本発明の第1の実施例による並列計算機におい
てブースト命令をおくことのできる範囲を説明するため
の図である。
【図6】本発明の第1の実施例による並列計算機のブー
スト制御回路を示す図である。
【図7】命令デコードステージ,実行ステージ,メモリ
アクセスステージの命令有効ビット並びにブースティン
グビットの制御関係図である。
【図8】ライトバックステージの命令有効ビット並びに
ブースティングビットの制御関係図である。
【図9】本発明の第2の実施例による並列計算機のパイ
プラインの内部回路を示す図である。
【図10】本発明の第2の実施例による並列計算機のア
ーキテクチャを示す図である。
【図11】本発明の第2の実施例に用いる命令レジスタ
の構成図である。
【図12】ブースト比較回路の論理表を示す図である。
【図13】本発明の第2の実施例による並列計算機のデ
ータ選択回路の内部回路を示す図である。
【図14】本発明の第3の実施例による並列計算機のス
コアボードの構成を示す図である。
【図15】本発明の第3の実施例による並列計算機のア
ーキテクチャを示す図である。
【図16】スコアボードへの登録及び登録解除論理表を
示す図である。
【図17】命令の種類と参照するスコアボードの対応表
を示す図である。
【図18】分岐決定時の分岐制御回路の動作を示す図で
ある。
【図19】従来のブースティング方式の依存グラフを示
す図である。
【図20】レジスタファイルとストアバッファの二重化
構造を示す図である。
【図21】並列計算機の動作タイミングを与える2相ク
ロックを示す図である。
【図22】従来のパイプライン式計算機のバイパス動作
を説明するための図である。
【図23】従来のバイパス動作を行うパイプライン式計
算機の内部構成を示す図である。
【図24】アドレス比較部の内部回路の一例を示す図で
ある。
【図25】選択回路の構成の一例を示す図である。
【図26】従来のパイプライン式計算機のスコアボーデ
ィング機能を説明するための図である。
【図27】従来のスコアボードの構成図である。
【符号の説明】
1 命令メモリ 2 データメモリ 3 レジスタファイル 4 命令フェッチステージ 5 命令デコードステージ 6 実行ステージ 7 メモリアクセスステージ 8 ライトバックステージ 13 ブースト制御回路 14 バイパス制御回路 16 スコアボード 22 アドレス比較部 23 第1のデスティネーションアドレス保持用レジ
スタ 24 第2のデスティネーションアドレス保持用レジ
スタ 25 選択回路 26 演算実行部 27 第1のデータレジスタ 28 第2のデータレジスタ 20 ブースト比較部 29 実行ステージの命令を保持するレジスタ 30 メモリアクセスステージの命令を保持するレジ
スタ 31 ブースト命令でない命令用スコアボード 32 ノットテイクンのブースト命令用スコアボード 33 テイクンのブースト命令用スコアボート 34 スコアボード管理回路 35 データ正誤信号生成回路 36 分岐制御回路

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 分岐命令から分岐命令までを一単位とす
    る複数の基本ブロックからなる命令群のある基本ブロッ
    クの下位の基本ブロックに属する命令を、上位の基本ブ
    ロックに移動させ、該移動された命令を上記上位の基本
    ブロックに含まれる命令と並列に命令コードの順に発行
    していくブースティング機能を有する並列計算機におい
    て、 分岐先の下位基本ブロック及び分岐先とならない下位基
    本ブロックの両方からこれら下位の基本ブロックに含ま
    れる命令を上位の基本ブロックに移動させる命令移動手
    段を備えたことを特徴とする並列計算機。
  2. 【請求項2】 移動された命令が、分岐先の下位基本ブ
    ロックからの命令であるか、分岐先とならない下位基本
    ブロックからの命令であるかを識別する識別子を、移動
    された命令の命令コードに付加する識別子付加手段を備
    えたことを特徴とする請求項1記載の並列計算機。
  3. 【請求項3】 上記命令移動手段は、ブースト先の範囲
    を、分岐が決定するサイクルよりもブーストされた命令
    が記憶状態を書き換えるステージと分岐が決定するステ
    ージのサイクル差だけ前までに制限して移動を行うこと
    を特徴とする請求項1記載の並列計算機。
  4. 【請求項4】 移動された命令で既に発行された命令の
    実行結果を、移動先の基本ブロックの分岐の成否に従っ
    て有効化、あるいは無効化する手段を備えたことを特徴
    とする請求項1記載の並列計算機。
  5. 【請求項5】 移動された命令で現在デコード中の命令
    を、移動先の基本ブロックの分岐の成否に従って有効
    化、あるいは無効化する手段を備えたことを特徴とする
    請求項1記載の並列計算機。
  6. 【請求項6】 分岐命令から分岐命令までを一単位とす
    る複数の基本ブロックからなる命令群のある基本ブロッ
    クの下位の基本ブロックに属する命令を、上位の基本ブ
    ロックに移動させ、該移動された命令を上記上位の基本
    ブロックに含まれる命令と並列に命令コードの順に発行
    していくブースティング機能を有する並列計算機におい
    て、 データバイパス用のデータバスと、 上記データバスのデータを使用するか否かを決定するた
    めの制御信号を出力するバイパス制御回路と、 上記バイパス制御回路の出力結果によりデータの選択を
    行うデータ選択手段とを備えたことを特徴とする並列計
    算機。
  7. 【請求項7】 上記バイパス制御回路は、 参照データのアドレスと、先行する命令の出力データの
    アドレスを比較し、これらのアドレスの一致,不一致を
    示す第1の制御信号を出力するアドレス比較手段と、 データを参照する側の命令がブースト命令でない場合は
    ブースト命令でない命令のデータのみを参照し、データ
    を参照する側の命令がブースト命令の場合は種類が一致
    しているブースト命令のデータ及びブースト命令でない
    命令のデータを参照するように制御するための第2の制
    御信号を出力するブースト制御手段とを備えたことを特
    徴とする請求項6記載の並列計算機。
  8. 【請求項8】 分岐命令から分岐命令までを一単位とす
    る複数の基本ブロックからなる命令群のある基本ブロッ
    クの下位の基本ブロックに属する命令を、上位の基本ブ
    ロックに移動させ、該移動された命令を上記上位の基本
    ブロックに含まれる命令と並列に命令コードの順に発行
    していくブースティング機能を有する並列計算機におい
    て、 ブースト命令でない命令用,及びブースト命令用の、レ
    ジスタファイル管理用のメモリであるスコアボードと、 命令の種類により対応するスコアボードに登録,登録解
    除を行う手段と、 命令の種類によって対応するスコアボードを参照し、読
    み出したいレジスタが登録されているならば誤り、登録
    されていないならば正しいとする信号を出力するデータ
    正誤信号生成回路とを備えたことを特徴とする並列計算
    機。
  9. 【請求項9】 分岐が決定したときに分岐方向に対応し
    たブースト命令用のスコアボードを有効としてその登録
    内容をブースト命令でない命令用のスコアボードに付加
    し、かつすべてのスコアボードを同一の状態にする手段
    を備えたことを特徴とする請求項9記載の並列計算機。
JP3203980A 1991-07-16 1991-07-16 並列計算機 Pending JPH0520066A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3203980A JPH0520066A (ja) 1991-07-16 1991-07-16 並列計算機
US07/883,948 US5396640A (en) 1991-07-16 1992-05-15 Boosting method and apparatus in a parallel computer
DE4218622A DE4218622C2 (de) 1991-07-16 1992-06-05 Parallelcomputer mit Beschleunigungsfunktion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3203980A JPH0520066A (ja) 1991-07-16 1991-07-16 並列計算機

Publications (1)

Publication Number Publication Date
JPH0520066A true JPH0520066A (ja) 1993-01-29

Family

ID=16482805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3203980A Pending JPH0520066A (ja) 1991-07-16 1991-07-16 並列計算機

Country Status (3)

Country Link
US (1) US5396640A (ja)
JP (1) JPH0520066A (ja)
DE (1) DE4218622C2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504914A (en) * 1993-06-23 1996-04-02 National Science Council Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
JPH0844561A (ja) * 1994-07-28 1996-02-16 Fujitsu Ltd ブースティング制御方法及びブースティング制御機構を備えたプロセッサ装置
US5717883A (en) * 1995-06-28 1998-02-10 Digital Equipment Corporation Method and apparatus for parallel execution of computer programs using information providing for reconstruction of a logical sequential program
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
US5150469A (en) * 1988-12-12 1992-09-22 Digital Equipment Corporation System and method for processor pipeline control by selective signal deassertion
US5123108A (en) * 1989-09-11 1992-06-16 Wang Laboratories, Inc. Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5251306A (en) * 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system

Also Published As

Publication number Publication date
DE4218622C2 (de) 1996-10-10
US5396640A (en) 1995-03-07
DE4218622A1 (de) 1993-01-21

Similar Documents

Publication Publication Date Title
US5577200A (en) Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system
US6035391A (en) Floating point operation system which determines an exchange instruction and updates a reference table which maps logical registers to physical registers
US7996646B2 (en) Efficient encoding for detecting load dependency on store with misalignment
US6260134B1 (en) Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
JPH0553803A (ja) プロセツサ
JPH11212788A (ja) プロセッサのデータ供給装置
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
CN105993000B (zh) 用于浮点寄存器混叠的处理器和方法
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
JPH0496825A (ja) データ・プロセッサ
JP3449186B2 (ja) パイプラインバイパス機能を有するデータ処理装置
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
JP3794918B2 (ja) 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測
US20190243646A1 (en) Variable latency instructions
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
US20020042872A1 (en) Renaming apparatus and processor
JPH0769824B2 (ja) 複数命令同時処理方式
JPH0520066A (ja) 並列計算機
US7100029B2 (en) Performing repeat string operations
JP2006527436A (ja) データ処理装置及びレジスタ・ファイルとメモリとの間でデータ値を転送する方法
US20040128475A1 (en) Widely accessible processor register file and method for use
WO2020214624A1 (en) Variable latency instructions
Hasan et al. An improved pipelined processor architecture eliminating branch and jump penalty
US6157995A (en) Circuit and method for reducing data dependencies between instructions