JPS63231531A - パイプライン制御装置 - Google Patents

パイプライン制御装置

Info

Publication number
JPS63231531A
JPS63231531A JP62064280A JP6428087A JPS63231531A JP S63231531 A JPS63231531 A JP S63231531A JP 62064280 A JP62064280 A JP 62064280A JP 6428087 A JP6428087 A JP 6428087A JP S63231531 A JPS63231531 A JP S63231531A
Authority
JP
Japan
Prior art keywords
register
instruction
state
stack
execution
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
JP62064280A
Other languages
English (en)
Inventor
Fumio Matsunoshita
松野下 文郎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62064280A priority Critical patent/JPS63231531A/ja
Publication of JPS63231531A publication Critical patent/JPS63231531A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の概要〕 パイプライン処理装置においては、EXECUTE命令
の実行中にレジスタ干渉が発生した時には、レジスタバ
イパス手段でバイパスし、レジスタ干渉が発生しない時
には、バッファレジスタにデータを格納した後実行する
様にしている。このため、レジスタ干渉が発生していな
い場合の処理が遅くなっていた。本発明はレジスタ干渉
が発生した時の状態を検出し、直前の先行命令でのレジ
スタ干渉が発生した時にレジスタの読出しを行う命令を
一時的に停止する様にして従来のようなバッファレジス
タへの格納を無くしたものである。
これによって高速化のパイプライン処理が可能となる。
〔産業上の利用分野〕
本発明はパイプライン処理装置に係り、特にレジスタ干
渉時にレジスタスタックの制御を行うパイプライン制御
装置に関する。
(従 来 技 術〕 パイプライン処理を行う計算機システムでは、高速処理
が可能であるので、各方面で使用されている。
このパイプライン処理を行う計算機システムでは、各命
令を実行するときには、命令のデコードステート (D
)、アドレス計算ステート (A)、バッファのチェッ
クステート(T)、バッファからのリードステート(B
)、演算ステート(E)、結果の書込ステート(W)の
順に処理を行っている。そして、このステートと順次1
ステ一ト単位で遅らせながら複数の命令を実行している
。複数の命令を、ステート単位で遅らせながら実行する
ことによって1命令単位で順次処理する方式より、はる
かにその処理を高速化している。
前述のパイプライン処理における命令は当然ながら順次
行われるべきものであり、直前の命令によって得られた
結果を使うこともある。このような場合のために、目的
のレジスタにデータを格納すると同時に、そのレジスタ
の内容を要求する、すなわち読出す命令に対し目的のレ
ジスタに書込むデータを直接加えるようにレジスタバイ
パスを設けたものがある。これによって、同一レジスタ
への書込と読出が同時に発生、すなわちレジスタ干渉が
発生しても、命令を正常に実行することが可能となった
。第9図はスタックバイパス3を存するレジスタの構成
図である。レジスタスタック1内の複数のレジスタ(1
−1〜1−n)の1個を指定するアドレスADRがレジ
スタスタック1に加わり、これによって選択されたレジ
スタにデータが書込まれる。あるいは読出時にはこれに
よって選択されたレジスタがデータを出力する。レジス
タスタック1の出力とスタックバイパス3を介してレジ
スタスタック1の入力端子が選択回路2に加わっており
選択信号Sによって加わるデータの一方を選択するよう
に構成されている。
前述したようなレジスタ干渉が発生した時には選択信号
Sにはレジスタスタック1に加わるデータをスタックバ
イパス3を介して選択する。その他の時にはレジスタス
タック1の出力を選択する。
これによってレジスタ干渉が発生しても、レジスタスタ
ック1内の目的のレジスタにデータが書込まれるととも
に、その入力が直接選択されてレジスタスタック1の内
容として出力されるので、命令の実行を遅らせることな
くパイプライン処理を行うことができる。
〔発明が解決しようとした問題点〕
前述した様なレジスタ干渉を発生する可能性を有する命
令に例えばEXECUTE命令がある。
このEXECUTEはオペランドで示される番地にある
命令とレジスタDとの論理和を求めてこれを命令として
実行させる命令であり、分枝命令と同様に命令中にさら
に命令のFETCH(取り出し)を必要とした。第6図
〜第8図は従来の制御方式のタイムチャート(1)〜(
3)である。
例えば3個の命令(先行命令SA、先行命令SB、EX
ECUTE命令SE)をパイプライン処理し、先行命令
SBステートEによって得られた結果(レジスタa)を
目的のレジスタに書込む時(ステートW)に、EXEC
UTE命令SEのステートEでその結果を用いるような
場合(第6図)には、図示しないが前述第9図のレジス
タスタッタ中に結果(レジスタaの内容)を占込むと同
時に、レジスタaの内容をレジスタbに格納する。
レジスタaからレジスタbへのバイパスを行なわせるた
めに、5UBJECT命令はこの時1ステート分遅(実
行するようにしている。この格納によってオペランドで
示される番地の内容が読出されてレジスタCにフェッチ
されているので、ここでレジスタbとレジスタCのそれ
ぞれの論理オアを*める。5UBJECT命令はこの論
理オアの結果を命令として実行するので、前述のように
先行命令SB(直前命令)の結果を用いる場合には1ス
テ一ト分遅れて実行する。EXECUTE命令の実行に
おいては、5UBJECT命令を実行させるために、特
定ステート分すなわち5ステート分遅らせて実行する。
前述したような方式でルジスタ干渉に対する処理を行っ
ている。
一方、第7図に示すように先行命令SA、SBの結果を
用いずにEXECUTE命令S’Eを実行する場合には
、レジスタスタックd即ち第9図のレジスタスタック1
の内容をバッファレジスタeに一時的に格納し、その後
、レジスタbに格納し、そして論理オアを求めて5UB
JECT命令SSを実行する。
さらに、第8図に示すように先行命令SAの結果を用い
て、EXECUTE命令SEが実命令S基合には、レジ
スタdの内容dに先行命令SAのステートWでレジスタ
aのデータを格納すると同時にスタックバイパスによっ
て直接バッファレジスタeにデータを格納する。そして
、その後レジスタbにデータを格納し、前述と同様に5
UBJECT命令を実行する。
前述したようにEXECUTE命令の実行においては、
第6図に示す直前の先行命令の結果を用いる時に必要と
したパイプラインホールド時間(5ズテ一ト分)に合わ
せて他の場合(第7図、第8図)も5ステ一ト分パイプ
ラインホールドを行っている。これは、1個の命令例え
ばEXECUTE命令SEの処命令S基SUBJECT
命令を含む)を一定とした時には有効であるが、その反
面では必要もない時に1ステ一ト分のパイプライン処理
をホールドしているため、処理に時間を要するという問
題を有していた。
本発明は上記従来の欠点に鑑み、EXECUTE命令等
のようなレジスタ干渉を発生する命令において、不必要
なパイプラインホールド時間を減らし、高速の処理を可
能としたパイプライン制御装置を提供することを目的と
した。
C問題点を解決するための手段〕 第1図は本発明のブロック図である。
20は、複数の命令を保持する命令バッファ群を有し、
該バッファ群で記憶された複数の命令を“ステート単位
で順次遅らせてパイプライン処理するパイプライン処理
装置、21は前記パイプライン処理における複数の命令
による結果がレジスタへの書込前に必要としたデータの
読出しが同時に要求されたことを検出するレジスタ干渉
検出手段、22は前記検出手段21によってレジスタ干
渉が検出された時に、前記複数の命令中の前記レジスタ
からデータを読出す命令の実行を一時停止する停止手段
である。
〔作   用〕
パイプライン処理装置では1ステ一ト単位で順次実行を
遅らせながら、複数の命令バッファに記憶された命令を
実行する。この複数の命令の同時実行において、先行命
令からのレジスタへの書込み前に現在命令からのレジス
タへの読出しが同時に発生した時には検出手段21がそ
の同時発生を検出する。この検出結果で前記停止手段2
2はパイプライン処理装置20における現在命令の実行
を停止する。この停止によってレジスタ干渉が発生して
も正常の処理が可能となり、さらにレジスタ干渉が発生
しない時の処理を遅らせることなく、高速の処理が可能
となる。
〔実  施  例〕
以下、図面を用いて本発明の詳細な説明する。
第2図は本発明の実施例のシステム構成図である。
パイプライン処理装置においては、前述したように順次
1ステ一ト単位で遅れて実行する。すなわち同一ステー
トの命令が存在しない様に処理を行う。この処理におい
て関係する命令で使用するレジスタがレジスタスタック
1である。一方、命令を実行する時に命令中の処理指示
に対応した処理を行う演算ユニット12を有している。
この演算ユニット12において処理する時の入力あるい
は出力(結果)を常に記憶するのが、レジスタスタック
である。尚、演算ユニット12は演算結果レジスタ5を
有するカミ、このレジスタ5を介して処理の結果レジス
タスタック1に格納される。すなわち各命令に対する実
行においては、この演算ユニット12が使用され、演算
ステート中で処理され演算結果レジスタ5に格納される
。尚、・図示しないが、レジスタスタック1の選択回路
の出カバ演算ユニット12の入力部に設けられたレジス
タを介して演算ユニット12にレジスタスタック1の内
容が加わるように構成されている。
その動作をまとめるとレジスタスタック1に読出しアド
レスが加わり、演算ユニット12で使用する目的のレジ
スタの格納データが演算ユニット12に加わり、この演
算ユニット12によってレジスタの内容を処理し、演算
結果レジスタ5を介してレジスタスタック1内の目的の
レジスタ(l−1〜1−n)に格納する。
前述の動作をパイプライン制御するのがパイプライン制
御回路6である。このパイプライン制御回路6によって
、各ステート単位での実行が決定される。この各ステー
ト単位におけるレジスタの指定アドレスすなわち読出し
レジスタのアドレスや書込アドレスレジスタのアドレス
を記憶するのがレジスタBW、EW、WW、BR,ER
である。
レジスタBW、EW、WWはリードステートB1演算ス
テートE、結果の書込ステートWのレジスタ番号すなわ
ち書込レジスタアドレスを記憶するレジスタであり、各
ステート単位で実行する時のレジスタアドレスがステー
ト単位でシフトする構成となっている。
また、レジスタBR,ERのはり一ドステートB、演算
ステートEの読出しレジスタ番号を記憶するレジスタで
あり、これも前述と同様に各ステート単位で実行する時
のレジスタアドレスがステート単位でシフトする構成と
なっている。各命令がリードステート時には、その命令
に使用するレジスタのアドレスがレジスタスタック1内
の読出しアドレス入力に加わるように、リードステート
Bの読出しレジスタ番号が記憶されている。このリード
ステート8時のレジスタ番号が読出しアドレスとしてレ
ジスタスタック1に加わって、演算する時の入力データ
を記憶するレジスタを指示する。
一方、書込レジスタライトステートW時には演算結果レ
ジスタ5の出力データを記憶するように書込レジスタ番
号(アドレス)がレジスタスタック1に加わり、目的と
したレジスタを指示する。
本発明の実施例においては、スタックバイパスを設け、
レジスタ干渉が発生した時に高速に処理を行えるように
スタックバイパスを用いる構成となっている。このレジ
スタ干渉を検出するのがスタック制御回路7である。ス
タック制御回路にはり一ドステートBの読出しアドレス
を記憶するレジスタBRの出力と、ライトステートWの
書込アドレスを記憶するレジスタWWの出力とが加わっ
ている、スタック制御回路7はこの2個のアドレスが一
致したか否かを検出する回路であり、検出した時には選
択回路2を制御して、レジスタスタッタの入力をスタッ
クバイパス3を介して得られたデータを選択してEXE
CUTEOR処理を行うための入力レジスタ4に出力す
る。
直前の先行命令とのレジスタ干渉が発生した時には、こ
の選択回路2の選択によって演算結果レジスタ5の内容
が直接レジスタb4に格納される。
尚、この時には同時に目的としたレジスタへの格納が同
時になされる。
本発明の実施例においては、オペコードレジスタBOP
に記憶されたオペコードが例えばEXECUTE命令で
あり、さらに、直前の先行命令の結果を用いることを検
出する検出回路を有してい  ゛る。直前の先行命令と
のレジスタ干渉の場合には単にデータをスタックバイパ
ス3でバイパスするだけではその干渉を退避することは
できず、EXECUTE命令のBステートからTステー
トへ移るのを1ステートサイクル分遅らせる必要がある
(従来においては、5UBJECT命令を遅らせている
)。これを遅らせるのが検出回路である。
検出回路8には演算ステートEの書込アドレスを記憶す
るレジスタEWと読み出しレジスタのアドレスを記憶す
るBRさらにはオペレーションコードを記憶するオペコ
ードレジスタBOPの各出力ガ加わっており検出回路は
レジスタEWが記憶する書込アドレスとBRが記憶する
リードステートBの読出アドレスとを比較する。そして
それらがiJtしていて、その時のオペレーションコー
ドがEXECUTE命令である時には、パイプライン制
御回路6に対して一時停止信号を出力する。
パイプライン制御回路6は複数の命令をパイプラインす
るいわゆる前述した従来のパイプライン処理を行う機能
を有するものであるが、前述の検出回路より一時停止信
号が加わった時には、現在の命令すなわち先行命令の次
の命令(一時停止信号か加わった時には必ずEXECU
TE命令)をを1ステ一ト分停止する。
ストレージユニット9にはExEcu’rE命令に対す
る目的の命令を記憶しているがこの状態の時には図示し
ない回路によってすでに読出されていて命令バッファC
に記憶されている。一時的にlステート分EXECUT
E命令の実行が停止するので、この停止している間に、
演算ユニット12においては先行命令を実行してその結
果を演算結果レジスタ5に記憶する。そして次のステー
トでスタックバイパスを介してその結果を選択し、レジ
スタb4にその結果を記憶する。一時的に実行を停止す
ることによってレジスタEWとレジスタBRの内容が一
敗すなわちレジスタ干渉を発生するので、前述のように
選択回路2でスタックバイパスを介して入力データを選
択するようにスタック制御回路は選択回路を制御する。
換言するならばレジスタ干渉が発生した時にはスタック
制御回路7によってスタックバイパス3を用いたバイパ
ス制御を行うことができる。
先行命令の時には、結果を使用する現在の命令すなわち
EXECUTE命令からの要求が先に発生するので、先
行命令の演算結果が終了するまでEXBCUTE命令を
停止する。これを検出するのが検出回路8である。これ
によって一時停止されさらに、この後でのレジスタ干渉
の発生でスタックバイパス3を用いるのである。
以上の動作のように、従来においては実行ハ諏ファを介
して加えるようにして、EXECUTE命令における誤
動作を無くしていたが、本発明においてはバッファeを
設けていない。そして、先行命令での結果を用いてEX
ECUTE命令を実行するような時には現在の分を一時
停止させているので、この時以外におけるバッファeへ
の格納が無くなり、パイプライン処理の高速化が可能と
なる。第2図の本発明の実施例はEXECUTE命令の
場合でありレジスタ4、バッファ10の出力はオアゲー
ト11に加わり、このオアゲート出力が5UBJECT
命令のコマンドとなる。
第3図〜第5図は本発明の実施例の動作を詳細に説明す
る本発明の制御方式のタイムチャー) (11〜(3)
である。
第3図は先行命令SA、SBの結果を用いないでEXE
CUTE命令SEを行う場合である。この時にはレジス
タスタック1内のデータがレジスタb4に加わり、スト
レージユニット9がレジスタCに加わる。そしてそれら
の記憶したデータのオアを求める。BXECUTB命令
SEのステートEでレジスタ1内の目的のデータとスト
レージユニット9内のデータが同時にレジスタb4、C
に格納される。また、第4図は現在の命令すなわちEX
ECUTE命令SEと直前の先行命令より前の命令SA
との間にレジスタ干渉が発生した場合のタイムチャート
である。先行命令SAのライトステートの値でレジスタ
bに結果を記憶させることは1ステート遅れることで、
5UBJECT命令SSの実行前にすなわちEXECU
TE命令のステートBの時にレジスタbにデータをスタ
ックバイパスを介して格納しているので、EXECUT
E命令SEのステートEで同時に5UBJECT命令S
Sを実行することができる。
第5図は直前の先行命令SBの結果を用いてEXECU
TB命令を実行する場合である。この時にはステートB
の直前の先行命令ではまだ演算結果が演算結果レジスタ
5に格納されていない。このためEXECUTE命令S
Eを1ステ一ト分修正(ロックし)する。このロックし
によって先行命令SBのライトステートWでレジスタb
4にデータをスタックバイパス3を介して格納すること
ができ、その次のステートから5UBJECT命令を実
行することができる。
以上、本発明の実施例を用いて詳細に説明したが、本発
明はEXECUTE命令に限らず他の同様の命令に対し
ても検出回路8でその命令を検出することによって同様
に行うことができる。
〔発明の効果〕
以上述べたように本発明は先行命令の結果を用いて例え
ばEXECUTE命令が実行するような場合に、EXE
CUTE命令の実行を1ステ一ト分停止させ、その結果
を用いているので、従来のようなバッファを用いる必要
がなく、また5UBJECT命令を常に1ステ一ト分停
止する必要がなく、本発明によれば、斉速のEXECU
TE命令の実行を行うバイブライン制御装置を得ること
ができる。
【図面の簡単な説明】
第1図は本発明のブロック図、 第2図は本発明の実施例のシステム構成図、第3図は本
発明の制御方式のタイムチャート(1)、第4図は本発
明の制御方式のタイムチャート(2)、第5図は本発明
の制御方式のタイムチャート(3)、第6図は従来の制
御方式のタイムチャート(1)、第7図は従来の制御方
式のタイムチャート(2)、第8図は従来の制御方式の
タイムチャート(3)、第9図はレジスフスタック構成
図である。 20・・・パイプラインの処理装置、 21・・・検出手段、 22・・・停止手段。

Claims (1)

  1. 【特許請求の範囲】 1)複数の命令を保持する命令バッファを有し、該命令
    バッファに記憶された複数の命令をパイプライン処理す
    るパイプライン処理装置(20)と、同一のレジスタに
    対して、前記複数の命令による書込前に読出が発生した
    ことを検出するレジスタ干渉検出手段(21)と、 該レジスタ干渉検出手段の検出結果が加わり、前記複数
    の命令中の前記レジスタからデータを読出す命令の実行
    を一時停止する停止手段(22)とを具備することを特
    徴としたパイプライン制御装置。 2)前記レジスタはレジスタバイパス手段を有し、 直前の先行命令より前の命令に対しレジスタ干渉が発生
    した時には、前記レジスタバイパスによって前記レジス
    タからの読出しを行う命令に対してデータを加えること
    を特徴とした特許請求の範囲第1項記載のパイプライン
    制御装置。
