JPS5896345A - 階層型演算方式 - Google Patents

階層型演算方式

Info

Publication number
JPS5896345A
JPS5896345A JP56194001A JP19400181A JPS5896345A JP S5896345 A JPS5896345 A JP S5896345A JP 56194001 A JP56194001 A JP 56194001A JP 19400181 A JP19400181 A JP 19400181A JP S5896345 A JPS5896345 A JP S5896345A
Authority
JP
Japan
Prior art keywords
instruction
condition code
arithmetic unit
signal
arithmetic
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
JP56194001A
Other languages
English (en)
Inventor
Yoichi Shintani
洋一 新谷
Kenichi Wada
健一 和田
Tsuguo Shimizu
清水 嗣雄
Akira Yamaoka
山岡 彰
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56194001A priority Critical patent/JPS5896345A/ja
Priority to US06/446,002 priority patent/US4532589A/en
Publication of JPS5896345A publication Critical patent/JPS5896345A/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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers

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つの命令の実行に多数サイクルの時間
がかかるところを1命令/lサイクルの速度で命令の流
れを処理できるようにしている。
このようなパイプライン方式のコンピュータにおいては
、ある命令の処理に必要なデータが、先行する命令の演
算結果に依存する場合には、その演算結果が確定するま
でパイプライン処理を中断しなければならないため、性
能低下が生ずる。例えば、条件分岐命令の分岐判定等に
必要となる条件コードの内容が、近接する先行命令によ
って変更される場合(以下条件コード・コンフリクトと
呼ぶ)、がこれに該当する。この条件コード・コンフリ
クトが発生した場合、従来においては、条件コードの書
き換えを行う命令(以下、変更命令と呼ぶ)のうち、比
較的簡単な演算を行う命令については、その命令の演算
開始時に、結果の条件コードを専用の回路(これを先行
演算器と呼ぶ)により早期に求め、この結果の条件コー
ドを必巖とする後続命令(これを要求命令と呼ぶ)の処
理に用いることによって、性能の低下を最小11GK止
メチいる(日立、汎用コンピュータM−200H参照)
しかし、従来の方式では、命令の演算結果の条件コード
を結果フィールド(条件コードを格納するレジスタ)に
書き込む際K、結果の条件コードとして先行演算器によ
り求めたものを用いることなく、演算ユニットで同一の
演算を再度行って求めたものを書き込んでいる。それに
もかかわらず、先行演算器への入力データのセット・ア
ップと演算ユニットへの入力データのセット・アップを
、同一のパスを用いて行っている。したがって、もし先
行演算器への入力データのセット・アップと演算ユニッ
トへの入力データのセット・アップを同一時刻に行わな
いと仮定すれば、ある命令の先行演算器への入力データ
のセット・アップと別の命令の演算ユニットへの入力デ
ータのセット・アップとが、セット・アップ・バスにお
いて競合する可能性がある。そこで、この競合を避ける
ために、1つの命令については、先行演算器への入力デ
ータのセット・アップと演算ユニットへの入力データの
セット・アップとを同一時刻に行うことにしている。し
かし、演算ユニットが同時に1命令しか処理不可能であ
るとすれば、直前の命令の終了後でないと入力データの
セット・アップは行えない。したがって、先行演算も直
前の命令の終了後でなければ行龜えないことになる。
このように、従来の方式においては、パイプライン制御
の複雑化を避けるため、およびハードウェア規模の増大
を避けるため、先行演算器へのデータ・パスと演算ユニ
ットへのデータ・バスを共用することにより、先行演算
を直前の命令の演算実行終了後でなければ行わないよう
に制御している。
一方、先行演算に必要なオペランド・データ自体は、直
前の命令の演算実行に並行して、あるいはそれ以前に行
われる命令の先行制御により、一般にはすでに読み出さ
れている。また、先行演算器自体は、直前の命令の演算
実行中には何の動作も行っていない。したがって、従来
の方式においては、直前の命令の演算実行が何らかの埋
山により長びいている場合、その命令のオペランド・デ
ータがすでに読み出され、かつ先行演算器が空いている
にもかかわらず、直前の命令の演算実行が終了するまで
先行演算が鷺ばされるため、その命令の、先行演算の結
果を必要とする後続命令の処理がさらに延ばされること
になる。
本発明の目的は、このような従来の問題を解決するため
、パイプライン方式のコンピュータにおいて、条件コー
ド・コンフリクトが発生した場合に、より早期に条件コ
ード・コンフリクトを解消し、パイプライン処理の中断
時間を短縮して、処理速度を向上させることができる階
層型演算方式を提供することkある。
上記目的を達成するため1本発明の階層型演算方式では
、パイプライン方式のコンピュータにおいて、命令語の
解読情報とオペランド・データとを、演算ユニットでの
演算実行開始まで格納する入力データ・バッファ、およ
び上記演算器ニットとは独立に演算結−果を求め、これ
をもとに結果の条件コードを得ることができる先行演算
器を有し。
先行する命令の演算実行のために、上記演算ユニットが
占有されているか否かに関係なく、上記入力データ・バ
ッファに命令語の解読情報とオペランド・データが格納
されると、直ちに該入力データ・バッファからデータを
読み出し、蚊データを上記先行演算器に入力して演算を
行い、その演算結果をもとに結果の条件コードを求め、
上記先行する命令以降の条件分岐命令処理に用いること
を特徴としている。
以下、本発明の実施例を1図面により説明する。
第1図は1本発明の実施例を示す階層型演算処理装置の
ブロック図である。
第1図においては、演算ユニット14と先行演算器29
とに並行して演算処理を行わせ、結果の条件コードを早
期に求めるため、命令の解読情報とオペランド・データ
とを独立して読み出すセレクタ11,12,24,25
、先行条件コードを格納する回路201、この先行条件
コードを入力して条件分岐命令の分岐判定を行い、この
分岐判定結果を命令切り出し回路208と命令制御装置
62に送出する分岐判定回路203が設けられている。
先ず、メモリ装置18から絖み出された命令語は命令レ
ジスタ1にセットさゎ、命令解読のために命令デコーダ
3に送られるとともK、アドレス・レジスタの読み出し
のために汎用レジスタ鋏置養に信号線2を介して送出さ
れる。同時に、アドレス計算のためにアドレス加算器5
に送出される。
命令デコーダ3においては、その命令の処理に必要な種
々の情報が命令語を解読することにより生成される。こ
の解読情報の中には1条件コードを変更するか否かを示
す情報、先行演算が可能であるか否かを示す情報、先行
演算が可能である場合には演算の種類を示す情報、条件
分岐命令にあってはマスクフィールドの値、オペランド
として読み出す汎用レジスタの番号等が含まれ、これら
の解読情報は信号線6を介して分岐判定回路203、先
行条件コード回路201および命令待ち行列7にそれぞ
れ格納される。第1図では、命令待ち行列7は3回設け
られ、各面に1命令ごとの解読情報が格納されており、
命令の解読される順にしたがって3面がサイクリックに
使用される。各面に格納さ−れた各命令の解読情報は、
順次信号線8゜9.1oを介してセレクタ11.12に
送出される。セレクタ11は、命令待ち行列7に格納さ
れている解読情報のうち、現在演算エニン)14で演算
が実行されている命令の次に演算実行すべぎ命令より生
成されたものを選択する。この場合、セレクタ11によ
る命令待ち行列7の選択は、従来と同じよ5に、命令制
御装置52がら信号1II53を介して送出される命令
待ち行列出カポインタの値によって行われる。この命令
待ち行列出カポインクの値は、演算エニン)14に命令
待ち行列の内容がセット・アンプされる度ごとKlずつ
更新される(ただし、3を法として、1を加算する方法
を用いる)。
セレクタ11から出力される命令の解読情報は。
この解読情報が命令待ち行列7に存在し、かっメ49・
オペランド・データがオペランド・バッファ20に読み
出され、しかも直前の命令の演算ユニット14における
演算実行が終了した時点(演算ユニット14から信号線
59を介して送出されるEOP償号が“1″となった時
点)に信号線16を介して汎用レジスタ装置養および演
算ユニット14に送出される。汎用レジスタ装置4に送
出される解読情報には、オペランドとして読み出すべき
汎用レジスタ番号が含まれており、これで示す番号の汎
用レジスタがオペランドとして読み出され、信号線16
を介して演算ユニット14に送出される。
一方、命令レジスタ1から信号線2を介して汎用レジス
タ装置養にアドレス・レジスタ番号が送出されると、そ
のアドレス・レジスタ番号で指定された汎用レジスタの
内容が、汎用レジスタ装置養から信号線17を介してア
ドレス加算器6に送出される。アドレス計算によって求
められたアドレスによりメモリ装置18がアクセスされ
ると、メモリ装置18からメモリ・オペランドが読み出
され、信号線19を介してオペランド・バッフ7乏0に
格納される。オペランド・バッファ20は、第1図では
3面設けられており、各面ごとに1命令のオペランドが
格納され、命令の解読される願にしたがって3面がサイ
クリックに使用される。
この場合、オペランド・バッファ20の各面に格納され
たオペランド・データは、順次信号線21゜22.2,
7を介してセレクタ24.25に送出される。
セレクタ24は、オペランド・バッファ2(1格納され
ているオペランド・データのうち、現在演算器ニット1
4で演算が実行されている命令の次に演算実行すべき命
令のものを選択する。第1図においては、オペランド・
バッファ2oの各面と命令待ち行列7の各面とは、1対
1に対応してオリ、セレクタ24によるオペランド・バ
ッファ20の選択は、セレクタIIKよる命令待ち行列
7の選択と同じように、命令待ち行列出カポインタ53
で示される値によって行われる。したがって、セレクタ
24から出力されたオペランド・データは、セレクタ1
1から解読情報が出力される時刻と同期して、信号線2
6を介し演算ユニット14に送出される。
以上が、演算実行に必要なオペランドを、汎用レジスタ
装置養およびメモリ装置18から演算エニッ)14へ送
出する処理の説明であって、これらは従来より行われて
いる動作であるが、以下に本発明により新しく設けられ
た論理回路の動作を説明する。
セレクタ12は、先行演算を行うべき命令の解読情報を
選択し、信号1127を介して汎用レジスタ装置4およ
び先行演算器29に送出される。
次に先行演算を行うべき命令の解読情報が命令待ち行列
7に存在することを示す信号(後述のIRDYE)が“
1″になり、かつその命令が必要とするオペランド・デ
ータが読み出されたことを示す信号(後述の0RDYI
C)が“1”になり、しかも先行演算器29より信号線
60を介して送出される先行演算終了を示す信号(後述
のEOPK)が1’ Kなった時点に、信号線27を介
して汎用レジスタ装置養および先行演算器29に送出さ
れる。これらの信号IRDYEと0RDYIとKOPE
とがともに“1″になった時点に、先行演算が開始され
たことを示す信号BOPEが“1”となる。汎用レジス
タ装置養に送出される解読情報には、オペランドとして
読み出すべき汎用レジスタ番号が含まれており、これで
示された番号の汎用レジメタの内容が読み出され、信号
線28を介して先行演算器29に送出される。セレクタ
12による命令待ち行列7の選択は、先行演算制御装置
50より信号線61を介して送出される先行出力ポイン
タの値によって行われる。この先行出力ポインタの値は
、先行演算器29に先行演算のための入力データがセッ
ト・アップされると“l”ずつ更新される。すなわち、
上記のBOPE信号が“1”Kなるととに、3を法とし
て1を加算する方法により更新される。
次に、セレクタ26は、オペランド・バッファ2(l格
納されているオペ2ンド・データのうち。
先行演算を行うべき命令のものを選択し、信号線30を
介して先行演算器29に送出する。セレクタ26による
オペランド・バラ−7720の選択は。
セレクタ12による命令待ち行列7の選択と同じよ5に
、先行出力ポインタ61で示される値によって行ねれる
。したがって、セレクタ25かう出力されたオペランド
・データは、セレクタ12から解読情報が出力される時
刻と同期して、信号線30を介して先行演算器2gに送
出される。
先行演算器2Qは1条件コードを求めるための先行演算
を行う演算器である。先行演算は、先行演算制御装置5
0から信号線54を介して送出される信号BOPIが“
1″となったときに開始される。終了時には、先行演算
器29から先行演算制御装置50に信号線60を介して
送出されるg。
pg倍信号“1″となる。また同じく先行演算の終了時
に1条件コードを変更する命令の場合には、信号線20
0を介し【先行条件コード回路201に送出される結果
の条件コード送出コマンド(SETCCE)が“1″と
なる。これに同期して結果の条件コードが、信号線21
5を介して先行条件コード回路201に送出される。
一般的には、先行演算器29は、あらゆる命令の条件コ
ードを求めることが可能な演算器であっても差し支えな
いが、演算具ニツ)14の処理よりも高速に条件コード
を求めることが目的であるため、第1図では比較的単純
な演算によって条件コードを決定できる命令の演算のみ
を高速に実行する。さらに、制御上の簡単化のために、
先行演算器29での演算は演算開始から必ず一定時間以
内で終了することが望ましい、第1図では、先行演算器
29におい【演算される命令として、論理演算命令、比
較命令、加減算命令等の条件コードが11シンサイクル
以内で求められるものとする。
したがって、先行演算は、BOPE信号に同期して開始
され、かつBOPI信号に同期して終了する。結局、B
OPE信号は、先行演算の開始および終了の両方を示す
信号である。また、先行演算器29では、演算の不可能
な命令についても、制御の簡単化のため、BOP′E、
EOPE信号が出力されるものとする。ただし、結果の
条件コード送出コマンド(SITCeE)は出ない。
次K、条件分岐命令の処理について、説明する。
条件分岐命令(BC,BCR命令)が命令レジスタ1に
格納され、デコードが行われると、アドレス加算器5に
より分岐先命令アドレスが生成され、メモリ装置18よ
りその分岐先命令を含む命令ストリーム(ターゲット・
ストリームと呼ぶ)データが読み出されて、命令バッフ
ァ21(l格納される。
一方、命令デコーダ3における解読情報ののうち1条件
分岐命令であることを示す情報、およびマスク・フィー
ルドの値が信号116を介して分岐判定回路203に送
出される。
分岐判定回路203は、先行条件コード回路201より
信号11202を介して送出される条件コードおよびそ
の条件コードが有効であることを示す信号(CCACT
)206をもとにして、これらと分岐命令のマスク・フ
ィールドの値とから、その条件分岐命令の分岐判定を行
い、分岐成立のとき、信号線207を介して分岐成功信
号(BCTKN)を命令切り出し回路208に送出する
また、分岐判定回路203は1分岐判定が行われるまで
、その条件分岐命令に引き続く命令のデコードを抑止す
るための信号(CCCONF)を信号線214を介して
命令制御装置52に送出する。
命令制御装置52は、デコード抑止信号(CCCONF
)が“1”の間は、命令レジスタIK格納される命令の
デコードが行われないようにする。
分岐判定回路203により分岐判定が行われ。
分岐成立の場合には分岐成功信号(EcTKN)が“1
″となり、不成立の場合には分岐成功信号(BCTKN
)が“0′″となる。命令切り出し回路208は1分岐
成功信号(BCTKN)が“0”の場合、命令バッフ7
209に格納され、かつその条件分岐命令を含む命令ス
トリーム(メイン・ストリームと呼ぶ)から後続の命令
を切り出し、命令レジスタ1に順次格納する。また、分
岐成功信号(BCTKN)が“1′″の場合、命令バッ
ク7210に格納されているターゲット・ストリーム・
データから1分岐先命令を切り出し、命令レジスタIK
格納し、以後命令バッファ210をメイン・ストリーム
とみなす。命令バッファ209からの命令データは、信
号!211を介して、また命令バッファ210からの命
令データは信号11212を介して、それぞれ命令切り
出し回路208に送出される。また、命令切り出し回路
208により切り出された命令は、信号11213を介
して命令レジスタ1に送出される。
次に、分岐判定回路203の動作について、説明する。
分岐判定回路203は、条件分岐命令がデコードされる
と、信号11206を介して送られてくる条件コード有
効信号(CCACT)をチェックする。条件コード有効
信号(CCACT)は、先行条件コード回路201に記
憶されている条件コードがその条件分岐命令の分岐判定
に使用できることを示す信号である。
条件コード有効信号(CCACT)が“0″の場合、こ
れが“1″になるまで分岐判定回路203はデコード抑
止信号(CCCONF)を“1″にする。
条件コード有効信号(CCACT)が“0“である期′
開中、分岐判定は行われず1分岐成功信号(BCTKN
)は意味をもたない。また、条件コード有効信号(CC
ACT )が1″になるまで、分岐判定が未完了である
状態を記憶する。
条件分岐命令がデコードされた時点で、条件コード有効
信号(CCACT )が1″であった場合。
あるいは“0”であったのが“1”K切り換った場合、
分岐判定回路203は信号線202を介し【送られてく
る条件コードの値とマスク・フィールドの値とから分岐
判定を行い、その結果を分岐成功信号(BCTKN)に
反映させる。条件コード有効信号(CCACT)が“0
”から“1”に切り換った場合には、デコード抑止信号
(CCCONF)を“O”にリセットし、後続命令のデ
コード抑止を解除する。
次に、先行条件コード回路201の動作を説明する。
先行条件=−ド回路201は1条件分岐命令の直前の命
令が終了した時点での条件コード(先行条件コード)の
値を信号[202を介して分岐判定回路203に供給す
る。信号線202を介して送出される条件コードが正し
い値を示しているとき、信号11206を介して条件コ
ード有効信号(CCACT)を分岐判定回路203に送
出する。
先行条件コード回路201は、信号−〇を介して送られ
てくる命令解読情報から、条件コードな変更する命令が
デコードされたこと、およびその命令が先行演算器29
により先行演算が可能であるか否かを、それぞれ判別す
る。条件コード変更命令のデコードが伝えられると、先
行条件コード回路201はその命令についての結果の条
件フードが求められるまで、条件コード有効信号(CC
ACT)を“0′″のままにしておくように動作する。
条件コード変更命令のうち、先行演算器29により結果
の条件コードが得られるものは、先行演算が終了すると
、結果の条件コード送出コマンド(8ETCCE)が信
号線200を介して、またこれに同期して結果の条件コ
ードが信号線215を介して、それぞれ先行演算器29
から先行条件コード回路201に送出される。また、条
件コード変更命令のうち、演算ユニット14でなければ
結果の条件コードが得られないものは、演算エニッ)1
4での演算がi了すると、結果の条件コードおよびその
送出コマンド(sg’rcc)がそれぞれ信号線204
.205を介して演算ユニット14から先行条件コード
回路201に送出される。
先行条件=−ド回路201においては、条件コード送出
コマンド(8ETCC)あるいは(8ETCCg)を受
は取ると、これらの信号に対応する命令に引き続く命令
で、すでにデコードが完了している命令のうち、結果の
条件コードが未だ得られてGない命令(SETCCもし
くは5ETCCHの発行されていない命令)が存在する
か否かを調べる。存在しない場合には、受は取った条件
コード送出コマンド(SITCCもしくは8E’TCC
E)に付随して送られてきた結果の条件コードを記憶し
、信号線202を介して出力すると同時に、信号線20
60条件コード有効信号(CCACT )を“1”kセ
ットする。また、デコードずみの螢続命令中に未だ結果
の条件コードの得られていないものが存在する場合には
、条件ニー下有効信号(CCACT)は“0′のままに
保持される。条件コード有効信号(CCACT)は、条
件コード変更命令がデコードされると常にリセットされ
る。
第2図、第3図は1本発明の実施例を示す先行演算制御
装置の概略構成図である。
先行演算制御装置50が作成する信号の5ち。
第2IQは命令待ち行列7のmiK、先行演算を行うべ
き命令が格納されている状態を示すIQilllYK信
号(1=0〜2)の作成論理であり、第3図は先行演算
の開始と同時に終了を示すBOPle信号、および先行
出力ポインタIQOPELB(0〜l)の作成論理であ
って、第2図と第3図は信号線126〜128,54.
51が一致するA、B、0点において接続される。
先ず、第2図において、先行待ち行列状態セット回路1
00は、7リツプ・70ツブ101〜103(IQi 
BSYEDD(1=0〜2))のセットを制御するため
、入力として命令制御装置52より信号lIi!56を
介して送出される命令のデコード完了信号(D8Q)、
同じく信号$157を介して送出される命令待ち行列7
0入カポインタ(IQIP(0〜1))を入力し、また
出力としてフリップ・フロップ101〜1030セツト
信号(IQIB8YEDD8 (i=O〜2))を信号
!104〜106に出力する。デコード完了信号(線5
6)、命令待ち行列の入力ポインタ([157)は、従
来方式と同じように命令制御装置52で作成される。
先行待ち行列状態セット回路100の動作は。
第2図に示すよ5に、デコード完了信号(1156)フ
ロップ101−103のいずれかのセット信号−104
〜106が“1”となる。
セット信号線104〜10601つが“12になると、
フリップ・フロップ101〜103の対応するD(デー
タ)入力が“1′となり、論理和ゲート107〜109
、その出力信号線110〜112を介してC(クロック
)入力が“l”となって、対応する。7リツプ・フロッ
プが“1”Kセットされる。
先行待ち行列状態リセット回路113は、フリップ・フ
ロップ101〜103のリセットを制御するため、先行
演算の開始を示すBOPg信号(II54)、先行出力
ポインタ(1151)を入力して、フリ゛ツブ・フロッ
プ101〜103のリセット番号(IQ量BSYEDD
R(1=o〜、2))を線114〜116に出力する。
先行待ち行列状態リセット回路113の動作は。
第2図に示すように、先行演算開始信号(115養)が
“1′″のときK、先行出力ポインタ(IQopgtn
)(線51)のi=o、1の値の組み合わせによって、
7リツプ・フロップ101〜103のリセット信号線(
IQiBSYIeDDR)114〜116の1つを“1
″にする。リセット信号1114〜11601つが“1
″になると、フリップ・フロップ101〜103の対応
するD入力が“0”であれば、論理和ゲート107〜1
09.その出力信号線110〜112を介してC(クロ
ック)入力が“1”となるため。
対応するスリップ・フロップが“0″にリセットされる
クリップ・フロップ101〜103の出力信号は、第2
図に示すように、タイミング調整のために7リツプ・フ
ロップ117〜119,120〜122゜123〜12
5により遅延され、先行待ち行列状態の信号!126〜
128に出力される。
次に、第3図において、先行待ち行列状態信号が信号線
126〜128を介してセレクタ129に入力されると
、セレクタ129はこれらの状ms号纏126〜128
のうちから先行出力ポインタの示す信号[51の値を信
号線132を介して論理積ゲート133に送出する。信
号@132は、次に先行演算を行う命令がデコードを完
了したことを示すもので、IRDYIII号である。
セレクタ141は、命令制御装置52から送出されるオ
ペランド・バッファ・ウェイト信号線55(OBIFW
ムIT:l=0〜2)のうちから、先行・出力ポインタ
(IQOPELB(0〜1))が示す信号線51の値を
バッファ・ウェイト信号(FWAI↑)として信号[1
45を介し【出力する。
オペ2ンド・バッファ・ウェイト信号(OBiFWAI
テ(l=0〜2))の意味は、面番号1のオペランド・
バッフ7に未だオペランド・データが格納されていない
状態であることを示す。
また、信号線145のバッファ・ウェイト信号(rwA
Itl)は、否定回路146により反転された後、信号
11147を介し、0RDYIC信号として論理積ゲー
ト133に入力され、先行演算開始信号(BOPE)の
抑止の有無を制御する。論理積ゲート133の出力は、
先行演算開始信号(BOPE)として信号1154を介
し先行出力ポインタ制御回路14βに送出される。
先行出力ポインタ制御回路148は、先行演算開始信号
(BOPE)(線54)、先行出力ポインタの信号(I
QOPELB(0〜1))(線51)を入力とし、フリ
ップ・フロップ149,150の入力信号(IQOPE
ADIN(0〜1))を信号線151.152に出力す
る。先行出力ポインタ制御回路148の動作は、先行演
算開始信号(BOPI)(線54)が“1″となったと
きK、先行出力ポインタの信号(xQopzLn(o〜
1))の値に5を法とじ−て1インクリメントした値を
信号(IQOPEADIN(Q〜1))として出力する
。クリップ・フロップ149,150の値は、信号線1
51,152を介してスリップ・フロップ153,15
4に送出される1、フリップ・フロップ153,154
は、先行出力ポインタノ信号(IQOPELB(o〜l
))を信号線51に出力する。
第4図は1本発明の実施例を示す動作タイム・チャート
である。
第4図においては1乗算命令Mが演算ユニット1養で演
算されている間に、後続の加算命令Aの先行演算が行わ
れ、その結果の条件コードを用いる条件分岐命令BCの
処理が始まり、この条件分岐命令Beが分岐成功となり
、分岐先命令としてロード命令しの処理が始まる場合を
示している。
1つの命令の処理は、メモリ装置からの命令語の読み出
しから始まり、命令語のデコード(解WI1.)、オペ
ランドの読み出し、演算、演算結果の書き込み、という
段階に分けることができる。
第4図においては、各々の命令M、A、BC。
Lについて、命令語のデコードから演算を行うまでの処
理をり、A、L、g、EOP等で示している。
すなわち、第4図では、命令語のデコードから演算まで
を4つのステージに大きく分けている。
第1のステージは、命令のデコード・アドレス計算を行
うステージであり、これをDステージと呼ぶ。第2のス
テージは、アドレス計算結果で示されるメモリの内容を
オペランドとして読み出すステージであり、これをムス
テージと呼ぶ。第3のステージは、演算ユニット14へ
オペランド・データ等をセット・アップするステージで
あり、これをLステージと呼ぶ。第4のステージは、演
算ユニット14により演算を行うステージであり、Eス
テージと呼ぶ。なお、(6)のように括弧が付加されて
いるステージは、演算ユニット14にセット・アップし
たいが前の命令で占有されているため、待機している状
態を示し、またEOPはEndof 0peratio
4の略で、演算が終了し、次の命令のために空きとなる
ステージである。
これらのステージは、いずれも各命令ごとに1ないし数
マシン・サイクルを要する。第4図において、1マシン
・サイクルは時間軸上の目盛TOからTOまでの間であ
り、各マシン・サイクルに対して便宜上1から10まで
の番号を付記しである。
いま1乗算命令MのEステージがマシン・サイクル1か
ら6までを要しているとする。また、加算命令人のDス
テージが、マシン・サイクル1から開始されるものとす
る。このとき、マシン・サイクルIにおいて、加算命令
AのDステージの完了を示す信号DSQ (命令制御装
置52から信号線56を介して出力される)が“1″と
なる。
先行条件コード回路201は、信号線6を介して送出さ
れてくる加算命令人の解読情報から、条件コードの変更
される可能性のあることがわかるので、記憶している条
件コードがもはや後続の条件分岐命令の分岐判定に使え
ないと判断し、マシン・サイクルの最初で信号1120
6を介して送出される条件コード有効信号(CCACT
)を“0”にリセットする。D8Q信号が“1”になる
と、これより2サイクル後K、命令待ち行列70面1に
有効な解読情報が入力したことを示す状態信号(IQI
B8YE)が“1″となる(仮に、加算命令の解読情報
がmlに格納されるものとする)。信号(IQiBsy
g(t=o〜2))は、命令待ち行列7の各面に対応し
、信号(08Q)K同期してセットされ、かつ先行演算
の開始を示す信号(iopm)K同期してリセットされ
る状態信号であり、対応する命令がデコードされたもの
の先行演算は行われていないことを示している。先行出
力ポインタが命令待ち行列70面lを指しているとする
と、命令解読ずみを示す信号(IRDYE)が“1″と
なる。
このとき、メモリ・オペランドの読み出しが完了してい
れば、信号(ORDYE)が“1”となる。
ここで1乗算命令yに対しては、先行演算器29はEO
PE信号をすでに送出しており、したがって次の条件が
成立する。
(IRDYE)△(ORDYI)△(iopx)・・・
・・・・・・α) (△は論理積な示す) 条件(1)が成立すると、先行演算開始信号(B OP
 E)が“1′となり、マシン・サイクル3で先行演算
が行われる。
このとき、先行出力ポインタ(IQOPELB(0〜1
))は加算命令Aの格納されている面1を示しているの
で、これにしたがって命令待ち行列7に格納されている
加算命令ムの解読情報とオペランド・バッフ720に格
納されているオペランド・データおよび汎用レジスタが
読み出され、これらにしたがって先行演算器29により
演算が行われ。
加算命令ムの結果の条件コードが求められる。このとき
、信号8215を介して結果の条件コードが先行条件コ
ード回路201に送出される。先行条件コード回路20
1は、送出された条件コードを記憶し、これを信号線2
02を介してマシン・サイクル3で分岐判定回路203
に送出する(先行条件コード)。また、このとき、条件
コード有効信号(CCACT)1”にして、分岐判定回
路203に送出した条件コード(先行条件コード)が有
効であり。
分岐判定に使用可能である゛ことを示す。
一方、加算命令ムの次の条件分岐命令BCは。
マシン・サイクル2でデコードされ、分岐先命令を含む
ターゲゝット・ストリーム上の命令データの読み出しを
メモリ装置18に要求する。本実施例においては、命令
データは、読み出し要求発行時(D8Qの出力されたサ
イクル)から2サイクル後に命令バッファに格納される
ものとする。この例では、命令バッファ210が空いて
いるため、ターゲット・ストリーム上の命令データは、
この命令バッファ210にマシン・サイクル番で格納さ
れる。
条件分岐命令BCがデコードされると、その解読情報が
信号線6を介して分岐判定回路203に送出される。分
岐判定回路203は、送出された解読情報のうちのマス
ク・フィールドの値にもとづき、先行条件コード回路2
01かも信号線202を介し【送出される先行条件コー
ドにより、分岐成功、不成効の判定を行う。また、BC
命令がデコードされた時点で条件コード有効信号(CC
ACT)が′0″となっているため、デコード抑止信号
(CCCONF)が“1″となり、後続命令のデコード
を抑止する。
前述のように、信号線2060条件コード有効信号(C
CACT)はマシン・サイクル2,3では“0”である
ため、この期間は分岐判定が行われず、マシン・サイク
ル養でこの信号(CCACT)が′1”となった時点で
分岐判定が行われる。第4図の例では1分岐成功と判定
されたため、信号線207の分岐成功信号(BCTKN
)が11′″となる。この信号(BCTKN)が“1”
になると、命令切り出し■路208は、命令バッファ2
10に格納されているターゲット・ストリーム上の命令
データから分岐先命令であるロード命令りを切り出し、
信号1i1213を介して命令レジスタ1にセットする
(マシン・サイクル養の後半)。この時点で、条件コー
ド有効信号(CCACT)が“1″となっているので、
デコード抑止信号(CCCONF)は“O″にリセット
され、以後は命令のデコードが可能となる。
以稜、ロード命令りの処理が進められ、演算ユニット1
4において、マシン・サイクル8で演算実行が終了子る
ことになる。
これに対して、従来の方式によれば、加算命令ムの先行
演算は、直前の乗算命令Mの演算実行がマシン・サイク
ル6で終了してからでなければ行うことができない。し
たがって、従来方式の先行演算によれば、加算命令ムの
条件コードはマシン・サイクル6でないと求められない
ことKなり、これを用いて分岐判定が行われたとしても
1分岐先のp−ド命令りのデコードは早くてマシン・サ
イクル7からとなる。本発明においては、−マシン・サ
イクル6からロード命令りのデコードを開始することが
できるため、2サイクルだけ性能が向上されたことにな
る。
なお、条件コード・コンフリクトは、システム制御プロ
グラムについて評価した例から、約20%の確率で発生
する。本発明は1個々の条件コード・コンフリクトの発
生に対して、必ず効果があるわけではないが、第4図の
例で示すように1乗算命令Mのような演算器を長く占有
する命令の次に加算命令Aのような簡単な演算(1サイ
クル程度で完了する演算)があり、その次に条件分岐命
令BCがある場合に、4!に効果が期待できる。
以上説明したように、本発明によれば、パイプライン方
式を用いるコンピュータにおいて1条件コード・コンフ
リクトが発生した場合に、より早期に条件コード・コン
フリクトを解消するので、コンピュータの処理速度を向
上させることができる。
【図面の簡単な説明】
第1図は本発明の実施例を示す階層型演算処理装置のブ
ロック図、第2図および第3図は第1図における先行演
算制御装置の概略構成図、第4図は本発明の実施例を示
す命令処理のタイムチャートである。 12:先行演算に必要な命令解読情報を命令待ち行列7
から選択するセレクタ、25:先行演算に必要なオペラ
ンド・データをオペランド・バッファ20から選択する
セレクタ、29:先行演算器、60:先行演算制御装置
、201:先行条件コード回路、203:分岐判定回路
。 第1図 第2図  51

Claims (1)

  1. 【特許請求の範囲】 (1)命令飴の解読情報とオペランド・データとを演算
    ユニットでの演算実行開始まで格納する入力データ・バ
    ッファを備えたパイプライン方式のコンピュータにおい
    て、上記演算ユニットとは独立に演算を行い、演算結果
    をもとに結果の条件コードを得る先行演算器を有し、上
    記演算ユニットが占有されているか否かに関係なく、演
    算を実行すべき命令の解読情報とオペランド・データと
    が上記入力データ・バッファに格納されると、直ちに該
    入力データ・バッファからデータを読み出し、該データ
    を上記先行演算器に入力して演算を行い、演算結果をも
    とに結果の条件コードを求め、該結果の条件コードを上
    記命令以降の条件分岐命令の処理に用いることを特徴と
    する階層型演算方式。 (2)前記入力データ・バッファからデータを読み出す
    場合、前記演算ユニットへのデータ送出のための読み出
    し回路とは別個に、前記先行演算器へのデータ送出のた
    めの読み出し回路を設けて、前記演算ユニットへのデー
    タ送出と前記先行演算器へのデータ送出とを、相互干渉
    することなく行うことを特徴とする特許請求の範囲第1
    項記載の階層型演算方式。 β)前記先行演算器で演算を行う場合、該先行演算器に
    よって得られた演算結果の条件コードを先行条件コード
    回路に記憶しておき、該先行条件コード回路から記憶し
    ている条件コードを分岐判定回路に送出し、該条件コー
    ドを後続の条件分岐命令の処理に用いることを特徴とす
    る特許請求の範囲第1項記載の階層型演算方式。 (4)前記先行演算器の演算は、あらかじめ定めた時間
    以内に条件コードが求められる命令のみKISlt定さ
    れ、該命令によって条件コードを求める演算を開始した
    ならば、該先行演算器の演算終了判定な見ずに、上記あ
    らかじめ定めた時1′E81 佼、引き続き次の命令を
    咳先行演算器で演算するように制御することを特徴とす
    る請求 2項あるいは第3項記載の階層型演算方式。 (5)前記先行演算器は、先行条件コードを求めるため
    に用いられるとともに、アドレス・コンフリクトおよび
    オペランド・コンフリクトの早期画情のための先行演算
    にも兼用されることを特徴とする特肝請求の範囲第1m
    、第2項、第3項、もしくは第4項記載の階層型演算方
    式。
JP56194001A 1981-12-02 1981-12-02 階層型演算方式 Pending JPS5896345A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP56194001A JPS5896345A (ja) 1981-12-02 1981-12-02 階層型演算方式
US06/446,002 US4532589A (en) 1981-12-02 1982-12-01 Digital data processor with two operation units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56194001A JPS5896345A (ja) 1981-12-02 1981-12-02 階層型演算方式

Publications (1)

Publication Number Publication Date
JPS5896345A true JPS5896345A (ja) 1983-06-08

Family

ID=16317315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56194001A Pending JPS5896345A (ja) 1981-12-02 1981-12-02 階層型演算方式

Country Status (1)

Country Link
JP (1) JPS5896345A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62103736A (ja) * 1985-10-31 1987-05-14 Fujitsu Ltd ブランチ制御方式
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JPH0477823A (ja) * 1990-07-13 1992-03-11 Matsushita Electric Ind Co Ltd プロセッサ
JPH04195429A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 先行制御方式
JPH09106345A (ja) * 1996-08-28 1997-04-22 Hitachi Ltd 演算処理方法及び装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62103736A (ja) * 1985-10-31 1987-05-14 Fujitsu Ltd ブランチ制御方式
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JPH0477823A (ja) * 1990-07-13 1992-03-11 Matsushita Electric Ind Co Ltd プロセッサ
JPH04195429A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 先行制御方式
JPH09106345A (ja) * 1996-08-28 1997-04-22 Hitachi Ltd 演算処理方法及び装置

Similar Documents

Publication Publication Date Title
US4409654A (en) Data processor adapted for interruption to an instruction stream
US4916606A (en) Pipelined parallel data processing apparatus for directly transferring operand data between preceding and succeeding instructions
EP0117655A2 (en) Method and apparatus for pipe line processing with a single arithmetic logic unit
US4967338A (en) Loosely coupled pipeline processor
JP2677414B2 (ja) 命令実行のシリアライズ制御方式
EP0094535B1 (en) Pipe-line data processing system
JPS61204758A (ja) コ・プロセツサ制御方式
JPH0348536B2 (ja)
EP0223150B1 (en) Information processing apparatus
US4156909A (en) Structured data files in a data driven digital data processor
US5390306A (en) Pipeline processing system and microprocessor using the system
JPS5896345A (ja) 階層型演算方式
US4991130A (en) Normalization control system for floating point arithmetic operation
JP2577023B2 (ja) 情報処理装置のアドレス拡張制御方式
EP0573071A2 (en) A microprocessor
JPS5896346A (ja) 階層型演算方式
US6460129B1 (en) Pipeline operation method and pipeline operation device to interlock the translation of instructions based on the operation of a non-pipeline operation unit
JP2814683B2 (ja) 命令処理装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2558831B2 (ja) パイプライン制御方式
JPS6259829B2 (ja)
JPS6116111B2 (ja)
JPH0419575B2 (ja)
JPH0238966B2 (ja)
JPH02217924A (ja) データ処理装置のストア処理方式