JPH05108348A - 並列演算処理装置 - Google Patents

並列演算処理装置

Info

Publication number
JPH05108348A
JPH05108348A JP3264584A JP26458491A JPH05108348A JP H05108348 A JPH05108348 A JP H05108348A JP 3264584 A JP3264584 A JP 3264584A JP 26458491 A JP26458491 A JP 26458491A JP H05108348 A JPH05108348 A JP H05108348A
Authority
JP
Japan
Prior art keywords
instruction
register
instructions
load
compound
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
Application number
JP3264584A
Other languages
English (en)
Other versions
JP2904624B2 (ja
Inventor
Tatsuhiro Goshima
龍宏 五島
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP26458491A priority Critical patent/JP2904624B2/ja
Publication of JPH05108348A publication Critical patent/JPH05108348A/ja
Application granted granted Critical
Publication of JP2904624B2 publication Critical patent/JP2904624B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】複合命令中にロード命令が含まれていて、同命
令がキャッシュミスとなった場合でも、後続の複合命令
の不要な待ち時間を減らすようにする。 【構成】複合命令中にロード命令が含まれていると、書
込み先のレジスタファイル3内レジスタに対応するビッ
トが真値となる信号41が解読/レジスタリード機構4
から出力され、依存関係検出回路9内のフラグレジスタ
10の対応ビットがセットされる。後続の複合命令が上
記機構4によって解読されると、その命令中にレジスタ
ファイル3内レジスタをアクセス先とする命令が含まれ
ていれば、そのレジスタに対応するビットが真値となる
信号42が同機構4から出力される。もし、先のロード
命令がキャッシュミスとなっても、信号41,42の対
応ビットの組に共に真値をとるものが無いならば、アン
ドゲート11〜14の各出力は偽となり、パイプライン
制御機構25はパイプロックを控える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の命令を並列に
処理することが可能なパイプライン方式の並列演算処理
装置に係り、特に、先行する複数の命令中に少なくとも
1つのロード命令が含まれる場合に好適なロード命令処
理制御方式に関する。
【0002】
【従来の技術】従来、VLIW(Very Long Instructio
n Word)方式やスーパスカラ方式等の複数命令を並列
(同時)に処理する形式の計算機(並列演算処理装置)
では、同時に投入する複数命令(ここでは、複合命令と
呼ぶ)間でレジスタやメモリ等での参照関係が存在する
場合には、実行順序関係を保証するための待ち時間が発
生し、処理性能が大きく低下する。このため、この種の
計算機では、コンパイラによる静的なプログラムのスケ
ジューリングを行うことによって、上記の参照関係によ
る待ちを減少させることが知られていた。
【0003】
【発明が解決しようとする課題】しかし、コンパイラに
よる静的なスケジューリングでは、メモリアドレス等の
動的に決定される依存関係を取扱うことが困難である。
したがって、これら動的な依存関係はハードウェア的な
サポートによって解析され実行順序を保証しなければな
らない。
【0004】上記の動的な依存関係を発生させる代表的
な命令にロード命令(メモリデータの読出し)がある。
このロード命令によるメモリアクセスは通常はキャッシ
ュメモリを介して行われる。このため、キャッシュにヒ
ットする限り、ロード命令に依存する命令の順序関係を
保証しようとしても性能への影響は少ない。ところが、
キャッシュミスヒットの場合にはブロックリードが発生
するため、ロードデータが得られるまでには、キャッシ
ュヒット時の数倍から数十倍のオーバヘッドが発生す
る。従来の並列演算処理装置では、ロード命令ミスヒッ
ト時には、無条件に後続の複合命令を待たせるのみであ
ったため、大きな性能低下を招いていた。
【0005】この発明は上記事情に鑑みてなされたもの
でその目的は、ロード命令がキャッシュミスヒットの場
合でも、後続の複合命令の待ち時間をできるだけ少なく
し、処理性能を向上させることができる並列演算処理装
置を提供することにある。
【0006】
【課題を解決するための手段】この発明は、命令フェッ
チ機構によってフェッチされた複数の命令(複合命令)
を並列に処理することが可能なパイプライン方式の並列
演算処理装置において、先にフェッチされた複合命令
(先行複合命令)と後にフェッチされた複合命令(後続
の複合命令)との間に、少なくとも1つの依存関係が存
在することを検出するための依存関係検出手段と、この
依存関係検出手段の検出結果に応じてパイプラインの流
れを制御するパイプライン制御機構とを備え、先行複合
命令と後続複合命令との間に依存関係が存在しない場合
には、先行複合命令中にロード命令が含まれていても後
続複合命令を待たせないようにしたことを特徴とするも
のである。
【0007】また、この発明は、上記の依存関係検出手
段を、先行複合命令中にロード命令が含まれている場合
に、同ロード命令で指定されるロードデータ書込み先が
使用状態にあることを示す状態保持手段と、この状態保
持手段によって示されているロードデータ書込み先が、
上記後続複合命令中のいずれかの命令によって指定され
るアクセス先に一致することを検出するための一致検出
手段とで構成したことをも特徴とする。
【0008】
【作用】上記の構成では、先行複合命令と後続複合命令
との間に依存関係が存在するか否かが依存関係検出手段
により検出される。この検出のために状態保持手段およ
び一致検出手段が用意される。状態保持手段には、フェ
ッチされた複合命令の解読の結果、ロード命令が含まれ
ていることが判明した場合に、同ロード命令で指定され
るロードデータ書込み先が使用状態にあることを示す状
態情報が保持される。一致検出手段は、命令フェッチ機
構によって新たに複合命令(後続複合命令)がフェッチ
された場合には、その時点において状態保持手段によっ
て示されている使用状態にあるロードデータ書込み先、
即ち先行複合命令にロード命令が含まれている場合に同
命令で指定されるロードデータ書込み先が、上記後続複
合命令中のいずれかの命令によって指定されるアクセス
先に一致するか否かを調べ、その結果をパイプライン制
御機構に通知する。
【0009】パイプライン制御機構は、(依存関係検出
手段内の)一致検出手段からの一致/不一致通知を受け
ると、一致通知の場合には、上記後続複合命令と先行複
合命令との間に、少なくとも1つの依存関係が存在する
ものとして、後続複合命令の実行を待たせる。これに対
して不一致通知の場合には、パイプライン制御機構は、
後続複合命令と先行する複合命令との間に依存関係が存
在しないものとして、後続複合命令の実行を許可する。
これにより、先行する複合命令中にロード命令が含まれ
ており、且つ同命令がキャッシュミスヒットとなってブ
ロックリード中であったとしても、そのブロックリード
処理の完了を待たずに、後続複合命令が実行され、不要
な待ち時間が回避される。
【0010】
【実施例】図1はこの発明の一実施例に係る並列演算処
理装置の構成を示すブロック図である。この図1の並列
演算処理装置は、例えば複合命令フェッチのステージ
(Iステージ)、複合命令デコードのステージ(Dステ
ージ)、複合命令実行(ロード命令のキャッシュアクセ
スを含む)のステージ(Eステージ)、および結果の書
込み(レジスタライトバック)のステージ(Wステー
ジ)の4ステージのパイプライン方式を適用する4命令
並列実行の4ステージパイプライン処理計算機であるも
のとする。なお、図1の演算処理装置では、並列処理さ
れる4命令中に含まれるロード命令は1つに制限されて
いるものとする。
【0011】図1において、1は並列に実行すべき4命
令を命令キャッシュ或いは主メモリなどのプログラム格
納装置(図示せず)からフェッチする命令フェッチ機
構、2は命令フェッチ機構1によってフェッチされた4
命令を保持するための命令レジスタである。
【0012】3は例えば4つのレジスタR1〜R4から
なる汎用のレジスタファイル、4は解読/レジスタリー
ド機構である。解読/レジスタリード機構4は、命令レ
ジスタ2に保持されている4命令の解読を各命令毎に並
列に行うと共に、同命令でレジスタファイル3内レジス
タがソース指定されている場合に、そのレジスタ内容を
ソースデータとしてリードする。解読/レジスタリード
機構4は、解読した4命令中にレジスタファイル3内の
レジスタR1〜R4をロードデータ書込み先とするロー
ド命令があるか否かを示す(4ビットの)レジスタ使用
信号41、および解読した4命令中にレジスタファイル
3内のレジスタR1〜R4をアクセス先(参照または書
込み先)とする命令があるか否かを示す(4ビットの)
レジスタ使用信号42を出力するようになっている。
【0013】5は解読/レジスタリード機構4の4命令
分の解読結果等を命令毎に保持するための解読結果レジ
スタである。解読結果レジスタ5に保持される情報に
は、命令によっては、解読/レジスタリード機構4によ
ってリードされたレジスタデータ、或いは後述するロー
ド実行機構7によって読出されたロードデータが含まれ
る。
【0014】6は解読結果レジスタ5に演算命令の解読
結果が保持されている場合に、その解読結果の示す演算
を実行する演算実行機構である。演算実行機構6は、最
大4命令分のの並列演算処理を実行するために、4つの
演算器から構成される。7は解読結果レジスタ5にロー
ド命令(メモリデータをロードデータとして読出して解
読結果レジスタ5内レジスタに書込む命令)の解読結果
が保持されている場合に、その解読結果の示すロード処
理を実行するロード実行機構である。ロード実行機構7
はオペランドキャッシュ(図示せず)を内蔵しており、
ロード命令で指定されたデータが同キャッシュに存在す
るか否かを調べるヒットチェックを行い、ミスヒット検
出時にはメモリからのブロックリードを実行する。また
ロード実行機構7は、ヒット検出時に真値(論理
“1”)となるヒット検出信号8を出力するようになっ
ている。
【0015】9は先行する複合命令中にロード命令が含
まれていた場合に、そのロード命令と後続の複合命令と
の間にレジスタファイル3内のレジスタ使用についての
依存関係(参照関係)が存在することを検出するための
依存関係検出回路である。
【0016】依存関係検出回路9は、解読/レジスタリ
ード機構4から出力されるレジスタR1〜R4に対応し
たレジスタ使用信号41の真値を保持するための4ビッ
ト(b0〜b3)のフラグレジスタ10と、フラグレジスタ
10の各ビットb0〜b3の論理値、解読/レジスタリード
機構4から出力されるレジスタR1〜R4に対応したレ
ジスタ使用信号42の論理値、およびロード実行機構7
から出力されるヒット検出信号8のレベル反転信号の論
理値のAND(論理積)をとるアンドゲート11〜14
とから構成される。
【0017】フラグレジスタ10の各ビットb0〜b3は、
対応するレジスタR1〜R4を書き込み先とするロード
命令の実行完了によりリセットされるようになってい
る。アンドゲート11〜14は、アンドゲート条件成立
時に、現在解読/レジスタリード機構4で処理されてい
る複合命令以降の命令の実行を待たせることを指示する
WAIT信号21〜24を出力する。
【0018】25は図1の装置のパイプライン制御を司
るパイプライン制御機構である。パイプライン制御機構
25は、(依存関係検出回路9内の)アンドゲート11
〜14からのWAIT信号21〜24のいずれかが真の
場合に、現在解読/レジスタリード機構4で処理されて
いる複合命令以降の命令の実行を待たせる。
【0019】31〜34は演算実行機構6の4命令に対
応した演算結果またはロード実行機構7によってメモリ
から読出されたロードデータのいずれか一方を選択する
ためのセレクタ(SEL)である。セレクタ31〜34
は、通常状態では演算実行機構6側を選択するように設
定されている。なお、上記の演算結果およびロードデー
タには、その書込み先を示す識別子(例えばレジスタ番
号)が付加されるようになっている。35はセレクタ3
1〜34によって選択されたデータを保持するための演
算結果レジスタである。この演算結果レジスタ35の保
持データは、そのデータに付加された識別子の指定する
書込み先(例えばレジスタファイル3内レジスタ)に書
込まれる。
【0020】次に、図1の構成の動作を、ロード命令を
含む3つの複合命令を順に実行する場合を例に、複合命
令間にレジスタの参照関係(RAW;ReadAfter Writ
e)が無いケース(ケース1)と、参照関係が有るケー
ス(ケース2)とについて順に説明する。
【0021】(ケース1)まず、ケース1について、図
2のタイミングチャートを参照して説明する。ここで
は、図2に示すように、先頭の複合命令CI1が、ロー
ド命令L→R1(メモリからロードデータを読出してレ
ジスタR1に書込むロード命令)、加算命令+、乗算命
令×、および減算命令−の4命令であり、複合命令CI
2が、ロード命令L→R2、減算命令−、加算命令+、
および乗算命令×の4命令であり、複合命令CI3が、
ロード命令L→R3、減算命令−、除算命令÷、および
減算命令−の4命令であり、複合命令CI1→CI2→
CI3間にレジスタの参照関係(RAW;Read After W
rite)が無いものとする。
【0022】まず、サイクルT1では、命令フェッチ機
構1によりIステージが行われ、先頭の複合命令CI1
がフェッチされる。この複合命令CI1は命令レジスタ
2に保持される。
【0023】次のサイクルT2では、命令レジスタ2に
保持された複合命令CI1の各命令を対象とするDステ
ージ、即ち命令解読が、解読/レジスタリード機構4に
よって行われ、その解読結果が命令別に解読結果レジス
タ5に保持される。同時に、命令フェッチ機構1によっ
て次のIステージが行われ、複合命令CI1の次の複合
命令CI2がフェッチされて命令レジスタ2に保持され
る。
【0024】また、複合命令CI1のDステージでは、
同CI1にロード命令L→R1が含まれているために、
R1,R2,R3,R4のうちのR1に対応するビット
が真値の4ビットレジスタ使用信号41“1000”が
解読/レジスタリード機構4から出力される。このレジ
スタ使用信号41は依存関係検出回路9の4ビットフラ
グレジスタ10に供給され、同信号41中の真値をとる
ビットに対応するフラグレジスタ10内のビットが、サ
イクルT2の終了時にセットされる。ここでは、R1に
対応するフラグレジスタ10内のビットb0がセットさ
れ、フラグレジスタ10の内容は“1000”となる。
【0025】次のサイクルT3では、解読結果レジスタ
5に保持された複合命令CI1中の+,×,−の各命令
の解読結果に従い、演算実行機構6において+,×,−
の各演算(Eステージ)が並列に行われる。この結果は
セレクタ32〜34によってそれぞれ選択されて演算結
果レジスタ35に保持される。
【0026】またサイクルT3では、解読結果レジスタ
5に保持された複合命令CI1中のロード命令L→R1
の解読結果に従い、ロード実行機構7において、ロード
データ読出しのための処理が行われる。この処理では、
まず目的ロードデータがオペランドキャッシュに存在す
るか否かを調べるためのヒットチェックが行われる。こ
こでは、ミスヒットであるものとすると、ロード実行機
構7は目的データを含むブロックデータをメモリから読
むためのブロックリードを開始し、ヒット検出信号8を
真値としない。
【0027】更にサイクルT3では、命令レジスタ2に
保持された2番目の複合命令CI2の各命令を対象とす
るDステージが解読/レジスタリード機構4によって行
われ、その結果が解読結果レジスタ5に保持される。同
時に、複合命令CI2の次の複合命令CI3が命令フェ
ッチ機構1によってフェッチされ、命令レジスタ2に保
持される。
【0028】上記複合命令CI2のDステージでは、解
読した4命令中にレジスタファイル3内のレジスタR2
をアクセス先(書込み先)とするロード命令L→R2が
あるために、解読/レジスタリード機構4から値が“0
100”の4ビットレジスタ使用信号41が出力され
る。また、他の3命令中にレジスタファイル3内のレジ
スタをアクセス先(参照先、書込み先)とする命令が無
いものとすると、解読/レジスタリード機構4からは値
が“0100”の4ビットレジスタ使用信号42が出力
される。このときフラグレジスタ10の内容は“100
0”であり、アンドゲート11〜14の出力信号である
WAIT信号21〜24は真値とはならない。
【0029】このようにWAIT信号21〜24が全て
偽値の場合、パイプライン制御機構25はパイプライン
中の複合命令間にレジスタ参照関係が無いものとして、
パイプラインの流れを止めること(パイプロック)を控
える。この結果、次のサイクルT4では、以下に述べる
ように、現在Eステージにある複合命令CI1はブロッ
クリード中のロード命令L→R1を除き(おいてきぼり
にして)Wステージに入り、Dステージにある複合命令
CI2はEステージに入り、Iステージにある複合命令
CI3はDステージに入る。これは、複合命令CI2中
に、レジスタファイル3内のレジスタをアクセス先とす
る命令があったとしても、そのアクセス先がR1でなけ
れば、同様の結果となる。
【0030】さて、サイクルT3では、上記したように
解読/レジスタリード機構4から値が“0100”の4
ビットレジスタ使用信号41が出力されることから、R
2に対応するフラグレジスタ10内のビットb1が、サイ
クルT3の終了時にセットされる。これにより、フラグ
レジスタ10の内容は“1000”から“1100”と
なる。
【0031】次のサイクルT4では、演算結果レジスタ
35に保持された複合命令CI1中の+,×,−の各命
令の演算結果を指定された書込み先に書込むためのWス
テージが行われる。また、解読結果レジスタ5に保持さ
れた複合命令CI2中の−,+,×の各命令の解読結果
に従い、演算実行機構6において−,+,×の各演算
(Eステージ)が並列に行われ、セレクタ32〜34を
介して演算結果レジスタ35に保持される。
【0032】またサイクルT4では、解読結果レジスタ
5に保持された複合命令CI2中のロード命令L→R2
の解読結果に従い、ロード実行機構7において、ロード
データ読出しのための処理が行われる。ここで、目的ロ
ードデータがオペランドキャッシュに存在しないミスヒ
ットが検出されたものとすると、ブロックリードが開始
され、ヒット検出信号8は偽値のままとなる。
【0033】更にサイクルT4では、命令レジスタ2に
保持された3番目の複合命令CI3の各命令を対象とす
るDステージが解読/レジスタリード機構4によって行
われ、その結果が解読結果レジスタ5に保持される。
【0034】上記複合命令CI3のDステージでは、解
読した4命令中にロード命令L→R3があるために、解
読/レジスタリード機構4から値が“0010”の4ビ
ットレジスタ使用信号41が出力される。また、他の3
命令中にレジスタファイル3内のレジスタをアクセス先
(参照先、書込み先)とする命令が無いものとすると、
解読/レジスタリード機構4から値が“0010”の4
ビットレジスタ使用信号42が出力される。このときフ
ラグレジスタ10の内容は“1100”であり、アンド
ゲート11〜14の出力信号であるWAIT信号21〜
24は真値とはならない。このため、パイプロックはな
されず、次のサイクルT5では、現在Eステージにある
複合命令CI2はブロックリード中のロード命令L→R
2をおいてきぼりにしてWステージに入り、Dステージ
にある複合命令CI3はEステージに入る。
【0035】(ケース2)次に、ケース2について、図
3のタイミングチャートを参照して説明する。ここで
は、図3に示すように、先頭の複合命令CI11が、ロ
ード命令L→R1、加算命令+、乗算命令×、および減
算命令−の4命令であり、複合命令CI12が、ロード
命令L→R2、減算命令−、レジスタR1,R2の各内
容を加算する加算命令R1+R2、および乗算命令×の
4命令であり、複合命令CI13が、ロード命令L→R
3、減算命令−、除算命令÷、および減算命令−の4命
令であり、複合命令CI11→CI12間にレジスタR
1の参照関係が有るものとする。
【0036】このケース2では、まずサイクルT1で、
複合命令CI11をフェッチするIステージが行われ
る。次のサイクルT2では、複合命令CI11を解読す
るDステージが行われると共に、複合命令CI11の次
の複合命令CI12をフェッチするIステージが行われ
る。複合命令CI11のDステージでは、同CI1にロ
ード命令L→R1が含まれているために、値が“100
0”のレジスタ使用信号41が解読/レジスタリード機
構4から出力され、これによりサイクルT2の終了時に
は、フラグレジスタ10の内容が“1000”となる。
【0037】次のサイクルT3では、複合命令CI11
中の+,×,−の各命令のDステージの結果に従い、演
算実行機構6において+,×,−の各演算(Eステー
ジ)が並列に行われ、セレクタ32〜34を介して演算
結果レジスタ35に保持される。
【0038】またサイクルT3では、複合命令CI11
中のロード命令L→R1のDステージの結果に従い、ロ
ード実行機構7において、ロードデータ読出しのための
処理が行われる。ここで、目的ロードデータがオペラン
ドキャッシュに存在しないミスヒットが検出されたもの
とすると、ブロックリードが開始され、ヒット検出信号
8は偽値のままとなる。
【0039】更にサイクルT3では、2番目の複合命令
CI12の各命令を対象とするDステージが解読/レジ
スタリード機構4によって行われる。同時に、複合命令
CI12の次の複合命令CI13が命令フェッチ機構1
によってフェッチされる。
【0040】さて、複合命令CI12のDステージで
は、同命令CI12にロード命令L→R2が含まれてい
るために、値が“0100”のレジスタ使用信号41が
解読/レジスタリード機構4から出力される。また、命
令CI12には、加算命令R1+R2も含まれているこ
とから、残りの命令中にレジスタファイル3内のレジス
タをアクセス先(参照先、書込み先)とする命令が無い
ものとすると、解読/レジスタリード機構4からは値が
“1100”の4ビットレジスタ使用信号42が出力さ
れる。このときフラグレジスタ10の内容は“100
0”、ヒット検出信号8は偽値であることから、アンド
ゲート11〜14からのWAIT信号21〜24のう
ち、WAIT信号21だけが真値となる。
【0041】このようにWAIT信号21〜24のうち
の少なくとも1つ(ここではWAIT信号21)が真値
の場合、パイプライン制御機構25は現在実行中の複合
命令と後続の複合命令との間にレジスタ参照関係が有る
ものとして、パイプラインの流れを止めるパイプロック
を行う。これにより、実行中複合命令CI11の次の
(加算命令R1+R2を含む)複合命令CI12はDス
テージで、更に次の複合命令CI13はIステージで、
それぞれ以下に述べるように複合命令CI1中のロード
命令L→R1の実行完了まで待たされる。
【0042】さて本実施例では、複合命令CI11中の
ロード命令L→R1に従うロード実行機構7のブロック
リード処理がサイクルT5で完了し、指定されたデータ
(ロードデータ)がロード実行機構7から出力されたも
のとする。このロードデータはセレクタ31によって選
択され、サイクルT5の終了時に演算結果レジスタ35
に保持される。また、上記のロードデータは、解読/レ
ジスタリード機構4によってレジスタR1から読出され
たデータであるかのように、解読結果レジスタ5に保持
される。
【0043】上記のように、サイクルT5において複合
命令CI11中のロード命令L→R1の処理が完了する
と、R1に対応するフラグレジスタ10内のビットb0
がリセットされる。これにより、フラグレジスタ10の
内容は“1100”から“0100”に変化する。この
とき、Dステージには加算命令R1+R2を含む複合命
令CI12が止められているため、解読/レジスタリー
ド機構4から出力されるレジスタ使用信号42は“11
00”のままであるが、フラグレジスタ10の内容が
“0100”となったために、アンドゲート11〜14
のAND条件は成立せず、WAIT信号21〜24は全
て偽値となる。この結果、パイプライン制御機構25は
パイプライン中の複合命令間にレジスタ参照関係が無く
なったものとして、パイプロックを解除する。この結
果、次のサイクルT6では、以下に述べるように、現在
Eステージにある複合命令CI11はWステージに入
り、Dステージにある複合命令CI12はEステージに
入り、Iステージにある複合命令CI13はDステージ
に入る。
【0044】なお、ロード実行機構7における複合命令
CI11中のロード命令L→R1に対する処理で、キャ
ッシュヒットが検出されてヒット検出信号8が真値とな
った場合には、複合命令CI11と後続の複合命令C1
2との間にレジスタR1の参照関係があったとしても、
アンドゲート11(〜14)のAND条件は成立せず、
WAIT信号21(〜24)は偽値となる。この場合、
パイプライン制御機構25はパイプラインの流れを止め
ない。これは、ロード実行機構7でキャッシュヒットが
検出された場合には、そのサイクルでロード処理が完了
して、目的のロードデータが演算結果レジスタ35およ
び解読結果レジスタ5に保持され、次のサイクルでその
ロードデータを用いた加算命令R1+R2が行えるため
である。以上は、4命令を並列に処理する並列演算処理
装置について説明したが、本発明は複数の命令を並列に
処理する並列演算処理装置全般に適用可能である。ま
た、説明の簡略化のために、複合命令に含まれるロード
命令は1つに制限されているものとして説明したが、こ
れに限るものではないことは勿論である。
【0045】
【発明の効果】以上詳述したようにこの発明によれば、
パイプライン方式の並列演算処理装置において、先行す
る複合命令と後続の複合命令との間に少なくとも1つの
依存関係が存在するか否かを調べ、依存関係が存在しな
い場合には、たとえ先行複合命令中にロード命令が含ま
れていても後続複合命令を待たせない構成としたので、
ロード命令がキャッシュミスヒットとなって長時間のブ
ロックリード処理が行われたとしても、そのブロックリ
ード中のロード命令だけをおいてきぼりにして後続複合
命令を実行させることができ、この後続複合命令の待ち
時間をできるだけ少なくして、処理性能を向上させるこ
とができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係る並列演算処理装置の
構成を示すブロック図。
【図2】同実施例において複合命令間にレジスタ参照関
係の無い場合の動作を説明するためのタイミングチャー
ト。
【図3】同実施例において複合命令間にレジスタ参照関
係の有る場合の動作を説明するためのタイミングチャー
ト。
【符号の説明】
1…命令フェッチ機構、2…命令レジスタ、3…レジス
タファイル、4…解読/レジスタリード機構、5…解読
結果レジスタ、6…演算実行機構、7…ロード実行機
構、9…依存関係検出回路、10…フラグレジスタ(状
態保持手段)、11〜14…アンドゲート(一致検出手
段)、25…パイプライン制御機構、35…演算結果レ
ジスタ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令フェッチ機構によってフェッチされ
    た複数の命令を並列に処理することが可能なパイプライ
    ン方式の並列演算処理装置において、 前記命令フェッチ機構によって先にフェッチされた先行
    する複数の命令と後にフェッチされた後続の複数の命令
    との間に、少なくとも1つの依存関係が存在することを
    検出するための依存関係検出手段と、 この依存関係検出手段の検出結果に応じてパイプライン
    の流れを制御するパイプライン制御機構とを具備し、 前記パイプライン制御機構は、前記先行する複数の命令
    と後続の複数の命令との間に依存関係が存在しないこと
    が前記依存関係検出手段によって検出された場合には、
    前記先行する複数の命令中にロード命令が含まれていて
    も、前記後続の複数の命令を待たせないようにしたこと
    を特徴とする並列演算処理装置。
  2. 【請求項2】 前記依存関係検出手段は、前記先行する
    複数の命令中にロード命令が含まれている場合に、同ロ
    ード命令によって指定されるロードデータ書込み先が使
    用状態にあることを示す状態保持手段と、この状態保持
    手段によって示されているロードデータ書込み先が、前
    記後続の複数の命令のいずれかによって指定されるアク
    セス先に一致することを検出するための一致検出手段と
    を備えていることを特徴とする請求項1記載の並列演算
    処理装置。
JP26458491A 1991-10-14 1991-10-14 並列演算処理装置 Expired - Fee Related JP2904624B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26458491A JP2904624B2 (ja) 1991-10-14 1991-10-14 並列演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26458491A JP2904624B2 (ja) 1991-10-14 1991-10-14 並列演算処理装置

Publications (2)

Publication Number Publication Date
JPH05108348A true JPH05108348A (ja) 1993-04-30
JP2904624B2 JP2904624B2 (ja) 1999-06-14

Family

ID=17405328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26458491A Expired - Fee Related JP2904624B2 (ja) 1991-10-14 1991-10-14 並列演算処理装置

Country Status (1)

Country Link
JP (1) JP2904624B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027833A1 (fr) * 1995-03-06 1996-09-12 Hitachi, Ltd. Unite de traitement informatique
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027833A1 (fr) * 1995-03-06 1996-09-12 Hitachi, Ltd. Unite de traitement informatique
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor

Also Published As

Publication number Publication date
JP2904624B2 (ja) 1999-06-14

Similar Documents

Publication Publication Date Title
US6721874B1 (en) Method and system for dynamically shared completion table supporting multiple threads in a processing system
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US7711929B2 (en) Method and system for tracking instruction dependency in an out-of-order processor
EP0380850B1 (en) Method and digital computer for preproccessing multiple instructions
US7877580B2 (en) Branch lookahead prefetch for microprocessors
TWI507980B (zh) 最佳化暫存器初始化操作
US5611063A (en) Method for executing speculative load instructions in high-performance processors
JP3209205B2 (ja) プロセッサにおけるレジスタ内容の継承装置
US5809294A (en) Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
US7111126B2 (en) Apparatus and method for loading data values
US20080141000A1 (en) Intelligent smt thread hang detect taking into account shared resource contention/blocking
US20020091915A1 (en) Load prediction and thread identification in a multithreaded microprocessor
JPH07281896A (ja) 情報処理装置
US6289437B1 (en) Data processing system and method for implementing an efficient out-of-order issue mechanism
JP2003523573A (ja) プロセッサにおける書き込みトラヒックを減少するシステム及び方法
US5778248A (en) Fast microprocessor stage bypass logic enable
US7373486B2 (en) Partially decoded register renamer
US5479622A (en) Single cycle dispatch delay in a multiple instruction dispatch mechanism of a data processing system
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
CN112241288A (zh) 在硬件中检测条件分支的动态控制流重汇聚点
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
KR20010077997A (ko) 단일 사이클 파이프라인 기능 정지를 발생하기 위한파이프라인 프로세서 시스템 및 방법
US7600102B2 (en) Condition bits for controlling branch processing
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees