JPH04153734A - 並列処理装置 - Google Patents

並列処理装置

Info

Publication number
JPH04153734A
JPH04153734A JP2279653A JP27965390A JPH04153734A JP H04153734 A JPH04153734 A JP H04153734A JP 2279653 A JP2279653 A JP 2279653A JP 27965390 A JP27965390 A JP 27965390A JP H04153734 A JPH04153734 A JP H04153734A
Authority
JP
Japan
Prior art keywords
instruction
stage
branch
instructions
data
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
JP2279653A
Other languages
English (en)
Other versions
JP2535252B2 (ja
Inventor
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 JP2279653A priority Critical patent/JP2535252B2/ja
Priority to DE4134392A priority patent/DE4134392C2/de
Publication of JPH04153734A publication Critical patent/JPH04153734A/ja
Priority to US08/310,508 priority patent/US5522084A/en
Application granted granted Critical
Publication of JP2535252B2 publication Critical patent/JP2535252B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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

【発明の詳細な説明】 [産業上の利用分野] この発明は並列処理装置に関し、特に、スーバスカラ型
プロセサ(こ関する。より特定的には、スーパースカラ
型プロセサにおける、分岐命令以降にバイブライン(機
能ユニット)へ供給された命令の実行および無効化の制
御方式に関する。
[従来の技術] 近年の半導体技術の進歩に伴って、マイクロプロセサも
高性能化されかつその速度も高速化されてきている。一
方、半導体メモリも高速化されてきているものの、その
高速化はこのマイクロプロセサの高速化に追随すること
ができず、半導体メモリのアクセスがプロセサの高速化
に対する1つのボトルネックとなっている。このため、
並列処理を行なうことによりマイクロプロセサの性能向
上を図ることが行なわれている。このような並列処理を
実現する方式の1つにスーパースカラがある。このスー
パースカラタイプのプロセサ(以下、単にスーパースカ
ラと称す)は、第13図に示すように、プロセサ内部の
スケジューラ(通常命令デコーダ内に含まれている)2
00が、命令ストリーム中の並列性を検出し、並列処理
可能な命令を並列に設けられたパイプライン(機能ユニ
ット)Pl、P2およびP3へ供給するものである。す
なわち、スーパースカラは以下の特徴をもつコンピュー
タ(またはプロセサ)であるといえる。
(1) 命令を複数個同時にフェッチする。
(2) 複数の機能ユニット(パイプライン)を有して
おり、複数の命令を同時に実行することができる。
(3) フェッチされた複数の命令の中から同時に実行
可能な命令を検aし、それらを対応の機能ユニットに供
給する。
第14図はスーパースカラの一般的構成を示す図である
。第14図において、スーパースカラは、各々が所定の
機能を実行する複数の機能ユニット4.5.6、および
7と、命令メモリ1から複数の命令を同時にフェッチす
る命令フェッチ(IF)ステージ2と、命令フェッチス
テージ2によりフェッチされた命令メモリ1からの命令
を同時に受け、それらから同時に実行処理可能な命令を
検aして、対応の機能ユニットへ供給する命令デコード
ステージ3と、演算処理結果等を格納するためのデータ
メモリ8とを含む。
命令メモリ1は、キャッシュメモリおよび外部主メモリ
を一般に含んでおり、プログラム実行に必要な命令を格
納する。
命令フェッチステージ2は、命令メモリ1へ命令ポイン
タIPを与え、この命令ポインタIPに対応する複数の
命令を命令メモリ1からフェッチする。
命令デコードステージ3は、命令デコーダおよびパイプ
ラインシーケンサ等を含む。命令デコーダは、命令フェ
ッチステージ2によりフェッチされた複数の命令を受け
てデコードする。パイプラインシーケンサ(命令スケジ
ューラ)は、このデコードされた複数の命令のマシンタ
イプを識別し、異なるマシンタイプの命令を同時に対応
の機能ユニットへ発行する。マシンタイプは、命令がど
の機能ユニットで処理されるべきかを示す。
機能ユニット4ないし7は、パイプライン化されており
、与えられた命令をクロック信号に応答して実行する。
第14図においては、4つの機能ユニットが一例として
示されており、最大4つの命令が並列処理可能である。
機能ユニット4および5は、整数加算などを行なう整数
演算ユニットであり、実行ステージ(EX)および書込
みステージ(マシン状態変更ステージ、WB)を含む。
書込みステージ(WB)は、実行ステージで実行された
命令の処理結果をデータレジスタ(図示せず)へ書込む
機能ユニット6は、データメモリ8へのアクセス(デー
タのロードまたはストア)を実行するユニットであり、
アドレス生成ステージ(A D R)、メモリへのアク
セス実行ステージ(MEM)およびデータレジスタ(図
示せず)へのデータの書込ミステージ(WB)を含む。
この機能ユニット6における書込みステージ(WB)に
おいて、データメモリ8からロードされたデータまたは
データメモリ8ヘスドアすべきデータがレジスタへ/か
ら書込みまたは読出しされる。
機能ユニット7は、浮動小数点加算などを実行するユニ
ットであり、3段の実行ステージ(EXl、EX2およ
びEX3)と、実行結果のデータレジスタ(図示せず)
への書込みステージ(WB)とを含む。浮動小数点数と
は、小数点の位置を一定とせずに、指数と仮数とを用い
て表された数である。浮動小数点演算は、この浮動小数
点数を用いた演算であり、整数演算などに比べて広範囲
の数を演算することができるが、その処理には整数演算
などよりも多くのサイクルが必要とされる。
このスーパースカラにおいては、命令フェッチステージ
2および命令デコードステージ3および機能ユニット(
4ないし7)もまたパイプライン化されており、各ステ
ージはオーバーラツプして動作する。したがって、パイ
プラインに空きが存在しない場合には、前のサイクルで
処理されたデータまたは命令が各ステージへ供給される
。たとえば、命令デコードステージ3がデコードする命
令は前のサイクルでフェッチされた命令である。
第15図は命令デコードステージの構成を概略的に示す
図である。第15図において、命令デコードステージ3
は、並列に設けられた4つのデコード回路D1〜D4と
、デコード回路D1〜D4のデコード結果に応答して、
並列処理可能な命令を検出し、この命令を関連の機能ユ
ニットへ発行するパイプラインシーケンサSCを含む。
デコード回路DIないしD4は、命令メモリ1から同時
にフェッチされた命令MlないしM4に対応して設けら
れ、対応の命令を解読し、該解読結果をパイプラインシ
ーケンサSCへ伝達する。
この命令デコードステージ3へ供給される命令FMは、
各命令対応にアドレス(命令メモリ1における論理アド
レスであり、命令フェッチステージから供給される)A
l−A4も含む。
パイプラインシーケンサSCはまた一フェッチされた命
令FMに分岐命令が含まれるとき、この分岐命令による
分岐の発生の有無、分岐先アドレスの命令フェッチステ
ージへの設定、分岐命令以降の命令の機能ユニットへの
供給の制御を行なう。
次に第14図および第15図を参照して動作について簡
単に説明する。
命令デコードステージ3は、命令フェッチステージ2へ
命令フェッチ要求を出力する。命令フェッチステージ2
は、この命令フェッチ要求に応答して命令ポインタIP
を命令メモリ1へ与え、命令メモリ1からこの命令ポイ
ンタIPに対応する複数の命令をフェッチする。このフ
ェッチされた複数の命令M1〜M4は、命令デコードス
テージ3に含まれるデコード回路M1〜M4へ同時に与
えられる。このデコード回路D1〜D4は与えられた複
数の命令を同時にデコードする。
パイプラインシーケンサSCは、このデコード回路D1
〜D4でデコードされた命令から、計算リソースおよび
データレジスタが競合しない、並列処理可能な命令を検
出し、この並列処理可能な命令を対応の機能ユニットへ
発行する。
命令を与えられた機能ユニットは、この与えられた命令
に従って処理を1列に実行する。機能ユニット4ないし
7はパイプライン化されており、第14図に示す各実行
ステージおよび書込みステージに従って処理が実行され
る。
また、命令フェッチステージ2および命令デコードステ
ージ3および命令実行ステージ(機能ユニット4ないし
7)の動作もパイプライン化されているため、これらは
互いにオーバーラツプしながら所定の動作を実行してい
る。
上述のように各ステージおよび機能ユニットの動作をパ
イプライン化しかつ複数の機能ユニットで並列に処理を
実行することにより高速で命令を実行することができる
[発明が解決しようとする課題] 上述のように、スーパースカラにおいては、複数の命令
がフェッチされ、かつ同時に複数の命令が実行されるた
め、通常のプロセサに比べて処理速度の向上を図ること
ができる。
たとえば、第14図に示す構成において、同時にフェッ
チされた4つの命令(Ml〜M4.第15図参照)が4
つの機能ユニット4ないし7で並列に実行された場合、
4クロツクサイクルで4命令を処理・実行することがで
きる(機能ユニット4.5および6のパイプラインが機
能ユニット7の処理完了まで待ち合わせ状態となる場合
)。
命令スケジューラ(または命令デコードステージに含ま
れるパイプラインシーケンサSC)は、効率的に並列処
理が実行されるように命令のスケジューリングを実行す
るが、同時にフェッチされた命令が常に同時に機能ユニ
ットにおいて処理されるとは限らない。
第16図は命令デコードステージから発行される命令の
発行状況の一例を示す図である。以下、第16図を参照
して命令デコードステージからの命令発行について説明
する。
まずサイクル1においては、フェッチされた4つの命令
を解読する。命令2ないし4は命令1と並列処理実行が
できないため、命令1のみが機能ユニットへ発行される
サイクル2においては、命令2および命令3は同時処理
実行可能であり、一方、命令4は命令2および/または
命令3と、たとえばこれらの命令2または命令3の処理
結果を利用するなどの依存関係があるため並列に処理を
実行することができず、命令2および命令3のみが発行
される。
サイクル3において残りの命令4が発行される。
サイクル4において、新たにフェッチされた4つの命令
のうち命令5および命令6が同時処理可能であるとして
発行される。
ここで、命令の発行順序は、命令が並列に処理実行でき
ない場合、アドレスの小さいほうの命令が優先的に発行
される。
このようなデータ依存関係がない場合であっても、命令
を同時に発行できない場合がある。フェッチした命令に
分岐命令が含まれる場合である。
分岐命令に続く命令は、分岐命令による分岐発生の有無
により有効・無効が決定されるため、この分岐命令によ
る状態決定が生じるまで発行することができない。分岐
命令は、命令デコードステージで分岐が生じるか否かを
決定されるが、今、分岐命令が命令デコードステージに
供給されたサイクルにおいては、その決定ができなかっ
た場合を考える。このような分岐命令の1つに、条件付
き分岐命令がある。この具体的な場合としては以下のよ
うなものがある。
「分岐命令は、あるレジスタの内容がOの場合には分岐
を生じ、そうでない場合には分岐しない命令である。
ところが、このレジスタは、別の先行する命令による書
込みが終了しないと正しい値ではない。」このような場
合、分岐命令はその先行する命令によるレジスタへの書
込みが終了するまで実行を待ち合わせる必要がある。
このような命令として具体的に以下のような命令を考え
る。
■ 1oad  R1,50(R2) ■ brz   R1,1abel ■ add   R4,R5,R6 ■ sub   R7,R8,R9 命令■はレジスタR2の内容に50を加えたアドレスの
データメモリ8のデータをレジスタR1にロードする命
令である。
命令■は、レジスタR1の内容がOならば1abetに
分岐する命令である。
命令■は、レジスタR5の内容にレジスタR6の内容を
加えて、該加算結果をレジスタR4に書込む命令である
命令■は、レジスタR8の内容からレジスタR9の内容
を引いて、該演算結果をレジスタR7に書込む命令であ
る。
このような4つの命令が命令デコードステージへ与えら
れた場合、命令■のbrzという分岐命令は、命令■に
おける1oadに従って、データがレジスタR1に書込
まれるまで分岐を決定することができない。命令■およ
び命令■は、この命令■の分岐命令により分岐するか否
かによりその有効/無効が決定される。すなわち、命令
■において分岐が発生すると決定されれば、命令■およ
び命令■は実行すべきものではなく、無効とされるべき
ものである。一方、命令■において分岐が生じないと決
定されれば、この命令■および命令■は有効であり、機
能ユニットへ供給されて実行処理されるべきものである
。この場合の命令発行手順としては第17図に示すもの
が考えられる。
第17図は、フェッチした命令中に分岐命令が含まれる
ときの命令発行状況を示す図である。以下、第17図を
参照して上述の分岐命令brzが存在する場合の命令発
行について説明する。
サイクルOにおいて、命令■ないし命令■がフェッチさ
れ、命令デコードステージ3へ与えられる。
サイクル1において、この命令■ないし■がデコードさ
れる。
サイクル2において、命令■が機能ユニット(第14図
に示す機能ユニット6)へ発行され実行される。すなわ
ち、サイクル2において、レジスタR2の内容に50を
加えたアドレスが発生される。このとき、命令■ないし
命令■は機能ユニットへ発行されず、命令デコードステ
ージ3に保持される。第17図において(ID)は、命
令デコードステージにおける各命令の保持(待合わせ)
状態を示している。
サイクル3において、命令■に従って、データメモリ8
へのアクセスが行なわれる。このときまだ、レジスタR
1の内容は決定されていないため、命令■ないし命令■
は命令デコードステージ3に保持されている。
サイクル4において、命令■に従って、データレジスタ
R1への書込みが実行され、レジスタR1の内容が決定
する。
これにより、命令■の分岐の決定が行なわれ、分岐が行
なわれるべきでないと判断される。
サイクル5において、命令■および命令■が機能ユニッ
トへ発行され、実行される。
サイクル6において、命令■および命令■の実行結果が
データレジスタへ書込まれる。
このサイクル4において、データレジスタR1の内容が
決定し、命令■に従って分岐が行われるべきであると判
定された場合には、サイクル5において、命令■および
命令■の発行は行われず、これらの命令は無効とされ、
分岐命令をフェッチする動作が実行される。
上述のような命令発行の場合、分岐が生じない場合にお
いても分岐の発生の有無が決定されるまで、機能ユニッ
トへの発行が停止されるため、パイプラインに空きが生
じ、高速で命令を実行することができないという問題が
発生する。
それゆえに、この発明の目的は、分岐命令が存在する場
合においても、高速で命令を実行することのできる並列
処理装置を提供することである。
[課題を解決するための手段] この発明にかかる並列処理装置は、命令の有効/無効を
示す有効性フラグと、分岐命令による分岐決定待ちであ
るか否かを示す書込み遅延フラグとを命令に付加して、
該命令を関連の機能ユニットへ発行する手段と、有効性
フラグと書込み遅延フラグとに応答して、機能ユニット
に含まれるマシン状態変更ステージの動作を、データ保
持状態、データ無効化状態およびデータ書込み実行状態
のいずれかに設定する制御手段と、分岐命令による分岐
発生の有無検出信号に応答して、有効性フラグおよび書
込み遅延フラグの値を修正する手段とを含む。
〔作用] 有効性フラグは、その命令の有効/無効を示し、この命
令が実行されるべきか否かを示す。書込み遅延フラグは
、該命令実行結果をデータレジスタに書込むのを待ち合
わせるべきか否かを示す。
機能ユニットは、命令実行ステージと、この命令実行ス
テージからのデータをレジスタに書込むマシン状態変更
ステージとを含む。機能ユニットは、書込み遅延フラグ
が書込み遅延状態を示している場合には、この命令実行
ステージからのデータを保持し、レジスタへの書込みを
待ち合わせる。
命令実行ステージは、有効性フラグが有効を示している
ときには、フェッチ・デコード手段からの命令を実行す
る。このマシン状態変更ステージの動作はより有効性フ
ラグおよび書込み遅延フラグの値に応答して行なわれる
。分岐命令以降の命令は、この書込み遅延フラグに従っ
てデータレジスタへのデータ書込みが待機させられる。
このとき、有効性フラグが命令が有効であることを示し
ており、また分岐命令による分岐発生が検出されると、
書込み遅延フラグの値が修正され、レジスタへの書込み
を行なうべきことを示す値に修正される。
これにより、分岐命令による分岐が生じず、これらの保
持命令を実行すべきであることが示されると、即座にデ
ータレジスタへのデータの書込みが行なわれる。
これにより、分岐命令による分岐決定まで分岐以降の命
令の機能ユニットへの発行を待ち合わせる必要がなく、
高速で命令を処理することができる。
[発明の実施例] まず、この発明の実施例について説明する前に、この発
明による並列処理装置における命令発行/実行シーケン
スについて説明する。
第2図はこの発明による並列処理装置における命令発行
/実行シーケンスを示す図である。以下、この第2図を
参照して、命令発行/実行シーケンスについて説明する
この第2図に示す命令■ないし命令■は第17図に示す
命令■ないし命令■と同一である。
サイクルOにおいて、命令■ないし命令■がフェッチさ
れる。
サイクル1において、この命令■ないし命令■が命令デ
コードステージにおいてデコードされる。
サイクル2において、命令■、命令■および命令■の機
能ユニットへの発行が行なわれる。命令■において、デ
ータメモリ8のアドレスが発生される。一方、命令■お
よび命令■はたとえば整数ユニットである機能ユニット
4および5において命令が実行される。命令■は、命令
デコードステージ3において保持されており、まだこの
命令デコードステージにおいて分岐すべきか否かは決定
されていない。
サイクル3において、命令■に従ってデータメモリ8へ
のアクセスが行なわれ、所望のデータの読aが行なわれ
る。一方、命令■および命令■の実行結果はマシン状態
変更ステージ(WB)へ伝達され、そこで保持状態とさ
れる。このときまだ命令■および命令■による実行結果
のデータレジスタへの書込みは行われていない。
サイクル4において、命令■にしたがって、データメモ
リ8から読出されたデータがデータレジスタR1へ書込
まれ、レジスタR1の内容が決定する。このレジスタR
1の内容が決定されたことにより、命令デコードステー
ジにおいては、命令■により分岐すべきか否かの判定が
行なわれる。
この第2図においては分岐しないことが決定された場合
が示される。この命令■による分岐を行なわないことの
決定により、マシン状態変更ステージに保持されていた
命令■および命令■の実行結果がレジスタR4およびR
7へそれぞれ書込まれる。
サイクル4において、命令■による分岐が決定し、1a
belへ分岐すべきであるとされた場合には、この命令
■および命令■のマシン状態変更ステージに保持されて
いるデータは無効とされ、また命令実行ステージEXに
滞留している命令も無効とされる(これは有効性フラグ
を用いて行なわれる)。次のサイクル5において、分岐
発生時には、この分岐先の1abelの命令がフェッチ
される。
この第2図に示す命令の発行/実行シーケンスと第17
図に示す命令発行/実行シーケンスとを比較すれば、こ
の発明に従う命令発行/実行シーケンスの方が、命令■
および命令■の実行が2サイクル早く行なわれており、
より高速で命令を処理することが可能となっている。す
なわち、本発明による命令の発行/実行シーケンスをま
とめると以下のようになる。
(1) 分岐命令に続く命令は、分岐命令が分岐するか
否かが決定される前に、関連の機能ユニットへ発行され
実行される。
(2) これらの命令が、マシン状態を書換える状態に
なったときには、このマシン状態書換えを停止させ、待
機状態とする。
(3) 分岐命令による分岐が決定されたならば、すな
わち、分岐すべきであると判定された場合には、これら
の命令を無効化する。一方、分岐命令による分岐が生じ
ないことが決定したなら、これらの命令によるマシン状
態の書換えを許可する。
ここでマシン状態の書換えとは、たとえばデータレジス
タの内容の書換え、データメモリ8の内容の書換え、状
態フラグの書換えなど、命令実行によるある関連の装置
の状態の変更を示す。次に、この第2図に示す命令発行
/実行シーケンスを実現するための構成について説明す
る。
第1図はこの発明の一実施例である並列処理装置の要部
の構成を示す図であり、整数演算を行なう機能ユニット
(4または5)の部分の概略的な構成を示す図である。
第1図において、この機能ユニット(整数演算ユニット
)は、算術論理演算ユニッ) (ALU)による演算を
行なうEXステージと、このEXステージによる実行結
果をレジスタファイル9へ書込むWBXステージを含む
。EXステージは、機能ユニットにおける命令実行ステ
ージであり、WBXステージ機能ユニットおけるマシン
状態変更ステージである。
命令デコードステージ(IDステージ)は、命令メモリ
(第1図に示さず)からフェッチされた複数の命令をデ
コードする命令デコーダ1oを含む。命令デコーダ10
は、第15図に含むデコード回路およびパイプラインシ
ーケンサを含む。この命令デコーダ10は、与えられた
命令を解読し、この与えられた命令中に分岐命令が存在
するか否かを検出するとともに、この分岐命令が存在す
る場合に分岐命令以降の命令であるか否かを検出する。
この分岐命令以降の命令であるか否かの検出は、命令デ
コーダ10へ命令とリンクして与えられるアドレスによ
り判定される。
命令デコーダ10は、デコードした命令を対応の機能ユ
ニットのEXステージへ発行する。このとき、命令デコ
ーダ10は、命令IRとともに、この命令IRが有効で
あるか否かを示すフラグ1nst  availと、こ
の命令IRが分岐命令以降の命令であるか否かを示すフ
ラグde l ayinstを発生する。このフラグ1
nst  availは有効性フラグであり、フラグd
elay  1nstは、この命令によるマシン状態変
更を待ち合わせるべきか否かを示す書込み遅延フラグで
ある。
レジスタ・ファイル9は、複数のレジスタを含み、各レ
ジスタに所望のデータが格納される。このデータレジス
タとしてレジスタ・ファイル9を用いる構成は、たとえ
ば縮小命令セットコンピュータ(RI S C)などに
おいて用いられており、データメモリ8へのアクセスは
ロード(load)およびストア(s t o r e
)命令のみであり、その他の処理はすべてこのレジスタ
・ファイル9を用いて行なわれるのと同様の構成である
この第1図に示す並列処理装置は、第3図に示す2相の
互いに重なり合わないクロック信号TおよびLに応答し
て動作する。各サイクルの始まりは、クロック信号Tに
より規定される。
EXステージは、命令デコーダ10からの命令IRをク
ロック信号Tに応答して保持するTラッチ回路11と、
命令デコーダlOからの有効性フラグ1nst  av
ailをクロック信号Tに応答して保持するTラッチ回
路12と、命令デコーダ10からの書込み遅延フラグd
elay  1nstをクロック信号Tに応答してラッ
チするTラッチ回路13と、レジスタ・ファイル9から
の同時に読出された2つのデータdatalおよびda
ta2をそれぞれクロック信号Tに応答してラッチする
Tラッチ回路14および15を含む。ここで、整数演算
ユニットに対応して設けられるレジスターファイル9は
、2つのデータの読出しと1個のデータの書込みを1つ
のサイクルで行なうことができる。
EXステージはさらに、Tラッチ回路11〜13のそれ
ぞれの保持する命令およびフラグをそれぞれクロック信
号りに応答して保持するしラッチ回路17.18および
19を含む。Lラッチ回路17は、命令EX  IRを
クロック信号りに応答して保持する。Lラッチ回路18
は、Tラッチ回路12の保持する有効性フラグEX  
1nstava i Iをクロック信号りに応答して保
持する。
Lラッチ回路19は、Tラッチ回路13が保持する書込
み遅延フラグEX  delay  1nstをクロッ
ク信号りに応答してラッチする。
EXステージはさらに、ALU16の出力をクロック信
号りに応答して保持するしラッチ回路20を含む。
WBXステージ、Lラッチ回路17の命令をクロック信
号Tに応答して保持するTラッチ回路21と、Lラッチ
回路18が保持する有効性フラグEX  1nst  
avail  Lをクロック信号Tに応答して保持する
Tラッチ回路22と、Lラッチ回路19が保持する書込
み遅延フラグEXdelay  1nst  Lをクロ
ック信号Tに応答して保持するTラッチ回路23と、L
ラッチ回路20が保持する演算結果データEX  da
taLをクロック信号Tに応答して保持するTラッチ回
路24を含む。このTラッチ回路21が保持する命令W
B  IRに従ってレジスタ・ファイル9のレジスタが
選択され、該選択されたレジスタへ、Tラッチ回路24
が保持するデータWB  dataが書込まれる。
この並列処理装置はさらに、命令デコーダ10が発生す
る分岐決定指示信号takenと非分岐決定指示信号n
ot  takenと命令無効化指示信号EX  ca
nに応答して、このWBXステージ状態を、データ保持
状態、データ書込み実行状態、およびデータ無効化状態
のいずれかに設定するWBコントロール回路100を含
む。次に、この第1図を参照してこの発明の並列処理装
置の命令発行・実行シーケンスについて説明する。
命令デコーダ10は、書込み遅延フラグdelay  
1nstおよび有効性フラグ1nst  availを
対応の機能ユニットに命令IRを発行する際にその命令
に付加する。これらのフラグdetay  1nstお
よび1nst  availは各機能ユニット中におい
ては命令IRとともにパイプライン(EXステージおよ
びWBXステージだし整数ユニットの場合)を伝達され
、マシン状態の書換えを制御するために用いられる。
有効性フラグ1nst  availは、命令デコーダ
10から発行される命令が、実行されるべき有効な命令
であるか否かを示すフラグである。
たとえば命令メモリへ命令フェッチ要求を8した場合に
おいて、命令メモリから命令が供給されない場合、命令
デコーダ10へは、有効な命令が与えられないため、そ
のサイクルにおいては、命令は出力されない。したがっ
てこの場合有効性フラグ1nst  availはオフ
状態とされる。有効性フラグ1nst  availが
オンの命令は、有効な命令であることを示しており、機
能ユニット内で実行される。命令デコーダ10から機能
ユニットへ発行される命令IRに付随する有効性フラグ
1nst  availはオンにされる。これらのフラ
グdelay  1nstおよび1nstavailは
各ステージにおいて以下のように制御される。
(1) 命令デコードステージ(IDステージ)(a)
  命令デコードステージIDに供給された複数の命令
は、命令デコーダ10において、デコードされる。この
供給された命令中に分岐命令が存在し、この分岐命令が
そのサイクル内で分岐すべきか否かを決定することがで
きない場合、命令デコーダ10は、そのサイクルから分
岐が決定されるまでのサイクルの間分岐命令以降の命令
であって機能ユニットに発行される命令の書込み遅延フ
ラグdelay  1nstをオンにし、オン状態とさ
れた有効性フラグ1nst  availとともに命令
IRに付随させて出力する。
(b)  この命令デコーダ10へ与えられた命令中に
分岐決定を待合わせる命令が存在しない場合、命令実行
結果の書込みを遅延させる必要はないため、書込み遅延
フラグdelay  1nstはオフにして命令IRと
ともに発行される。
(c)  分岐命令が存在しかつその分岐が決定した場
合には、この分岐命令以降の命令は実行する必要がない
ため、有効性フラグ1nst  aVailがオフにさ
れる。このとき命令IRの機能ユニットへの発行は行な
われない。このとき、遅延フラグdelay  1ns
tはオフ状態とされる。
これらの命令IRおよびフラグdelay  1nst
および1nst  availは機能ユニットのEXス
テージを介してWBXステージ伝達される。このWBX
ステージおいては以下の制御が行なわれる。
(2) マシン状態の書換え(変更)が生じるWBXス
テージ (a)  命令WB  IRがマシン状態の書換えを行
なう命令であり、かつ書込み遅延フラグde13y  
1nstがオンの場合、この命令WBIRは、分岐/非
分岐の決定待ち状態であり、マシン状態の変更を行なっ
てはならない場合である。
このマシン状態の書換えの実行は中断され分岐・非分岐
の決定を待ち合わせる。
(b)  分岐命令による分岐を行なうことが決定した
場合、命令デコーダ10からは分岐指示信号taken
とEXステージに滞留している命令を無効化するための
信号EX  canとが発生される。WBコントロール
回路100は、フラグWB  delay  1nst
およびWBinstava i lがともにオンである
命令WB  IRの有効性フラグWB  1nst  
availをオフに設定する。これにより、WBXステ
ージおける命令WB  IRが無効化され、この命令W
B−IRによるマシン状態の変更(第1図に示す構成に
おいてはレジスタ・ファイル9へのデータの書込み)が
禁止される。これにより分岐命令後の機能ユニットへ発
行された命令が無効化される。
(C)  分岐命令による分岐が生じないことが決定し
た場合、命令デコーダ10からは非分岐検出信号not
  takenが発生される。WBコントロール回路1