JP62064280A 1987-03-20 1987-03-20 パイプライン制御装置 Pending JPS63231531A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62064280A JPS63231531A (ja) 1987-03-20 1987-03-20 パイプライン制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62064280A JPS63231531A (ja) 1987-03-20 1987-03-20 パイプライン制御装置

Publications (1)

Publication Number Publication Date
JPS63231531A true JPS63231531A (ja) 1988-09-27

Family

ID=13253655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62064280A Pending JPS63231531A (ja) 1987-03-20 1987-03-20 パイプライン制御装置

Country Status (1)

Country Link
JP (1) JPS63231531A (ja)

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
EP0380858A2 (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
JPH02257219A (ja) パイプラインプロセッサ装置および方法
US5961633A (en) Execution of data processing instructions
JPH0553803A (ja) プロセツサ
JPH0348536B2 (ja)
JPH09138778A (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US4969117A (en) Chaining and hazard apparatus and method
JPS63231531A (ja) パイプライン制御装置
US5802384A (en) Vector data bypass mechanism for vector computer
US4935849A (en) Chaining and hazard apparatus and method
JP3017866B2 (ja) 割込み処理方式
JP2929980B2 (ja) 情報処理装置
JPH07114509A (ja) メモリアクセス装置
JPH02127731A (ja) 演算レジスタのバイパスチェック方式
US5644745A (en) Apparatus for replacing data availability information for an instruction subsequent to a branch with previous availability information upon branch prediction failure
JPS61131047A (ja) パイプライン制御方式
JPH0269825A (ja) パイプライン制御方式
JPH0248733A (ja) 情報処理装置
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPH09146769A (ja) パイプライン処理装置
JPS59220844A (ja) 命令再実行制御方式
JPS62166451A (ja) 論理装置の履歴解折装置
JPH0769800B2 (ja) データ処理装置