JPH0348537B2 - - Google Patents

Info

Publication number
JPH0348537B2
JPH0348537B2 JP57071217A JP7121782A JPH0348537B2 JP H0348537 B2 JPH0348537 B2 JP H0348537B2 JP 57071217 A JP57071217 A JP 57071217A JP 7121782 A JP7121782 A JP 7121782A JP H0348537 B2 JPH0348537 B2 JP H0348537B2
Authority
JP
Japan
Prior art keywords
instruction
stage
registers
operand
register
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.)
Expired - Lifetime
Application number
JP57071217A
Other languages
English (en)
Other versions
JPS58189739A (ja
Inventor
Kenichi Wada
Yoichi Shintani
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 JP57071217A priority Critical patent/JPS58189739A/ja
Priority to EP83104226A priority patent/EP0094535B1/en
Priority to DE8383104226T priority patent/DE3380908D1/de
Priority to US06/490,166 priority patent/US4541047A/en
Publication of JPS58189739A publication Critical patent/JPS58189739A/ja
Publication of JPH0348537B2 publication Critical patent/JPH0348537B2/ja
Granted 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

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)

Description

【発明の詳細な説明】 本発明はデータ処理装置に係り、特に命令処理
を複数ステージに分割し、各々のステージに独立
なハードウエアを設け、各ステージをオーバラツ
プさせたパイプライン処理方式のデータ処理装置
に関するものである。
従来のパイプライン処理方式では命令処理を5
〜7個のステージに分け、各ステージを1マシン
サイクル(データ処理装置の基本サイクル)で処
理すると同時に各ステージをオーバラツプさせる
ことによつて、1命令の実行を恰も1サイクルで
処理しているようにさせる技術を用いていた。
第1図Aはパイプライン処理方式による命令処
理の一例を示す。命令処理はD,A,L,E,P
の5ステージに分かれている。命令D(Decode)
ステージに於いて、デコードされオペランドアド
レスが計算される。オペランドアドレスは、命令
のインデクスフイールドによつて指定された
GPRの値と、命令のベースフイールドによつて
指定されたGPRの値と命令のデイスプレースメ
ントフイールドを加算することによつて求められ
る。命令によつてはインデクスレジスタを使用し
ない場合もある。Aステージにおいて求められた
オペランドアドレスが物理アドレスに変換され
る。Lステージにおいて上記物理アドレスに基ず
きオペランドをバツフアメモリ(キヤツシユメモ
リともいう)より読出す。必要ならばGPRオペ
ランドも読出す。Eステージにおいてこれらのオ
ペランドを用い演算をする。Pステージにおいて
演算結果をGPR又はメモリへ格納する。第1図
Aでは命令〜が各ステージを1サイクルピツ
チで処理される場合を示しており、実効的に1サ
イクルで1つの命令が処理されている。しかし、
このようなパイプライン処理方式では、命令系列
によつて命令を1サイクルで処理できない場合が
ある。例えば、前の命令の処理結果を用いて、次
の命令のオペランドアドレスが求まる場合であ
る。例えば、IBM370のアーキテクチヤー(これ
によるデータ処理の動作に関する説明はIBMシ
ステム参考図書GA22−7000「IBMシステム1370
の動作原理」に記述されているので詳しい説明は
省略する)では、L(Load)命令とA(Add)命
令が連続し、L命令でオペランドを書き込む
GPR(汎用レジスタ)番号とA命令がオペランド
アドレス計算のために使用するGPRの番号が一
致している場合である。これをインデクス・ベー
ス(レジスタ)コンフリクトとよぶことにする。
第1図Bは上記で説明したようにL命令とのA
命令でインデクス・ベースコンフリクトが発生
し、パイプラインが乱れ、性能が劣下したようす
を示す。即ちA命令のDステージにおいてオペ
ランドアドレスの計算をするにはL命令のPス
テージの終了をまたねばならない。これはL命令
のPステージにてA命令が使用するGPRが書
きかえられるからである。従つて第1図Aのよう
にパイプラインがスムーズに流れている場合と比
べ後続の命令(A)の実行開始は4サイクル遅れてい
ることがわかる。
本発明の目的はパイプライン制御方式における
インデクス・ベースレジスタコンフリクト時の性
能を改善したデータ処理システムを提供すること
にある。
実用に供されているプログラムを解析するとイ
ンデクス・ベースレジスタコンフリクトをおこし
た命令を調べてみるとその多くは、L命令,A命
令のように比較的少ない回路数で構成される演算
器で処理される命令であることを判明した。
そこで、Dステージを司どるハードウエアの近
くに上記の命令の多くの演算を処理できる先行演
算器を実装し、それによる演算結果もGPR Pス
テージより前のステージで格納できるようにする
ことにより、この命令結果を後続の命令が利用で
きるタイミングを早め、もつて上記インデクス・
ベースレジスタコンフリクト時の性能を改善する
ものである。
先行演算器で処理できない命令は従来同様、演
算ユニツト(EU)で演算処理された後で、それ
による演算結果をGPRへ送る必要がある。
しかしこのような構成をとつた場合、次の問題
が発生する。
演算結果が規定の桁をオーバフローしたときは
プログラム割込みを起こしてそのプログラムを中
断させる必要がある。この場合、その割込みを起
こした命令は割込みのタイプによつて抑止,中
断,完了として処理する必要がある。完了とはそ
の命令の実行が完了して次の命令は実行されない
で終了すること(割込むこと)であり抑止とはそ
の命令が実行されないで終了すること(割込むこ
と)であり、中断とはその命令がどこまで実行さ
れて終了したか保証しないタイプである。
従つて従来技術では、完了型割込みがおきた場
合、自命令のPステージの次のステージ及び次の
命令のPステージを停止させており、抑止/中断
型割込みがおきた場合、自命令のPステージ及び
次の命令のEステージを停止させることにより、
上記仕様を実現していた。
しかるに、GPRの書込みはPステージより前
(例えばEステージ)に処理されるため、例えば
完了型割込みでは次の命令のEステージまでが終
了してしまう(Pステージは停止される)ので、
次の命令のGPR書込みが完了してしまう。また、
抑止型割込みでは自命令のEステージまでが終了
してしまう。(Pステージは停止される。)ので自
命令のGPR書込みが完了してしまい、結果とし
て上記のソフトウエアとのとりきめを守れないと
いう欠点を有していた。
即ちGPRの書込みより1ステージ早くなつて
いるので、これでは割込みを検出してステージを
停止させた時点に於いては、GPRの内容が、ソ
フトウエアととりきめた既に述べたような割込み
の仕様より最大1命令ずれてしまつている。
これを解決するために本発明では2つの方法を
開示している。1つの方法はさらにPステージで
書込むGPR(GGPRと呼ぶ)をHU2に設け、こ
のGGPRの内容を利用する方法である。
GGPRはソフトウエアととりきめた正しい仕様
の内容になつているので、割込み処理のハードウ
エア処理の中でIGPRの内容を全てGGPRの内容
に従つて書きかえる方法である。もう1つの方法
は書きかえられる前のGPRの内容を予め退避し
て、割込み処理のハードウエア処理の中で予め退
避したデータで、GPRを回復する方法である。
以下、本発明の一実施例を図により説明する。
本実施例はIBM社のシステム1370型電子計算機
に適用可能であり、このシステムの動作は上記会
社の前述した出版刊行物「IBMシステム1370の
動作原理」により説明されている。従つて以下で
は、特に必要のない限り、上のシステムの動作の
説明は省略することともに、そこに用いられてい
る用語を、特別の場合を除き説明を省略して使用
する。本発明によるデータ処理システムでは、1
つの命令の実行は複数のステージに分けて、かつ
異なる命令の異なるステージが並列に実行される
いわゆるパイプライン制御により実行される。本
実施例では従来技術で述べたのと同じくD,A,
L,E,Pのステージが実行される。
第2図は本発明による命令ユニツト(IU)1
の構成を示し、第3図は本発明による演算ユニツ
ト(EU)2の構成を示す。IU1に従来同様GPR
60が設けられ、EU2にも新たに、これと同じ
数のGPR4050が設けられている。以下、それぞ
れのGPRをIGPR,GGPRと呼ぶ。(Dステージ) 複数の命令がバツフアメモリ960から命令バ
ツフア900にあらかじめ貯えられる。各命令は
そのDステージの始まる前に命令切り出し回路9
01により命令レジスタ902にセツトされる。
この命令がインデツクスアドレス、ベースアドレ
ス、デイスプレイメントから一方のオペランドの
アドレスを発生する形式(RX形式)を有すると
きは、そのDステージに於いて、X/Bアドレス
制御回路990が、この命令からインデクスレジ
スタアドレス(Xとす)ベースレジスタアドレス
(Bと略す)をそれぞれ線53,54を介して
IGPR60に送る。インデツクスレジスタアドレ
スXと、ベースレジスタアドレスBでそれぞれ読
出されたデータGR(X),GR(B)と、命令のデイ
スプレイメントとがアドレス加算器980へ送ら
れ、アペランドアドレスが計算される。また、命
令レジスタ902内の命令の種別に関係なく、そ
の前半スバイト(その最左端の1バイトは命令コ
ードである)は命令キユー903にセツトされ
る。先行演算器で処理できる命令はLステージ、
できない命令はPステージIGPRに書込むのでこ
の違いをこの命令コードに基づき判定回路902
Aによりこの命令を先行演算器981で処理でき
ないかどうかが判定され、その結果、即ちPステ
ージでのIGPR書込み要求信号命令の前半2バイ
トと対にして命令キユー903にセツトされる。
(Aステージ) RX形式の命令の場合、Dステージで得られた
オペランドアドレスをアドレス制御950が、バ
ツフアメモリ用の物理アドレスに変換し、バツフ
アメモリ960からオペランドを読出し、オペラ
ンドバツフア970にセツトする。同時に、この
出力はセレクタ840による選択され、先行演算
器981に入力される。命令キユー903から出
力される命令の先頭2バイトをワークレジスタ
(IER)904にセツトすると同時に、GPRアド
レス制御991により、この命令が使用する他方
のオペランドを記憶したIGPRのアドレスR1を
この命令のレジスタフイールドより切り出し、線
55経由でIGPR60へ送出する。このアドレス
R1に基づきIGPR60から読出されたオペラン
ドGRR1線820に送出され、セレクタ850
により選択され先行演算器981に入力され命令
キユー903から出力された2バイトがIGPRに
ある2つのレジスタ内のデータをオペランドとし
て使用する形式(RR形式)の命令のときには、
もう一方のオペランドに対するIGPRアドレスR
2をそこからGPRアドレス制御991が切り出
し、線56経由でIGPR60へ送り、これにより
読出されたオペランドGRR2は線830に送出
され、セレクタ850により選択され、先行演算
器981に入力される。また、Eステージを制御
するマイクロプログラムの先頭アドレスを指定す
るために命令キユー903から出力される命令の
オペコード(1バイト目)を出力線30により送
出する。
また、GPRの読出し書込みアドレスを含む命
令の1バイト目は線31経由でもEU2へ送出さ
れる。同時にPステージでのIGPR書込み要求信
号を線31A経由でEC2へ送出する。
(Lステージ) Aステージで読出された上記2つのオペランド
が先行演算器981で演算可能な命令に対すると
きは、この演算を実行し、結果をレジスタ982
にセツトする。同時に線20,21経由で2つの
オペランドをEU2へ送出する。IER904のう
ち、命令の上位側からのビツト8〜11にて指定さ
れる書込み用のレジスタアドレスを線800を介
してレジスタ9040にセツトする。先行演算器
ではAS,TM等出現頻度の多い命令が実行でき
るM,D等論理規模の大きい命令は処理できな
い。
EU2では先行するAステージにおいてIU1よ
り線30経由で送出されたマイクロプログラムの
先頭アドレスをLステージにおいてアドレスレジ
スタ(CSAR)1000にセツトし、制御記憶装
置1010からマイクロ命令を読出してレジスタ
(CSDR)1001に入力する。同様にAステー
ジにおいてIU1より径31経由で送られた命令
の1バイト目をLステージにおいてレジスタ
(GEL)3100にセツトする。同様にAステー
ジにおいてIU1より線31A経由で送られたP
ステージでのIGPR書込み要求信号はLステージ
において、フリツプフロツプ5000にセツトさ
れる。
(Eステージ) IU1ではレジスタ9040の出力52の書込
みアドレスを用いてレジスタ982の出力50を
IGPR60に書込む。
EU2では、線20,21経由で送られたオペ
ランドをワークレジスタ(WAR)4000、ワ
ークレジスタ(WBR)4010にセツトし、演
算器4030でマイクロ命令の制御下で演算し結
果をレジスタ4040にセツトする。演算器40
30はIU1内の先行演算器981と違い、全て
の命令を処理できる汎用演算器である。Aステー
ジでセツトされたレジスタ(GEL)3100の
内容はLステージにおいてレジスタ(GER)3
110に移され、しかる後GPR書込みアドレス
制御3110Aにより書込みアドレスが作られて
(RX命令ではGER3110の上4ビツトが書込
みアドレスとなる)線11経由でIU1の比較器
904Aへ送られ、EステージIU1内のレジス
タ9041にセツトされる。フリツプフロツプ5
000の出力はEステージにおいてフリツプフロ
ツプ5010にセツトされ、線5010Aを介し
てIU1内のGPR書込み制御70へ送られる。L
ステージで読出されたマイクロ命令はCSDR10
01にセツトされる。EU1での演算が1マシン
サイクルで終了するもののときは、読出されたマ
イクロ命令内に終了ビツト(EOP)が設けられ
ており、これが線1011を介して、CSAR10
00に、次の命令に対するマイクロプログラムの
先頭アドレス30をセツトする。読出されたマイ
クロ命令がマイクロプログラムの最後のものでな
い場合は読出されたマイクロ命令の1部が次のマ
イクロ命令アドレスとして、線1011経由で
CSAR1000にセツトされる。こうして複数の
マイクロプログラムが順次読出される。そのマイ
クロプログラムの最後のマイクロ命令がCSPR1
001にセツトされたときは前の場合と同様にし
て、線30上の、先頭アドレスがCSAR1000
にセツトされる。GGPRの書込みおよびIGPRの
書込みはマイクロ命令で指定される。GGPR書込
みを必要とする命令の場合は、GGPR書込みのマ
イクロ命令がマイクロプログラム内に設けられて
おり、その命令がCSDR1001の出力線101
3を経由して、デコーダ4100により解読され
ると、フリツプフロツプ4101がセツトされ
る。フリツプフロツプ4101がセツトされる。
フリツプフロツプ4101は線58を経由して
GGPR4050へ書込み許可信号を送出する。先
行演算器で処理可能な命令でもGGPR書込みマイ
クロ命令をEステージで発行することに注意され
たい。先行演算器981で処理不能の命令場合
は、IGPR書込みマイクロ命令がマイクロプログ
ラム内に設けられている。IGPR書込みマイクロ
命令がCSDR1001の出力線1002を経由し
てデコーダ4200に伝えられフリツプフロツプ
4102をセツトしIGPR書込み信号100をIU
1へ送出する。
(Pステージ) PステージにおいてはEU2での演算結果をマ
イクロ命令の制御下でレジスタ4040から
WCR4020にセツトし、結果を線4020A
経由でGGPR4050へ送出する。先行演算器9
81で演算できない命令の場合は、書込むべきデ
ータを線10経由でIU1へ送出し、IGPR60に
書込む。
さらに、インデクス・ベースレジスタコンフリ
クトが発生した場合はX/Bコンフリクト検出器
3により検出され線3AによりDステージを抑止
する。その動作の詳細は第6図で説明する。
以上により、先行演算器を具備した本発明の実
施例の動作のうち、D,A,L,E,Pの5ステ
ージの動作の概要について説明した。
第4図は本発明の特徴である第2図のIGPR6
0をさらに詳細に示した図である。
既に説明したようにDステージではインデクス
レジスタとベースレジスタAステージではオペラ
ンドR1とオペランドR2を読出している。Dス
テージとAステージはパイプラインによりオーバ
ラツプして動作するのでインデクスレジスタ、ベ
ースレジスタ、オペランドR1、オペランドR2
の4本のIGPRを同時に読出している。その詳細
を第4図で説明する。
IGPRは16本のGPR、8000〜8015があ
り(それらをGPR0〜GPR15と呼ぶ)それぞ
れ出力がMPX,53A,53B,53C,53
Dへつながつている。MPX,53Aは線53を
介して入力されるインデツクスレジスタアドレス
Xにより1本のGPRを選択し、線800に送出
する。同様にMPX,53Bは線54により指定
されるベースレジスタアドレスBにより1本の
GPRを選択し、線810に送出し、MPX,53
Cは線55を介して入力されるレジスタアドレス
R1により1本のGPRを選択し、線820に送
出し、MPX,53Dは線56を介して入力され
るレジスタアドレスR2により1本のGPRを選
択し、線830に送出する。このように4つの
GPRを独立に読出すことができる。
また先行演算器で処理できる命令はLステージ
で処理できない命令はPステージでIGPRに書込
む。LステージとPステージはパイプラインによ
りオーバラツプして動作するのでLステージとP
ステージで同時にIGPRを書込む必要がある。そ
の構成と動作の詳細を次に説明する。Pステージ
に於いてEU2からの書込みデータは線10経由
で各GPR8000〜8015へ結線される。同
様に、先行演算器981からの書込みデータも線
50経由で各GPR8000〜8015へ結線さ
れる。EU2からGPRアドレスは線51経由で送
られデコーダ61でデコードされたあと、IGPR
書込み信号100とアンゲートを経て、線630
〜線645に送出される。Lステージは先行演算
器での結果を書込むべきGPRアドレスを線52
経由で送り、デコーダ62でデコードされたあ
と、IGPR書込み許可信号700とアンゲートを
経て線650〜線665に送出される。Pステー
ジでの書込み信号630とLステージでの書込み
信号650はオアゲートを経て線530を送出し
GPR8000へのセツト信号を作る。線631
〜線645と線651〜線665も同様にオアゲ
ートを経て、線531〜545を送出しGPR8
001〜GPR8015へのセツト信号となる。
GPR8000へのデータ入力は線630による。
即ち線630が“1”の場合、線10を選び、線
630が“0”の場合、線50を選択する。
GPR8001〜GPR8015の場合も同様に線
631〜線645によりデータ入力を選択する。
以上により、LステージとPステージで同時に
IGPRを書込むことが可能となる。
次にインデクス・ベースレジスタコンフリクト
が発生したときの動作を第2図,第5図,第6図
を用いて説明する。第5図は第2図の命令ユニツ
ト内のX/Bコンフリクト検出器3を詳細に示し
た図である。第6図はその場合のパイプラインの
流れ図である。D,A,L,E,Pは各ステージ
を表わし、横軸は時間をマシンサイクル単位で表
わしている。各マシンサイクルは2つのクロツク
によつて分けられ、それぞれT0,T1,T2,T3
する。以下では、各命令の説明において、あるマ
シンサイクルCiがその命令のあるステージ、例え
ばDステージに対するものであるときは、そのサ
イクルのクロツクTiをクロツク(D,Ti)の如
くステージと組合せて表示する。第6図の番号
〜は処理される命令の番号を示している。また
はL(Load)命令、はA(Add)命令で、
の書込みレジスタ番号R1とのインデクレジス
タ番号Xが一致し、いわゆるインデクスレジスタ
コンフリクトを起こしている場合の本発明による
パイプラインの流れを示している。従つて第1図
Bの従来技術のパイプラインの流れに対応してい
る。
L命令は先行演算器981で処理可能なので
既に説明したようにLステージでIGPRに書込む
ことができる。従つてL命令のEステージにオ
ーバラツプしてA命令のDステージが動作で
き、必要なオペランドアドレスを得ることができ
る。これにより第1図Bに比べ、A命令のDス
テージを2サイクル早く開始することができた。
それは第1図BではL命令のPステージで
GPRに書込んだのに比べ、第6図では2サイク
ル早いLステージでGPRに書込めることに起因
する。その動作の制御をさらに以下に説明する。
L命令はC1サイクルのクロツクT0(D,T0)で
命令レジスタ902にセツトされる。L命令は
先行演算器981で処理可能なので、判定回路9
02Aで判定され、出力“0”をC2サイクルの
クロツクT0(A,T0)で命令キユー903にセツ
トされる。また命令レジスタの前半2バイトは、
同じく(A,T0)に命令キユー903にセツト
される。線903Aは(A,T0)より出力され
る。C2サイクルのクロツクT0ではA命令が命
令レジスタ902にセツトされる。X/Bアドレ
ス制御回路990はA命令のX,Bを線53,
54を介してX/Bコンフリクト検出器3に送
る。同時刻にL命令の書込みレジスタ番号R1
が線903Aを介してX/Bコンフリクト検出器
3に送られる。3では第5図に示す比較器100
00により比較される。この場合アドレスな一致
しているので、出力はオアゲートを介しDステー
ジ抑止信号3Aを“1”とする。この信号により
A命令はC2サイクルでのDステージの処理を
抑止される。
C2サイクルのクロツクT2(A,T2)ではL命令
の書込みアドレスR1を含む前半2バイトが
IER904にセツトされる。IER904の書込み
アドレスR1を含む4ビツトを線800を介して
C3サイクルのクロツクT0(L,T0)でレジスタ9
040にセツトされる。
C2サイクルでA命令のDステージの動作が
抑止されたのでC3サイクルのクロツクT0で線5
3,54にはA命令のX,Bが送出されてい
る。同時刻にレジスタ9040の出力52はL命
令の書込みアドレスR1が送出されているの
で、X/Bコンフリクト検出器3では線53と線
53を比較器10010で比較する。この場合、
アドレスは一致するので、出力はオアゲートを介
し、Dステージ抑止信号3Aを“1”とする。こ
れによりA命令はC3サイクルでのDステージ
処理も抑止される。
C2サイクルのクロツクT2(A,T2)でPステー
ジでのIGPR書込み要求信号は31A経由でEU
2へ送出され、C3サイクルのクロツクT2(L,
T2)でフリツプフロツプ5000にセツトされ、
線5000Åを介してIU1へ送られる。
C2サイクルのクロツクT0(A,T0)でL命令
の書込みアドレスR1が線31を経由してEU2
へ送られC2サイクルのクロツクT2(A,T2)で
GEL3100にセツトされる。C3サイクルのク
ロツクT0(L,T0)でGER3100にセツトさ
れGPR書込みアドレス制御3110Aにより、
3100の上4ビツト、即ちL命令のR1が切
り出されC3サイクルのクロツクT2(L,T2)に1
1を介してIU1へ送られる。
C3サイクルでもA命令のDステージの動作
が抑止されたのでC4サイクルのクロツクT0で線
53,54にはA命令のX,Bが送出されてい
る。
同時刻に線11にはL命令の書込みアドレス
R1が送出されているので、X/Bコンフリクト
検出器3では線11と線53を比較器10020
で比較する。この場合もアドレスは一致するが、
PステージでのIGPR書込み要求信号5000A
は“0”であるので、アンドゲートで抑止され、
Dステージ抑止信号3Aは“0”となる。従つて
A命令はC4サイクルでDステージの処理がな
される。
L命令は先行演算器981で処理可能である
が、命令が先行演算器981で処理不可能の場
合は、PステージでのIGPR書込み要求信号50
00Aが“1”となりC4サイクルでもDステー
ジ抑止信号3Aが“1”となりDステージの処理
が抑止される。さらにこの場合C5サイクルでも、
PステージのIGPR書込み要求信号5010Aが
“1”となり、Dステージ抑止信号3Aが“1”
となることになりDステージの処理が抑止され
る。C6サイクルではじめて命令のDステージ
が処理される。この場合のパイプラインの流れは
第1図Bと同じとなる。
また、ベースレジスタ54についても同じく比
較器10040〜10070によりアドレス比較
がなされ必要ならDステージ抑止信号3Aを
“1”とする。
このようにして、命令が先行演算器981で
処理可能な場合、インデクスレジスタコンフリク
ト時の性能を従来より2サイクル改善することが
できた。
次にこのように先行演算器を構成した場合に生
ずる発明の概略で述べた不都合を解決する方法及
び動作について説明する。
命令で抑止形割込みが起きた場合の命令の流
れを第7図に示す。命令でEU2が抑止形割込
みを検出した場合、EU2は命令のPステージ
を停止させると同時に割込み信号(図示せず)を
IU1へ次え、D,A,L,Eの各ステージを停
止させる。即ちC5サイクル以降の各ステージが
停止する。この場合、命令のEステージが完了
しているので命令によるIGPR書込みは完了し
ている。しかし命令のPステージは停止させら
れているので、GGPRは書きかわつていないこと
に注意されたい。
EU2ではこの各ステージが停止している間
CSAR1000を割込み処理マイクロプログラム
の先頭アドレスに強制的にセツトし、これをうけ
て制御記憶装置1010を読出し、CSDR100
1にセツトする。しかるのち割込み処理マイクロ
プログラムが動作する。ここまでの動作は、
HITACN−180ような商用機の動作と全く同一で
ある。本発明の特徴はこの割込み処理マイクロプ
ログラムの中で次の動作をつけ加えることであ
る。第7図で示されるようにこの場合、命令の
Eステージが終了しているので、IGPRが書きか
わつている。従つて1命令分オーバランしてい
る。GGPRの内容でIGPRの内容を全て書き直す
ことによつてこのオーバランの不都合を解決する
ことが可能である。これは次のように動作する。
第3図においてGGPR4050への読出しアドレ
スはマイクロ命令で自由に設定できる。これは通
常リテラルとよれば、CSDR1001の出力線8
800を経由してレジスタ(GER)3110に
セツトされる。これをGPR読出しアドレス3110B
がGGPR4050にアドレスを送る。読出された
データは、WAR4000又はWBR4010、
演算器4030、フリツプフロツプ4040をへ
てWCR4020にセツトされる。GER3110
にセツトされた値はGPR書込みアドレス3110A
によりIGPR書込みアドレスを線11経由でIU1
へ送る。書込みデータはWCR4020の出力線
10を経由してIU1へ送る。IGPR書込み指令は
マイクロ命令で指定され、線1002をへて、デ
コーダ4200によりフリツプフロツプ4102
にセツトされ、線100をへてIU1へ送られる。
これをうけてIU1は既に説明したようにIGPR6
0に書込まれる。GPRアドレスのカウントアツ
プは演算器888を使い、GPRアドレスを更新
することによつて、上記の動作をくり返すことが
可能である。以上によりGGPR4050の内容を
全てIGPR60に書くことができる。
命令で完了形割込みが起きた場合の命令の流
れを第8図に示す。図に示すように、命令の次
の命令のPステージを停止させると同時に割込
み信号IU1へ伝えることにより、D,A,L,
Eの各ステージを停止させる。従つてこの場合、
C6サイクル以降のステージが停止する。命令
のEステージが終了しているので命令により
IGPRは書きかわつていることと、命令のPス
テージは停止しているのでGGPRは書きかわつて
いないことに注意されたい。この場合も抑止形割
込みと同様にGGPRの内容でIGPRの内容を書き
かえる。中断形割込みは上記2つのどちらのタイ
プで処理するので問題ない。
割込みがおきた場合の不都合を解決するもう1
つの第2の実施例を次に説明する。既に説明した
動作と異なる動作を中心に説明する。これは書き
かえられる前のGPRの内容を予め退避する方法
である。この退避は次のようになされる。第2図
に於いて、Aステージで書きかわる前のGPRを
読出すことに動作が新たに加わる。これは命令の
再実行のため例えばHITAC−M−180で実施さ
れている周知の技術であり、また第2図の回路で
実現できる。例えばL命令を例にするとAステー
ジにおいて、、書込みアドレスR1をGPRアドレ
ス制御991が切り出し線55経由でIGPR60
へ送ることにより書込む前のGPR(R1)を線8
20に送出することができる。また、これを線2
0経由でEU2へ送ることもできる。EU2に関し
ては第3図にかわり、第9図が必要である。第9
図に於いて、Eステージで書込みアドレスを含む
レジスタ(GER)3110をMCER3111に
退避する。また、書込む前のデータは線20経由
でEU2へ送られレジスタ(WBR)4010に
セツトされる。EステージにおいてWBR401
0内容をMCDR4081に退避される。従つて
MCDR4081には書込まれる前記のGPRの内
容が退避されることになる。
このようにして書込む前のデータがMCDR4
081に、そのアドレスがMCER3111に退
避される。
次に命令で抑止形割込みがおきた場合の動作
について説明する。この場合、ステージが停止す
るのは第7図と全く同じであり、割込み処理マイ
クロプログラムが動作するまでも全く同じである
が第1の実施例のように割込み処理マイクロプロ
グラムではGGPRの内容でIGPRの内容をかきか
えることはせず、MCER3111の内容をGEL
3100に読出し、GER3110を経由して、
GPR書込みアドレス制御3110Aにより、書込み
アドレスを線11経由でIU1へ送出する。書込
みデータは、退避データをMCDR4081より
読出し、RESULT4040,WCR4020,線
10を経由してIU1へ送出する。書込み指令は
CSDR1001により、線100を経由してIU
1へ送出する。このようにして、退避したデータ
をIGPRへ書込むことができる。これらの動作は
マイクロ命令により行なわれる。
命令で完了形割込みが発生した場合も、割込
み処理マイクロプログラムの動作は同じなので説
明を省略する。
以上の2つの実施例により割込みがおきた場合
もGPRの内容をソフトウエアととりきめた仕様
にすることが可能となつた。
本発明によれば、先行演算器で命令処理が可能
となり、GPRへの書込みが高速されるので、イ
ンデクス・ベースレジスタコンフリクト時の性能
を改善したデータ処理システムを提供することが
できた。本発明の効果の例は既に第6図に示し
た。即ち命令がL命令,がA命令で、この2
命令の間にインデクスベースレジスタコンフリク
トが発生し、パイプラインが乱れたようすを第6
図に示した。これは従来技術の同一ケースの第1
B図に相当する。本発明では命令のEステージ
でGPRへの書込みが可能となるため、同一サイ
クルで命令のDステージをオーバラツプさせる
ことが可能となる。従つて第1B図と比較して2
サイクル高速化できることがわかる。またこのよ
うな構成では、割込みを検出した時点に於いて
は、GPRの内容が、ソフトウエアととりきめた
割込みの仕様より最大1分令ずれてしまうが、E
ステージで書込みIGPRに加えPステージで書込
むGGPRをEU2に設け、割込み処理のハードウ
エアマイクロプログラム処理の中で、IGPRの内
容を全てGGPRの内容に従つて書きかえる第1の
方法、又は書きかえらるろ前のGPRの内容を予
め退避しておき、この退避データを用いてGPR
を回復する第2の方法により、ソフトウエアとと
りきめた割込みの仕様を実現することが可能とな
つた。
【図面の簡単な説明】
第1図Aはパイプライン処理方式による従来技
術による命令処理図、第1図Bはインデクス・ベ
ースレジスタコンフリクトが発生した場合の従来
技術の命令処理図、第2図は命令ユニツト1の詳
細図、第3図は演算ユニツト2の詳細図、第4図
は第2図のIGPR60の詳細図、第5図は第2図
のX/Bコンフリクト検出器3の詳細図、第6〜
第8図は本発明の実施例を説明する動作図であ
る。第9図は本発明の他の実施例を説明するため
の図である。