00は、このとき、書込み遅延フラグWB  dela
y  1nstをオフ状態に設定する。これにより、分
岐が生じた時に備えて中断状態にあった命令WB  I
Rによるマシン状態の変更が即座に実行される。次に、
第1図を参照して、具体的に動作について説明する。
命令メモリからフェッチされた命令は命令デコーダ10
でデコードされる。デコード結果が整数演算命令の場合
、命令デコーダ10からレジスタ・ファイル9へ2つの
レジスタ指定信号(レジスタポインタ)が与えられ、被
演算データである2つのデータdatalおよびda 
t a2が読出される。
また、命令デコーダ10は、デコード結果の命令IRと
、この命令IRが有効であることを示すオン状態の有効
性フラグ1nst  availと1書込み遅延フラグ
dealy  1nstを出力する。書込み遅延フラグ
delay  1nstは、命令IRが分岐命令以降の
命令であるか、およびこのサイクルでその分岐命令の分
岐/非分岐が決定できたか否かに応じて定められる。分
岐命令の分岐決定待ち状態の場合、この書込み遅延フラ
グdelay  1nstはオン(1)状態にされる。
分岐命令が存在しない場合または分岐命令による分岐が
決定した場合、この書込み遅延フラグdelay  f
nstはオフ(0)状態に設定される。
このサイクルにおいて分岐命令による分岐が決定し、命
令IRが不必要な場合には、有効性フラグ1nst  
availはオフ状態とされる。
命令デコーダ10からの出力およびレジスタ・ファイル
9からの出力はTラッチ回路11ないし15で保持され
る。このTラッチ回路14および15に保持されたデー
タtmplおよびtmp2(データdatalおよびd
a t a2に相当する)はALU16へ与えられ、所
定の演算が実行される。
クロック信号りに応答して、Tラッチ回路11ないし1
3に保持されている命令およびフラグはそれぞれLラッ
チ回路17ないし19に保持される。また、ALU16
の出力はクロック信号りに応答してLラッチ回路20に
保持される。それにより、EXステージにおける動作は
完了する。
WBXステージおいて、滞留する命令が存在しない場合
には、このLラッチ回路17ないし20に保持された命
令、フラグおよびデータはTラッチ回路21ないし24
によりクロック信号Tに応答して保持される。WBXス
テージ滞留する命令(すなわち、分岐決定待ち等の命令
)が存在する場合、EXステージは該命令、フラグおよ
びデータを保持し続ける。
WBXステージおいては、Lラッチ回路23に保持され
ているフラグWB  delay  1nstがオン状
態の場合、WBコントロール回路100の制御のもとに
、レジスタ・ファイル9へのデータの書込みはマシン状
態変更待ち合わせ状態となり、与えられたデータを保持
し続ける。
命令デコーダ10において、分岐命令による分岐が決定
したと判断されると、分岐決定指示信号takenが発
生され、WBコントロール回路100へ与えられる。W
Bコントロール回路100は、この信号t akenに
応答して、書込み遅延フラグWB  delay  1
nstをオフ状態とし、かつ有効性フラグWB  1n
st  availをオフ状態とする。これにより、T
ラッチ回路21に保持された命令WB  IRは無効に
され、また、Tラッチ回路24に保持されたデータWB
aataが無効にされてレジスタφファイル9への書込
みは行なわれない。
一方、命令デコーダ10において、分岐命令による分岐
が生じないことが決定されると、非分岐決定検出信号y
l□t  takenが発生されWBコントロール回路
100へ与えられる。WBコントロール回路100は、
この信号not  takenに応答して、Tラッチ回
路23に保持された書込み遅延フラグWB  dela
y  1nstをオフ状態にする。これにより、Tラッ
チ回路21に保持された命令WB  IRに従ってレジ
スタ・ファイル9のレジスタ選択が行なわれ、この選択
されたレジスタへのデータWBdataの書込みが行な
われる。
なお命令デコーダ10において、分岐決定検出信号ta
kenが発生されたとき、EXステージに保持されてい
る命令EX  IRLを無効にするための信号EX  
canが発生される。この信号EX  canに応答し
て、Lラッチ回路18に保持されている有効性フラグE
X  1nst  avai’l  Lはオフ状態とさ
れ、このEXステージに保持された命令の無効化が行な
われる。次に、上述の分岐処理待ち合わせおよび分岐決
定時における命令の無効化を実現するための構成につい
て説明する。
第4図はマシン状態変更ステージ(WBXステージにお
ける論理構成の一例を示す図である。第4図において、
WBXステージ、Tラッチ回路21の前段に設けられる
論理回路30と、Tラッチ回路22の前段に設けられる
論理回路31と、Tラッチ回路23の前段に設けられる
論理回路32と、Tラッチ回路24の前段に設けられる
論理回路33を含む。
論理回路30は、WBXステージマシン状態変更待機状
態すなわち分岐決定待ち合わせ状態にあることを示す信
号WBbusyとこのWBXステージ保持された命令が
無効化されることを示す信号WBcanとに応答して、
命令EX  IRLまたは命令WB  IRLのいずれ
か一方を選択的に通過させる。
論理回路31は、信号WBbusyと信号WB  ca
nとEXステー−ジの命令が無効化されたことを示す信
号EX  canとに応答して、EXステージからの有
効性フラグEX  1nst  avail  LとW
BXステージおける有効性フラグWB  1nst  
avail  Lのいずれか一方を選択的に通過させる
論理回路32は、信号WBbusyおよびWB  ca
nに応答して、EXステージからの書込み遅延フラグE
X  delay  1nst  LとWBXステージ
書込み遅延フラグWBdelay  1nst  Lの
いずれか一方を通過させる。
論理回路33は、信号WBbusyおよびWB  ca
nに応答して、EXステージからのデータEX  da
ta  LおよびWBXステージデータWB  dat
a  Lのいずれか一方を選択的に通過させる。
WBXステージさらに、Tラッチ回路21に保持された
命令WB  IRをデコードし、レジスタ・ファイル9
ヘデータを書き込むべきか否かを示す書込み指示信号w
RFとレジスタ・ファイル9のレジスタポインタadd
ressを発生する命令デコーダ34と、WBXステー
ジ状態を監視し、このWBXステージ、データ保持状態
、データ無効化状態およびデータ書込み実行状態のいず
れかに設定する論理回路29を含む。
論理回路29は、命令デコーダ34からのレジスタファ
イル書込み指示信号w  RFと、命令デコーダ10か
らの分岐決定信号takenと、非分岐決定信号not
  takenと、有効性フラグWB  1nst  
avafl  Lと、書込み遅延フラグWB  del
ay  1nst  Lとに応答して、信号WBbus
yおよびWBcanと、レジスタ・ファイル9を書込み
可能状態に設定する信号wenとを発生する。
論理回路31はrin  1ogiclJで示される論
理を実行する。論理回路30.32および33はrin
  iogic2Jで示される論理を実行する。論理回
路29は、rWB  busy−1ogicJで示され
る論理を実行する。次に、各論理回路の実現する論理に
ついて説明する。
第5図は論理回路29が実現するWBbusy  lo
gicの論理を一覧にして示す図である。
以下、論理回路29の論理について説明する。
(1)  WBステージに有効な命令が存在しない場合
: この状態においては、WBステージは何ら書込みを行な
うべきデータを保持していないため、何の動作も実行し
ない。すなわち、 WB  1nst  avail  Lがオフ(0)の
場合には、信号wenSWB  busyおよびWBc
anはすべてオフ(0)である。
(2)  WBステージに有効な命令が保持されている
場合: この状態ではWB  1nst  avail  Lは
オン(1)状態である。
(a)  命令デコーダ34からの信号wRFがオフ状
態の場合、レジスタ・ファイルへのデータの書込は生じ
ない。このような状態は、たとえば単に条件判断を行な
う命令の場合に生じる。すなわち、たとえばある比較結
果に基づいて次の処理が決定される場合、この比較結果
はレジスタに書込む必要がないため、このような状態が
生じる。
この場合、データの書込みは生じず、また次のサイクル
で新たな命令を取り込むことができる。
したがって、 wRFがオフの場合、信号yen、WB  busyお
よびWBcanはすべてオフ状態に設定される。
(b)  信号w  RFがオンであり、フラグWB 
 delay  1nst  Lがオフのとき:この場
合、WBステージにおいて有効な命令が存在し、かつ分
岐決定待ち合わせ状態ではないため、データの書込みを
実行しても良い。したがって、 wRFがオンでかつWB  delay  1nst 
 Lがオフの場合には、信号wenがオン、信号WBb
usyおよびWBcanがオフとなる。
(c)  信号w  RFおよびフラグWBdelay
  1nat  Lがオンの場合:この場合は、WBス
テージにおいてデータ書込みを実行すべき命令が存在し
、かつこの命令は分岐命令以降の命令であることを示し
ている。
■ この状態において、命令デコーダにおいて分岐/非
分岐が未決定状態の場合には、WBステージはマシン状
態変更待ち合わせ状態となる。したがって、 信号not  takenおよびt akenがともに
オフ状態の場合には、信号yenおよびWBcanがオ
フ、信号WBbusyがオンとなる。
■ 分岐処理待ち合わせ状態において、非分岐が決定さ
れた場合: この場合、このWBステージの命令を即座に実行しても
よい。したがって、 信号not  takenがオン、かつ信号taken
がオフの場合には、信号wenがオン、WB  bus
yおよびWBcanがともにオフとなる。
■ 待機状態において、分岐が決定した場合:この場合
、このWBステージに保持されている命令は無効にされ
る。すなわちレジスタ・ファイルへのデータ書込みが実
行されず、以降のサイクルにおいて与えられる有効命令
待ち状態となる。
すなわち、 信号not  takenがオフであり、かつ信号ta
kenがオンの場合には、信号wenおよびWBbus
yがオフとなり、信号WBcanがオンとなる。
この箪5図に示すWB  busy  logicの論
理を実現する具体的な回路構成は示さないが、この第5
図に示す表から容易に構成することができる。この論理
はANDゲートおよびORゲートなどのゲート回路を用
いて作成してもよく、またPLD (プログラマブル・
ロジック・デバイス)を用いて作成してもよい。
第6図はin  logiclの論理を一覧にして示す
図である。このin  logiclは論理回路31が
実行する。以下、第6図を参照してin  logic
lの論理について説明する。
(1)  WB  canがオン状態の場合:この状態
は、WBXステージおいて、分岐決定待ちの命令が無効
化された状態を示す。WBXステージ、次のサイクルに
有効な命令を保持するかどうかは、EXステージがその
サイクルで無効化されたかどうかに依存する。信号EX
  canがオフのときは、EXステージの命令がその
まま次のサイクルにおいてWBXステージ供給される。
この命令の有効/無効はフラグEX  1nstava
il  Lにより決定される。したがって、EX  c
anがオフ状態の場合には、フラグWBinst  a
vailはEX  1nst  avail  Lに等
しくなる。
フラグEX  canがオンの場合は、EXステージの
命令は無効化されたことを示している。したがって、W
BXステージ次のサイクルには、有効な命令はEXステ
ージには供給されない。したがって、EX  canが
オンの場合にはWBinst  availはオフとな
る。
(2)  WB  canがオフの場合二この状態はW
BXステージおける命令の無効化動作は実行されないこ
とを示している。
第7図はrin  logic2Jの実現する論理を示
す図である。以下、第7図を参照して「in  log
ic2Jの論理について説明する。
もし信号WBbusyがオフ状態の場合には、このWB
Xステージは次のサイクルにおいても保持すべき命令が
存在しないことを示しており、EXステージから与えら
れる命令をWBXステージ取り込んでよいことを示して
いる。したがって、信号WBbusyがオフならば、フ
ラグWBinst  availはフラグEX  1n
stavail  Lに等しくなる。
信号WBbusyがオン状態の場合には、WBXステー
ジ、分岐/非分岐決定待ち状態の命令を保持しているこ
とを示している。したがって、次のサイクルにおいても
、このサイクルにおける有効性フラグを保持する必要が
ある。したがって、フラグWB  1nst  ava
ilは、フラグWB  1nst  avail  L
と等しくなる。
上述の論理動作を実行する論理回路をWBXステージ設
けることにより、分岐命令の決定待ち状態において、非
分岐が決定された場合高速でデータを書込むことができ
る。この動作について以下に動作波形図を参照して説明
する。
第8図は、分岐決定待ち合わせ状態において分岐が決定
したときのWBXステージ動作を示す信号波形図である
。以下、第8図を参照して分岐決定時の動作について説
明する。
サイクル0: このサイクルにおいて、WBXステージ、分岐命令以降
の命令でありかつ分岐命令の状態決定待ちをすべき命令
が供給される。この命令の書込み遅延フラグWB  d
elay  ins’tはオン状態である。またこの命
令の有効性フラグWBinst  availもオン状
態である。論理回路26および27の出力WB  de
lay  1nstLおよびWB  1nst  av
ail  Lはクロック信号りに応答してその状態が確
定する。
これに応答して、論理回路29からの信号WBbusy
がオン状態となる。
ここで、このWBXステージ与えられた命令はレジスタ
・ファイルへデータを書込む命令であり、命令デコーダ
34からはクロック信号Tに応答して信号w  RFが
発生されている状態を想定している。また、論理回路2
9は、この分岐決定待ち合わせ状態に従って、書込みイ
ネーブル信号wenを発生せず、データ書込み禁止状態
に設定する。
レジスターファイル9は、クロック信号りにおける信号
wenに応答して、ラッチ回路28のデータWB  d
ata  Lの書込みを行なっている。
ただしレジスタポインタaddressはクロック信号
Tに応答して確定する。このサイクルではレジスタ・フ
ァイル9へのデータ書込みは禁止状態とされる。
一方、信号WBbusyのオン状態に応答して、論理回
路30.31.32および33は、その入力経路を切換
えて対応のしラッチ回路25.26.27および28の
出力を選択し、それぞれ対応のTラッチ回路21.22
.23、および24へ伝達する。
サイクル1; このサイクルにおいては信号WBbusyはオン状態で
あるため、サイクル0にWBXステージ与えられた命令
およびフラグならびにデータが再びTラッチ回路21な
いし24で保持される。
サイクル2: このサイクルにおいて、分岐が決定し、このWBXステ
ージ命令を無効とすべきことが決定される。この場合、
信号takenがオン状態となり、論理回路29へ与え
られる。これにより、書込みイネーブル信号w e n
の発生が禁止され、レジスタ・ファイル9へのデータの
書込みは禁止される。
また、この信号takenに応答して、信号WBbus
yがオフ状態、また信号W13canがオン状態に設定
される。この信号WB  busyに応答して、WBX
ステージEXステージからの命令受入れ可能状態となる
このとき、EXステージに保持されている命令が分岐命
令以降の命令であり、分岐先命令と無関係な命令の場合
、このEXステージに保持された命令を無効化するため
に信号EX  canが発生される。したがって、サイ
クル3におけるフラグWB  1nst  avail
およびWBdelay  1nstはこのサイクル2に
おいてEXステージに保持されている命令のフラグに対
応したものとなる。
サイクル3においては、信号WB  busy。
信号t akenおよびWBcanはすべてオフ状態と
なり、WBXステージ、EXステージから与えられた命
令を処理することになる。
ここで、論理回路30.32および33の「in  1
ogic2J論理は信号WBcanをも受けているが、
上述の論理動作では信号WB  busyに応じてその
論理が設定されている。信号WBcanをも併せて用い
、信号WBbusyがオンにありかつ信号WBcanが
オフ状態の場合にはそのWBXステージ命令、フラグお
よびデータを保持し、また信号wsbusyがオフのと
き、信号WBcanのオン/オフ状態にかかわらずEX
ステージからの命令、データおよびフラグを通過させる
構成としてもよい。図面においてはこの2つの信号WB
busyと信号WB  can両者を用いる場合の回路
構成が示されている。
また、信号EX  canは信号takenが発生され
た場合には必ず発生されるが、分岐発生時でなくても、
EXステージに保持されたデータを無効化する必要が生
じる場合も考えられるため、このような場合にこの信号
EX  canが発生されて、EXステージの命令の無
効化が行なわれる。
信号WBcanも同様である。
また、第8図に示す信号波形図においては信号wenの
立上りおよび立下がりタイミングはある幅を持たせてお
り、また信号takenの立下がり時点もある幅を持た
せている。これはこの時間幅において各信号が適当なタ
イミングで立上りまたは立下がりすればよいことを示し
ている。すなわち、信号wenは、この確定状態のデー
タWBdata  Lを書込むことができるようなタイ
ミングでイネーブルされればよく、またディスエーブル
状態はこのデータ書込み決定状態前に確定状態とされる
タイミングで確定していればよい。
また1信号takenは、クロック信号りのタイミング
で発生されるが、その立下がりタイミングは、次のサイ
クルにおける、分岐決定時における分岐先命令のフェッ
チ処理を実行する動作を規定するように設定されておれ
ばよく、たとえば第8図においてサイクル3の開始時点
においてその状態が確定状態に保持されていればよい。
次に、非分岐決定時の動作について第9図を参照して説
明する。
第9図はWBXステージおける分岐状態決定待ち合わせ
状態において非分岐が決定された場合の動作を示す波形
図である。
サイクルOおよびサイクル1は第8図に示すサイクル0
およびサイクル1と同様である。サイクル2において、
分岐を行なわないことが決定されると信号not  t
akenがオン状態となる。
これに応答して書込みイネーブル信号wenがオン状態
となり、レジスタ・ファイル9へのデータ書込みが可能
状態とされる。レジスタ・ファイル9は、この信号we
nに応答して、Lラッチ回路28からのデータWB  
data  Lを、命令デコーダ34からのレジスタポ
インタaddressが指定するレジスタへ書込む。
またこのとき、WBXステージ命令が実行され、マシン
状態の変更が行なわれたため、wBXステージ次のEX
ステージからの命令受入可能状態となる。したがって、
信号WBbusyがオフ状態となる。このとき、信号W
Bcanはオフ状態のままである。これにより、各論理
回路30ないし33は、EXステージのしラッチ回路a
カを通過させる状態となる。
サイクル3における動作は、このEXステージから与え
られる命令に対応した処理が行なわれる。
すなわち、EXステージから与えられる命令が無効命令
であれば、何ら実行処理は行なわれず、有効命令であれ
ば、その命令に従う処理が実行される。次にEXステー
ジの論理および動作について説明する。
第10図はEXステージの構成を示す図である。
第10図において、第1図に示す構成と対応する部分に
は同一の参照番号が付されている。
第10図において、EXステージは、Tラッチ回路11
.12.13.14および15の前段に設けられた論理
回路41.42.43.44および45と、Tラッチ回
路14および15の保持データをそれぞれクロック信号
りに応答して保持するLラッチ回路35および36を含
む。
論理回路41は信号WBbusyに応答して、命令デコ
ーダ10からの命令IRまたはLラッチ回路17からの
命令EX  IRLのいずれか一方を通過させる。論理
回路42は、信号WB  busyに応答して、命令デ
コーダ10からの有効性フラグ1nst  avail
とLラッチ回路18′からの有効性フラグEX  1n
st  avaiI  Lのいずれか一方を通過させる
論理回路43は、命令デコーダ10からの書込み遅延フ
ラグdelay  1nstとLラッチ回路19からの
フラグEX−delay  1nstLのいずれか一方
を通過させる。
論理回路44および45は、レジスタファイルから読出
されたデータdatalおよびdata2とLラッチ回
路35および36の保持データtmpl  Lおよびt
mp2  Lのいずれか一方をそれぞれ通過させる。
Lラッチ回路18′は、信号EX  canに応答して
その保持データがリセットされてオフ状態に設定される
。このしラッチ回路18′の信号EX  canによる
保持データの制御は、信号EXcanがクロック信号り
の発生時に確定状態にあれば、このLラッチ回路18′
の入力部に信号EX  canに応答してその出力値を
EX  1nst  availまたは0に設定する回
路を設ける構成としてもよい。
論理回路41ないし45は同一の論理を実現し、「in
  1ogic3Jで示される論理を実行する。
第11図はrin  1ogic3Jの論理を一覧にし
て示す図である。以下、第10図および第11図を参照
して「in  logic3Jの論理について説明する
EXステージがWBXステージ命令を供給することがで
きず、命令保持状態となるのは、WBXステージ命令保
持状態にある場合である。この状態は、信号WBbus
yがオン(1)であることにより表される。したがって
、信号WBbusyがオン(1)の場合、論理回路41
ないし45は対応のしラッチ回路17.18’、19.
35および36からの出力を通過させて対応のTラッチ
回路11ないし15へ伝達する。
一方、信号WBbusyがオフ(0)の場合、EXステ
ージは、この保持している命令をWBXステージ供給す
ることができ、新たに命令を命令デコーダ10から受け
ることができる。したがって、信号WBbusyがオフ
の場合には、この論理回路41ないし45は、命令デコ
ーダ10からの出力およびレジスタ・ファイル9からの
出力データを通過させる。
第12図は、Lラッチ回路18′の動作状態を一覧にし
て示す図である。以下、この第12図を参照してLラッ
チ回路18′の動作について説明する。信号EX  c
anがオン(1)に設定されると、EXステージに保持
された命令が無効化されることを示す。したがって、信
号EX  canがオンならば、Lラッチ回路18′の
出力はOとなる。
一方、信号EX  canがオフ(0)状態の場合、E
Xステージに保持されている命令を特に無効化する必要
はないことを示している。この場合、Lラッチ回路18
′ は、Tラッチ回路12からの有効性フラグEX  
1nst  availをそのまま保持する。すなわち
、信号EX  canがオフの場合、フラグEX  1
nst  avaflLはそのサイクルにおける有効性
フラグEX  1nst  availとなる。
上述の構成により分岐命令以降の命令を、WBXステー
ジ命令処理状況に応じてEXステージにおいて実行、保
持することができる。信号WBbusyはまた、命令デ
コーダ10へ与えられて、その命令発行の中断(待合わ
せ)の制御に用いられてもよい。
上記実施例においては、整数ユニットに対する命令の保
持/無効化を行なうための構成について説明したが、他
の機能ユニット、浮動小数点演算ユニット、メモリアク
セスユニット等においても、同一の構成をそのマシン状
態変更ステージへ適用することにより同様の効果を得る
ことができる。
また、機能ユニットの数は4つに限定されない。
口発明の効果] 以上のように、この発明によれば、分岐命令以降の命令
に対しては、分岐命令以降の命令であることを示す書込
み遅延フラグを該命令に付加して機能ユニットへ発行し
、この機能ユニットにおけるマシン状態変更動作を書込
み遅延フラグに従って制御するように構成したので、分
岐命令による分岐・非分岐が未決定状態であっても、分
岐命令以降の命令を機能ユニットへ発行することができ
、かつ分岐決定時には即座にマシン状態の変更を行なう
ことができるので、処理速度が大幅に改善された並列処
理装置を得ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例である並列処理装置におけ
る機能ユニット部の構成を概略的に示す論理図である。 第2図はこの発明による命令実行方式を概略的に示す図
である。第3図はこの発明による並列処理装置が用いる
クロック信号を示す波形図である。第4図はこの発明の
一実施例である並列処理装置におけるレジスタ書込みス
テージ(マシン状態変更ステージ)の構成を概略的に示
す論理図である。第5図は第4図に示すWB  bus
y  logicの論理を一覧にして示す図である。第
6図は第4図に示す「in  logicl」が実現す
る論理を一覧にして示す図である。 第7図は第4図に示すrin  logic2Jの実現
する論理を一覧にして示す図である。第8図はこの発明
の一実施例である並列処理装置におけるマシン分岐決定
時におけるマシン状態変更ステージの動作を示す波形図
である。第9図はこの発明の一実施例である並列処理装
置における分岐命令の非分岐決定時におけるマシン状態
変更ステージの動作を示す信号波形図である。第10図
はこの発明の一実施例である並列処理装置の機能ユニッ
トの実行ステージの構成を概略的に示す論理図である。 第11図は第10図に示すrin  l。 gic3Jの論理を一覧にして示す図である。第12図
は第10図に示す有効性フラグの出力用Lラッチ回路の
論理動作を一覧にして示す図である。 第13図は並列処理装置の概念的構成を示す図である。 第14図はスーパニスカラの一般的構成を示す図である
。第15図はスーパニスカラにおける命令デコードステ
ージの構成を示す図である。 第16図はスーパニスカラにおける命令デコードステー
ジから機能ユニットへの命令の発行状況を示す図である
。第17図は従来の並列処理装置における分岐発生時の
命令発行/実行状況を示す図である。 図において、4.5.6および7は機能ユニット、8は
データメモリ、9はレジスタ・ファイル、10は命令デ
コーダ、11.12.13.14.15.21.22.
23.24はTラッチ回路、17.18.19.20,
25.26.27.281.35および36はLラッチ
回路、29.30.31.32.33.41.42.4
3.44.45は論理回路、34はWBステージに含ま
れる命令デコーダである。 なお、各図中、同一符号は同一または相当部分を示す。 島2図 サイ21し 島3図 ち17図 す/17/し ド ア図 匙8図 サイフル0 トえ決定時 も1[図 in−logic 3 CA埼fl め12図 島13図 壽14聞 スーパスカウ会一般¥lrJ不4〜 ずfeat 躬15図 浩160

Claims (1)

  1. 【特許請求の範囲】 各々が所定の機能を実行する複数の機能ユニットと、命
    令を格納する命令メモリと、前記命令メモリから複数の
    命令をフェッチし、該フェッチした命令のうち同時処理
    可能な命令を検出して、同時処理可能な命令を関連の機
    能ユニットへ供給するフェッチ・デコード手段とを備え
    る並列処理装置であって、前記機能ユニットの各々は前
    記フェッチ・デコード手段からの命令を実行する命令実
    行ステージと、該命令実行ステージからのデータをレジ
    スタ手段へ書込むマシン状態変更ステージとを含み、か
    つフェッチ・デコード手段はフェッチした複数の命令に
    分岐命令が含まれるか否かを検出する手段と該分岐命令
    による分岐が発生したか否かを示す分岐発生指示信号を
    出力する手段とを含み、 機能ユニットへ供給される命令の有効・無効を示す有効
    性フラグと、該命令が分岐命令以降の命令であるか否か
    を示す書込遅延フラグとを該命令へ付加して関連の機能
    ユニットへ供給する手段、前記有効性フラグと前記書込
    遅延フラグとに応答して、前記マシン状態変更ステージ
    の動作をデータ保持状態、データ無効化状態およびデー
    タ書込み実行状態のいずれかに設定する制御手段、およ
    び 前記分岐発生指示信号に応答して、前記有効性フラグお
    よび前記書込遅延フラグの値を修正する手段とを備える
    、並列処理装置。
JP2279653A 1990-10-17 1990-10-17 並列処理装置 Expired - Lifetime JP2535252B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2279653A JP2535252B2 (ja) 1990-10-17 1990-10-17 並列処理装置
DE4134392A DE4134392C2 (de) 1990-10-17 1991-10-17 Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung
US08/310,508 US5522084A (en) 1990-10-17 1994-09-22 Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2279653A JP2535252B2 (ja) 1990-10-17 1990-10-17 並列処理装置

Publications (2)

Publication Number Publication Date
JPH04153734A true JPH04153734A (ja) 1992-05-27
JP2535252B2 JP2535252B2 (ja) 1996-09-18

Family

ID=17613981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2279653A Expired - Lifetime JP2535252B2 (ja) 1990-10-17 1990-10-17 並列処理装置

Country Status (3)

Country Link
US (1) US5522084A (ja)
JP (1) JP2535252B2 (ja)
DE (1) DE4134392C2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182168A (ja) * 1993-12-24 1995-07-21 Nec Corp 演算装置及びその制御方法
JPH07271582A (ja) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> オペレーションの処理システム及び方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0488819B1 (en) * 1990-11-30 1999-01-13 Kabushiki Kaisha Toshiba Conditional branch instructions execution apparatus
GB2296350B (en) * 1994-12-21 1999-10-06 Advanced Risc Mach Ltd Data processing divider
JPH08194679A (ja) * 1995-01-19 1996-07-30 Texas Instr Japan Ltd ディジタル信号処理方法及び装置並びにメモリセル読出し方法
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5796997A (en) * 1996-05-15 1998-08-18 Hewlett-Packard Company Fast nullify system and method for transforming a nullify function into a select function
US5958042A (en) * 1996-06-11 1999-09-28 Sun Microsystems, Inc. Grouping logic circuit in a pipelined superscalar processor
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
JPH1063500A (ja) * 1996-08-23 1998-03-06 Matsushita Electric Ind Co Ltd 信号処理装置
DE10101949C1 (de) * 2001-01-17 2002-08-08 Infineon Technologies Ag Datenverarbeitungsverfahren
JP2009169767A (ja) 2008-01-17 2009-07-30 Toshiba Corp パイプライン型プロセッサ
US9983990B1 (en) * 2013-11-21 2018-05-29 Altera Corporation Configurable storage circuits with embedded processing and control circuitry
US10552162B2 (en) * 2018-01-22 2020-02-04 International Business Machines Corporation Variable latency flush filtering
CN112559049A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 用于指令高速缓存的路预测方法、访问控制单元以及指令处理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
US4924525A (en) * 1986-10-20 1990-05-15 Bodigard Technologies, Inc. Multilayer film for chemical protective clothing
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
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
US5197135A (en) * 1990-06-26 1993-03-23 International Business Machines Corporation Memory management for scalable compound instruction set machines with in-memory compounding
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182168A (ja) * 1993-12-24 1995-07-21 Nec Corp 演算装置及びその制御方法
JPH07271582A (ja) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> オペレーションの処理システム及び方法

Also Published As

Publication number Publication date
DE4134392A1 (de) 1992-04-23
JP2535252B2 (ja) 1996-09-18
US5522084A (en) 1996-05-28
DE4134392C2 (de) 1996-06-05

Similar Documents

Publication Publication Date Title
US7111126B2 (en) Apparatus and method for loading data values
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US20070022277A1 (en) Method and system for an enhanced microprocessor
US7065632B1 (en) Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
US8539485B2 (en) Polling using reservation mechanism
JP3547482B2 (ja) 情報処理装置
US5561774A (en) Parallel processing type processor system with trap and stall control functions
US7631149B2 (en) Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
JP2010526392A (ja) システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法
JPH04275628A (ja) 演算処理装置
JPH09212359A (ja) マイクロプロセッサ及びデータ処理方法
JP2002268878A (ja) スレッド間優先度可変プロセッサ
JPH04153734A (ja) 並列処理装置
JP2006351008A (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
JP2014063385A (ja) 演算処理装置及び演算処理装置の制御方法
US6101596A (en) Information processor for performing processing without register conflicts
US6006325A (en) Method and apparatus for instruction and data serialization in a computer processor
JP2000330788A (ja) コンピュータシステム
US6735687B1 (en) Multithreaded microprocessor with asymmetrical central processing units
KR20010077997A (ko) 단일 사이클 파이프라인 기능 정지를 발생하기 위한파이프라인 프로세서 시스템 및 방법
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
US6675287B1 (en) Method and apparatus for store forwarding using a response buffer data path in a write-allocate-configurable microprocessor
US6769057B2 (en) System and method for determining operand access to data
JP2000353091A (ja) コンピュータシステムにおける命令実行方法およびコンピュータシステム
US6260133B1 (en) Processor having operating instruction which uses operation units in different pipelines simultaneously

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 15