Claims (1)

  1. 【特許請求の範囲】 1 パイプラインモードで複数の命令の各々を複
    数のステージに分けて実行するデータ処理システ
    ムであつて、 オペランドを保持するメモリと、 該メモリから読みだされたオペランドを保持す
    るオペランドバツフアと、 複数の第一のレジスタと、 該複数の第一のレジスタの一つにそれぞれ対応
    する複数の第二のレジスタと、 複数の命令の内の、メモリオペランドに対する
    演算を要求する命令に応答して、該複数の第一の
    レジスタの少なくとも一つに保持されたレジスタ
    オペランドに加算を施してそのメモリオペランド
    を読み出すためのアドレスを生成する加算器と、 該複数の命令の各々が要求する、レジスタオペ
    ランドまたはメモリオペランドに対する演算を、
    該複数の第二のレジスタの一つに保持されたレジ
    スタオペランドまたはその命令により該オペラン
    ドバツフアに読み出されたメモリオペランドに対
    して実行し、各々の演算結果を該複数の第二のレ
    ジスタの一つに書き込む第一の演算手段と、 該複数の命令の内の一部の命令の各々が要求す
    る、レジスタオペランドまたはメモリオペランド
    に対する演算を、該複数の第一のレジスタに保持
    されたレジスタオペランドまたはその命令により
    該オペランドバツフアに読み出されたメモリオペ
    ランドに対して、かつ、その演算が、該第一の演
    算手段により実行されるのに先行して実行し、
    各々の演算結果を該複数の第一のレジスタの一つ
    に書き込む第二の演算手段とを有し、 該第一の演算手段は、該一部の命令以外の命令
    が要求する演算を実行したとき、その演算結果を
    該複数の第一のレジスタの一つにも書き込手段を
    有し、 さらに、割り込みが検出されたとき、割り込ま
    れた命令が中止される前に既に該第二の手段によ
    り演算が実行された後続の命令の演算結果が格納
    された、該複数の第一のレジスタの一つの内容
    を、その格納前の状態に書き換える手段を設けた
    データ処理システム。 2 該書き換え手段は、割込みが検出されたとき
    に該複数の第二のレジスタの内容を該複数の第一
    のレジスタの内容に一致させる手段からなる請求
    項1記載のデータ処理システム。 3 第一致させる手段は、該複数の第一のレジス
    タの内容とが複数の第2のレジスタに転送する手
    段からなる請求項2記載のデータ処理システム。 4 該書き換え手段は、 該第二の演算手段の演算結果により書き換えら
    れる前の該複数の第一のレジスタのデータを退避
    する複数の第三のレジスタと、 該複数の第二のレジスタのうち、該書き換えが
    行われた一つのレジスタのアドレスを記憶する手
    段と、 割込みの検出時に、該記憶されたアドレスで指
    定される一つのレジスタに、退避されたデータを
    格納する手段とよりなる請求項1記載のデータ処
    理システム。
JP57071217A 1982-04-30 1982-04-30 デ−タ処理システム Granted JPS58189739A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57071217A JPS58189739A (ja) 1982-04-30 1982-04-30 デ−タ処理システム
EP83104226A EP0094535B1 (en) 1982-04-30 1983-04-29 Pipe-line data processing system
DE8383104226T DE3380908D1 (de) 1982-04-30 1983-04-29 Nach dem prinzip der pipeline arbeitendes datenverarbeitungssystem.
US06/490,166 US4541047A (en) 1982-04-30 1983-04-29 Pipelined data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57071217A JPS58189739A (ja) 1982-04-30 1982-04-30 デ−タ処理システム

Publications (2)

Publication Number Publication Date
JPS58189739A JPS58189739A (ja) 1983-11-05
JPH0348537B2 true JPH0348537B2 (ja) 1991-07-24

Family

ID=13454281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57071217A Granted JPS58189739A (ja) 1982-04-30 1982-04-30 デ−タ処理システム

Country Status (4)

Country Link
US (1) US4541047A (ja)
EP (1) EP0094535B1 (ja)
JP (1) JPS58189739A (ja)
DE (1) DE3380908D1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
JPS619734A (ja) * 1984-06-26 1986-01-17 Nec Corp プロセツサ制御方式
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
JPH0743648B2 (ja) * 1985-11-15 1995-05-15 株式会社日立製作所 情報処理装置
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
US4868740A (en) * 1986-06-04 1989-09-19 Hitachi, Ltd. System for processing data with multiple virtual address and data word lengths
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
JPS63170736A (ja) * 1987-01-09 1988-07-14 Toshiba Corp マイクロプロセツサ
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US4974146A (en) * 1988-05-06 1990-11-27 Science Applications International Corporation Array processor
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5099450A (en) * 1988-09-22 1992-03-24 Syracuse University Computer for reducing lambda calculus expressions employing variable containing applicative language code
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
JP2002189603A (ja) * 2000-12-19 2002-07-05 Fujitsu Ltd 計算機とその制御方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5041442A (ja) * 1973-08-16 1975-04-15
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS5441641A (en) * 1977-09-09 1979-04-03 Hitachi Ltd Data processing system having data producing unit
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
JPS56166553A (en) * 1980-05-26 1981-12-21 Nec Corp Information process having advanced control function
JPS57168349A (en) * 1981-04-09 1982-10-16 Mitsubishi Electric Corp Pipeline computer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1443777A (en) * 1973-07-19 1976-07-28 Int Computers Ltd Data processing apparatus
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
US4253183A (en) * 1979-05-02 1981-02-24 Ncr Corporation Method and apparatus for diagnosing faults in a processor having a pipeline architecture
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5041442A (ja) * 1973-08-16 1975-04-15
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS5441641A (en) * 1977-09-09 1979-04-03 Hitachi Ltd Data processing system having data producing unit
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
JPS56166553A (en) * 1980-05-26 1981-12-21 Nec Corp Information process having advanced control function
JPS57168349A (en) * 1981-04-09 1982-10-16 Mitsubishi Electric Corp Pipeline computer

Also Published As

Publication number Publication date
JPS58189739A (ja) 1983-11-05
DE3380908D1 (de) 1990-01-04
EP0094535A3 (en) 1987-04-15
EP0094535A2 (en) 1983-11-23
US4541047A (en) 1985-09-10
EP0094535B1 (en) 1989-11-29

Similar Documents

Publication Publication Date Title
JPH0348537B2 (ja)
JPH0545985B2 (ja)
JPS6239780B2 (ja)
JPH0348536B2 (ja)
US4385365A (en) Data shunting and recovering device
EP0354585B1 (en) Instruction pipeline microprocessor
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JPS6116335A (ja) 情報処理装置
JPH0377137A (ja) 情報処理装置
JP2783285B2 (ja) 情報処理装置
JP2552738B2 (ja) データ処理装置
JPS5896345A (ja) 階層型演算方式
JPS6242301B2 (ja)
JP2824484B2 (ja) パイプライン処理計算機
JP2812610B2 (ja) パイプライン制御方式
JPS5896346A (ja) 階層型演算方式
JPS595354A (ja) デ−タ処理装置
JP2550408B2 (ja) 条件分岐命令の制御方式
JPH02191042A (ja) 割込み制御方式
JPS5829051A (ja) 演算処理装置
JPH0419575B2 (ja)
JPH05250161A (ja) マイクロコンピュータ装置
JPS6149695B2 (ja)
JPH0535499A (ja) データ処理装置及びデータ処理方法