JPS6161412B2 - - Google Patents
Info
- Publication number
- JPS6161412B2 JPS6161412B2 JP4212480A JP4212480A JPS6161412B2 JP S6161412 B2 JPS6161412 B2 JP S6161412B2 JP 4212480 A JP4212480 A JP 4212480A JP 4212480 A JP4212480 A JP 4212480A JP S6161412 B2 JPS6161412 B2 JP S6161412B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- icsa
- instruction
- microinstruction
- address
- 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
Links
- 238000000034 method Methods 0.000 claims description 11
- 230000010365 information processing Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
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
【発明の詳細な説明】
本発明は情報処理装置、詳しくは、デコード、
オペランド読出し、演算のそれぞれ独立なハード
ウエアを持ち、演算ステージをマイクロプログラ
ムで制御しているマイクロプログラム制御パイプ
ライン計算機に関するものである。
オペランド読出し、演算のそれぞれ独立なハード
ウエアを持ち、演算ステージをマイクロプログラ
ムで制御しているマイクロプログラム制御パイプ
ライン計算機に関するものである。
大型のデータ処理システムでは命令を高速に処
理するためパイプライン方式を採用している。こ
の方式では命令のデコード、オペランドアドレス
計算、オペランドの読み出し、演算の実行等の処
理に独立ハードウエアを使用し、複数の命令をオ
ーバラツプさせて一度に処理している。この場
合、演算の処理はマイクロプログラムで処理し、
その他はハードウエアで処理することが多い。命
令のデコード、オペランドアドレス計算、オペラ
ンドの読出しを制御しているユニツトを先行制御
ユニツト、演算の実行部を演算ユニツトと呼ぶこ
とにする。通常、マイクロプログラムの先頭アド
レスは先行制御ユニツトが与え、その後マイクロ
プログラムで次のアドレスを与えながら命令の処
理が進み、最後にマイクロプログラムがEOP
(End of Operation)を発して終了する。EOPが
送られてくると、先行制御ユニツトは次の先頭ア
ドレスを与え、上記の過程をくり返す。先行制御
ユニツトが与えるマイクロ命令アドレスを
ICSA、マイクロ命令アドレスレジスタをCSAR
と呼ぶ。
理するためパイプライン方式を採用している。こ
の方式では命令のデコード、オペランドアドレス
計算、オペランドの読み出し、演算の実行等の処
理に独立ハードウエアを使用し、複数の命令をオ
ーバラツプさせて一度に処理している。この場
合、演算の処理はマイクロプログラムで処理し、
その他はハードウエアで処理することが多い。命
令のデコード、オペランドアドレス計算、オペラ
ンドの読出しを制御しているユニツトを先行制御
ユニツト、演算の実行部を演算ユニツトと呼ぶこ
とにする。通常、マイクロプログラムの先頭アド
レスは先行制御ユニツトが与え、その後マイクロ
プログラムで次のアドレスを与えながら命令の処
理が進み、最後にマイクロプログラムがEOP
(End of Operation)を発して終了する。EOPが
送られてくると、先行制御ユニツトは次の先頭ア
ドレスを与え、上記の過程をくり返す。先行制御
ユニツトが与えるマイクロ命令アドレスを
ICSA、マイクロ命令アドレスレジスタをCSAR
と呼ぶ。
さて、先行制御ユニツトが発するICSAである
が、これが有効でない場合が生じる。例えば分岐
命令を先行制御ユニツトがデコードすると分岐先
命令の読出しを起動する。一方、デコード等の先
行制御は分岐不成功側の命令列を続行する。しか
るに演算ユニツトで分岐成功が判明すると、これ
まで先行制御の対象となつていた分岐不成功側を
キヤンセルし、分岐成功側に切り替える。従つて
分岐の判定がでるまでICSAも無効とせざるを得
ない。そこでICSAの有効ビツトを用意し、無効
なICSAは特定の値(例えばオール“0”)を
CSARにセツトすることによつて無効なICSAが
動作するのを防いでいる。この場合、特定番地の
マイクロ命令はEOPのみで(他はNO
OPERATION)、ICSAが有効になるのを持つて
いる。
が、これが有効でない場合が生じる。例えば分岐
命令を先行制御ユニツトがデコードすると分岐先
命令の読出しを起動する。一方、デコード等の先
行制御は分岐不成功側の命令列を続行する。しか
るに演算ユニツトで分岐成功が判明すると、これ
まで先行制御の対象となつていた分岐不成功側を
キヤンセルし、分岐成功側に切り替える。従つて
分岐の判定がでるまでICSAも無効とせざるを得
ない。そこでICSAの有効ビツトを用意し、無効
なICSAは特定の値(例えばオール“0”)を
CSARにセツトすることによつて無効なICSAが
動作するのを防いでいる。この場合、特定番地の
マイクロ命令はEOPのみで(他はNO
OPERATION)、ICSAが有効になるのを持つて
いる。
ところで、マイクロ命令の実行はCSARにセツ
トされたアドレスに従つて制御メモリからマイク
ロ命令を読み出してデータレジスタ(CSDR)に
セツトし、これをデコードすることによつて行な
われる。LSIの進歩等により基本マシンサイクル
が短くなると、上記のようなCSARにアドレスが
セツトされてからCSDRにマイクロ命令がセツト
されるまでの時間も短くする必要があるが、これ
を従来の比で短くするには半導体の技術ばかりで
なく実装技術の進歩がないと実現できない。現在
のところ半導体技術の進歩の方が激しいので、従
来の方式と比べCSARのタイミングは前に出やす
くなつている。これは先行制御ユニツトからみる
と、従来よりもICSA及びICSAの有効ビツトの送
出タイミングが早くなることを意味している。さ
らにICSAよりもICSAの有効ビツトの方が回路段
数も多いので、CSARのタイミングに合わせるの
は殆んど不可能となつてきた。しかし、CSARの
タイミングに合わせるのは無理でもCSDRのタイ
ミングに合わせるのは可能である。例えばCSAR
に比べ、CSDRは3/4サイクル又は1サイクル遅
い。
トされたアドレスに従つて制御メモリからマイク
ロ命令を読み出してデータレジスタ(CSDR)に
セツトし、これをデコードすることによつて行な
われる。LSIの進歩等により基本マシンサイクル
が短くなると、上記のようなCSARにアドレスが
セツトされてからCSDRにマイクロ命令がセツト
されるまでの時間も短くする必要があるが、これ
を従来の比で短くするには半導体の技術ばかりで
なく実装技術の進歩がないと実現できない。現在
のところ半導体技術の進歩の方が激しいので、従
来の方式と比べCSARのタイミングは前に出やす
くなつている。これは先行制御ユニツトからみる
と、従来よりもICSA及びICSAの有効ビツトの送
出タイミングが早くなることを意味している。さ
らにICSAよりもICSAの有効ビツトの方が回路段
数も多いので、CSARのタイミングに合わせるの
は殆んど不可能となつてきた。しかし、CSARの
タイミングに合わせるのは無理でもCSDRのタイ
ミングに合わせるのは可能である。例えばCSAR
に比べ、CSDRは3/4サイクル又は1サイクル遅
い。
本発明はこの点に着目し、CSDRのリセツト機
能を設けて、無効なICSAがセツトされたとき
は、それに対するCSDRの内容をリセツトするこ
とによつて誤動作を避けることを狙つたものであ
る。この場合、CSDRがリセツトされた状態を
EOPとし、他のフイールドはNOOP(NO
OPERATION)と定義する。これにより、ICSA
の有効ビツトのタイミングの問題は解決される。
又、この機能は分岐命令の予測失敗時に無効な
ICSAの実行を止め、有効なICSAを再セツトする
ことにも使え、これにより先回の制御でオーバラ
ンしたICSAの後処理が解決できる。さらに命令
の高速化のため、各命令(マクロ命令)で条件に
より複数のICSAを発生させたいとき、この条件
を検出してICSAを生成するには回路段数を多数
要するので、CSARにまにあわない。そこで1度
用意したICSAを無効化し、2度目に正しいICSA
をセツトする手段にも利用できる。
能を設けて、無効なICSAがセツトされたとき
は、それに対するCSDRの内容をリセツトするこ
とによつて誤動作を避けることを狙つたものであ
る。この場合、CSDRがリセツトされた状態を
EOPとし、他のフイールドはNOOP(NO
OPERATION)と定義する。これにより、ICSA
の有効ビツトのタイミングの問題は解決される。
又、この機能は分岐命令の予測失敗時に無効な
ICSAの実行を止め、有効なICSAを再セツトする
ことにも使え、これにより先回の制御でオーバラ
ンしたICSAの後処理が解決できる。さらに命令
の高速化のため、各命令(マクロ命令)で条件に
より複数のICSAを発生させたいとき、この条件
を検出してICSAを生成するには回路段数を多数
要するので、CSARにまにあわない。そこで1度
用意したICSAを無効化し、2度目に正しいICSA
をセツトする手段にも利用できる。
以下、本発明を図示の実施例を参照しながら詳
細に説明する。
細に説明する。
第1図は本発明が対象とする情報処理装置の全
体構成図である。図において、1は先行制御装
置、2は演算装置、3は記憶装置、4は入出力制
御装置、5は入出力デバイスである。図では省略
したが、演算装置2はマイクロプログラムを格納
しているコントロールストレツジ(CS)を有し
ている。命令は記憶装置3より信号線10を介し
て先行制御装置1へ読み出される。先行制御装置
1では、該命令をデコードし、記憶装置3に対し
てオペランドアドレスを送つてオペランドの読み
出しを起動し、さらに演算に必要なマイクロプロ
グラムを動かすため演算装置2へICSAを送る。
14,15,16はそれぞれICSAを送出するた
めの信号線で、3ビツト、8ビツト、1ビツトで
構成されるとする。先行制御装置1で起動したオ
ペランドは信号線10を通して該先行制御装置に
運ばれ、必要なキユーイングが行われた後、演算
装置2の所定のワークレジスタにセツトされる。
一方、演算装置2では、先行制御装置1から送ら
れたICSAをもとにマイクロプログラム制御方式
により所定の処理を実行し、それが終了すると信
号線11によりEOPを先行制御装置1へ送る。
この信号線11が“1”の時、次のCSARは1
4,15のICSAが選ばれる。12はICSAが有効
かどうかを示す信号線で、これが“1”のとき
ICSAが有効であることを示し、“0”は無効であ
り、CSDRをリセツトすることを指示する。13
はICSAの再送出を指示する信号線、17は命令
の1バイト目(IXGOP)を先行制御装置1から
演算装置2へ送出する信号線である。信号線17
の内容は演算装置2で保存され、先行制御装置1
での分岐命令の予測が失敗したかどうかの判定に
用いる(第8図参照)。マイクロ命令はCSARに
より常に2ワード分読み出し、CSDRにセツトす
るときにどちらかを選択する方式をとつている。
信号線16はこのときの選択に使われるものであ
る。750はキユウポインタのリセツトを指示す
る信号線である。
体構成図である。図において、1は先行制御装
置、2は演算装置、3は記憶装置、4は入出力制
御装置、5は入出力デバイスである。図では省略
したが、演算装置2はマイクロプログラムを格納
しているコントロールストレツジ(CS)を有し
ている。命令は記憶装置3より信号線10を介し
て先行制御装置1へ読み出される。先行制御装置
1では、該命令をデコードし、記憶装置3に対し
てオペランドアドレスを送つてオペランドの読み
出しを起動し、さらに演算に必要なマイクロプロ
グラムを動かすため演算装置2へICSAを送る。
14,15,16はそれぞれICSAを送出するた
めの信号線で、3ビツト、8ビツト、1ビツトで
構成されるとする。先行制御装置1で起動したオ
ペランドは信号線10を通して該先行制御装置に
運ばれ、必要なキユーイングが行われた後、演算
装置2の所定のワークレジスタにセツトされる。
一方、演算装置2では、先行制御装置1から送ら
れたICSAをもとにマイクロプログラム制御方式
により所定の処理を実行し、それが終了すると信
号線11によりEOPを先行制御装置1へ送る。
この信号線11が“1”の時、次のCSARは1
4,15のICSAが選ばれる。12はICSAが有効
かどうかを示す信号線で、これが“1”のとき
ICSAが有効であることを示し、“0”は無効であ
り、CSDRをリセツトすることを指示する。13
はICSAの再送出を指示する信号線、17は命令
の1バイト目(IXGOP)を先行制御装置1から
演算装置2へ送出する信号線である。信号線17
の内容は演算装置2で保存され、先行制御装置1
での分岐命令の予測が失敗したかどうかの判定に
用いる(第8図参照)。マイクロ命令はCSARに
より常に2ワード分読み出し、CSDRにセツトす
るときにどちらかを選択する方式をとつている。
信号線16はこのときの選択に使われるものであ
る。750はキユウポインタのリセツトを指示す
る信号線である。
第2図は第1図の先行制御装置1をさらに詳細
に示した図である。記憶装置3より読み出された
命令は命令バツフア30に貯えられる。その後、
適当な時期に命令バツフア30より命令が4バイ
ト切り出され、命令レジスタ31にセツトされ
る。オペランドアドレスはアドレス制御回路3
6、汎用レジスタ群(GPR)37、アドレス加
算器38等を使つて計算されレジスタ39にセツ
トされる。このアドレス計算は周知であるので、
これ以上の説明は省略する。33は本発明の特徴
となるICSA生成回路で、命令レジスタ31の先
頭1バイト50(オペレーシヨンコード)とビツ
ト12−15と再送出指示80、キユーインポイ
ンタ53、ICSAアウトポインタ70を入力とし
て、信号線14,15,16へICSAを及び信号
線17へIXGOPを送出するものである。32も
本発明の特徴となるICSA再セツト制御回路であ
る。即ち、各命令(マクロ命令)でユニークな
ICSAを与えるのが一般的であるが、性能の高速
化のため、各命令(マクロ命令)で条件により複
数のICSAを発生させることが必要である。この
場合、条件を求めてICSAに反映するには多数の
回路段数を要し、CSARのタイミングに間に合わ
ぬことが多い。そこでICSA再セツトの回路を用
意し、2度目に正しいICSAを送出させるように
したのが本発明の特徴である。ICSA再セツト制
御回路32はオペレーシヨンコード50と命令レ
ジスタ31のビツト12−15とオペランドアド
レスの下3ビツト52とキユーイングのインポイ
ンタ53、アウトポインタ54を入力として再セ
ツトの条件を求め、信号線13にICSAの再送出
指示を発生させる。信号線13が“1”のとき再
セツト必要で、“0”のとき不要である。
に示した図である。記憶装置3より読み出された
命令は命令バツフア30に貯えられる。その後、
適当な時期に命令バツフア30より命令が4バイ
ト切り出され、命令レジスタ31にセツトされ
る。オペランドアドレスはアドレス制御回路3
6、汎用レジスタ群(GPR)37、アドレス加
算器38等を使つて計算されレジスタ39にセツ
トされる。このアドレス計算は周知であるので、
これ以上の説明は省略する。33は本発明の特徴
となるICSA生成回路で、命令レジスタ31の先
頭1バイト50(オペレーシヨンコード)とビツ
ト12−15と再送出指示80、キユーインポイ
ンタ53、ICSAアウトポインタ70を入力とし
て、信号線14,15,16へICSAを及び信号
線17へIXGOPを送出するものである。32も
本発明の特徴となるICSA再セツト制御回路であ
る。即ち、各命令(マクロ命令)でユニークな
ICSAを与えるのが一般的であるが、性能の高速
化のため、各命令(マクロ命令)で条件により複
数のICSAを発生させることが必要である。この
場合、条件を求めてICSAに反映するには多数の
回路段数を要し、CSARのタイミングに間に合わ
ぬことが多い。そこでICSA再セツトの回路を用
意し、2度目に正しいICSAを送出させるように
したのが本発明の特徴である。ICSA再セツト制
御回路32はオペレーシヨンコード50と命令レ
ジスタ31のビツト12−15とオペランドアド
レスの下3ビツト52とキユーイングのインポイ
ンタ53、アウトポインタ54を入力として再セ
ツトの条件を求め、信号線13にICSAの再送出
指示を発生させる。信号線13が“1”のとき再
セツト必要で、“0”のとき不要である。
34は周知のキユーイング制御回路、35も周
知のデコード制御回路である。キユーイング制御
回路34ではデコード制御回路35の出力55と
演算装置2から信号線11を通して送られる
EOPを入力として、キユーインポインタ53、
アウトポインタ54、ICSAの有効ビツト12を
発生させる。
知のデコード制御回路である。キユーイング制御
回路34ではデコード制御回路35の出力55と
演算装置2から信号線11を通して送られる
EOPを入力として、キユーインポインタ53、
アウトポインタ54、ICSAの有効ビツト12を
発生させる。
第3図は第2図のICSA再セツト制御回路32
をさらに詳細に示した図である。300は|M|
−1+CT2>7を検出する回路である。こゝに|
M|は信号51(命令レジスタ31のビツト12
−15)の“1”の数を示し、CT2は信号52
(オペランドアドレスの下3ビツト)を示す。こ
の回路はSTCM命令(Store Character under
Mask)に用いられる。即ち、STCM命令は第1
アドレスで指定された汎用レジスタのバイトが、
マスクビツト(命令レジスタ13のビツト12−
15)により選択されて、第2アドレスで指定さ
れた位置から始まる記憶装置の連続した場所に格
納するものであるが、回路300は、この命令が
8バイト境界を越えたストアをするかどうかを検
出するものである。301は信号52が“000”
であるかを検出する回路、302は信号52が
“111”であるかを検出する回路、303は信号5
2の下2ビツトが“00”であるかを検出する回路
である。305は命令例外(不当オペレーシヨン
コード)を検出する回路である。セレクタ310
ではオペレーシヨンコード50をデコードするこ
とにより信号300A,301A,302A,3
03A,305Aを選択する。選択された信号3
06Aはキユーインポインタ53に従つてフリツ
プフロツプ400,401,402の何れかにセ
ツトされる。これらの出力はキユーアウトポイン
タ54によりセレクトされ、信号線13にICSA
の再送出指示を出力する。一方、同一の信号が回
路403,404にセツトされ位相合わせされ
る。回路403の出力は信号13Aとしてキユー
イング制御回路34へ出力し、回路404の出力
は信号80としてICSA生成回路33へ出力す
る。
をさらに詳細に示した図である。300は|M|
−1+CT2>7を検出する回路である。こゝに|
M|は信号51(命令レジスタ31のビツト12
−15)の“1”の数を示し、CT2は信号52
(オペランドアドレスの下3ビツト)を示す。こ
の回路はSTCM命令(Store Character under
Mask)に用いられる。即ち、STCM命令は第1
アドレスで指定された汎用レジスタのバイトが、
マスクビツト(命令レジスタ13のビツト12−
15)により選択されて、第2アドレスで指定さ
れた位置から始まる記憶装置の連続した場所に格
納するものであるが、回路300は、この命令が
8バイト境界を越えたストアをするかどうかを検
出するものである。301は信号52が“000”
であるかを検出する回路、302は信号52が
“111”であるかを検出する回路、303は信号5
2の下2ビツトが“00”であるかを検出する回路
である。305は命令例外(不当オペレーシヨン
コード)を検出する回路である。セレクタ310
ではオペレーシヨンコード50をデコードするこ
とにより信号300A,301A,302A,3
03A,305Aを選択する。選択された信号3
06Aはキユーインポインタ53に従つてフリツ
プフロツプ400,401,402の何れかにセ
ツトされる。これらの出力はキユーアウトポイン
タ54によりセレクトされ、信号線13にICSA
の再送出指示を出力する。一方、同一の信号が回
路403,404にセツトされ位相合わせされ
る。回路403の出力は信号13Aとしてキユー
イング制御回路34へ出力し、回路404の出力
は信号80としてICSA生成回路33へ出力す
る。
第4図は第3図のセレクタ310の選択動作を
表にまとめたものである。即ち、50のオペレー
シヨンコードにより信号300A,301A,3
02A,303A,305Aのいずれかが選択さ
れる。こゝで、STH(Store Halfword)、ST
(Store)、STD(Store:長精度)、STE(Store:
短精度)、CEI(Convert Floating to lnteger)、
CDI(CEIと同じ)、STM(Store Multiple)、
STCMは命令であるが、その定義は省略する。第
5図は第3図の命令例外検出回路305の動作を
表にまとめたもので、オペレーシヨンコードとし
て定義されていないコードの場合、出力305A
が“1”となる。
表にまとめたものである。即ち、50のオペレー
シヨンコードにより信号300A,301A,3
02A,303A,305Aのいずれかが選択さ
れる。こゝで、STH(Store Halfword)、ST
(Store)、STD(Store:長精度)、STE(Store:
短精度)、CEI(Convert Floating to lnteger)、
CDI(CEIと同じ)、STM(Store Multiple)、
STCMは命令であるが、その定義は省略する。第
5図は第3図の命令例外検出回路305の動作を
表にまとめたもので、オペレーシヨンコードとし
て定義されていないコードの場合、出力305A
が“1”となる。
こゝで、第3図のセレクタ310の出力306
Aが“1”となる場合をまとめると、 (i) 命令例外を検出したとき(305A) (ii) STCM命令でオペランドが8バイト境界を越
えたとき(300A) (iii) STD命令でオペランドアドレスが8バイト
境界にないとき(301A) (iv) STH命令でオペランドアドレスの下3ビツ
トが“111”のとき(302A) (v) ST、STE、CEI、CDI、STM命令でオペラ
ンドアドレスが4バイト境界にないとき(30
3A) のいずれかが成り立つときである。
Aが“1”となる場合をまとめると、 (i) 命令例外を検出したとき(305A) (ii) STCM命令でオペランドが8バイト境界を越
えたとき(300A) (iii) STD命令でオペランドアドレスが8バイト
境界にないとき(301A) (iv) STH命令でオペランドアドレスの下3ビツ
トが“111”のとき(302A) (v) ST、STE、CEI、CDI、STM命令でオペラ
ンドアドレスが4バイト境界にないとき(30
3A) のいずれかが成り立つときである。
第6図は第2図のICSA生成回路33をさらに
詳細に示した図である。ICSAは12ビツトから成
り立つている。もちろんこれを拡張することは容
易である。上位の3ビツト14はセレクタ720
で信号80(第3図参照)の値により“010”ま
たは“001”のどちらかが選ばれる。こゝに信号
80が“1”のとき(ICSA再セツトを示す)は
“010”が選ばれる。一方、信号50のオペレーシ
ヨンコード8ビツトはキユーインポインタ53に
よりフリツプフロツプ群610,611,612
のいずれかにセツトされた後、ICSAアウトポイ
ンタ70に従つてセレクトされ、信号線15に
ICSAの下位8ビツトとして出力される。残りの
1ビツトはセレクタ820を介した信号が840
でラツチされ、信号16として出力される。この
信号14,15に比べ3/4〜1サイクル遅くて間
に合う。セレクタ820は信号802が“1”の
とき信号815、“0”のとき“0”を選ぶ。デ
コーダ801のデコード結果が“1”で信号80
が“0”(ICSA再セツトケースでない)のとき、
信号802が“1”となる。こゝにデコーダ80
1はSTCM命令をデコードすると、その出力を
“1”とするものである。841は信号51が
“000”であることを検出する回路である。即ち、
STCM命令でICSA再セツトケースでないときは
信号815を選び、そうでないときは“0”を選
ぶ。
詳細に示した図である。ICSAは12ビツトから成
り立つている。もちろんこれを拡張することは容
易である。上位の3ビツト14はセレクタ720
で信号80(第3図参照)の値により“010”ま
たは“001”のどちらかが選ばれる。こゝに信号
80が“1”のとき(ICSA再セツトを示す)は
“010”が選ばれる。一方、信号50のオペレーシ
ヨンコード8ビツトはキユーインポインタ53に
よりフリツプフロツプ群610,611,612
のいずれかにセツトされた後、ICSAアウトポイ
ンタ70に従つてセレクトされ、信号線15に
ICSAの下位8ビツトとして出力される。残りの
1ビツトはセレクタ820を介した信号が840
でラツチされ、信号16として出力される。この
信号14,15に比べ3/4〜1サイクル遅くて間
に合う。セレクタ820は信号802が“1”の
とき信号815、“0”のとき“0”を選ぶ。デ
コーダ801のデコード結果が“1”で信号80
が“0”(ICSA再セツトケースでない)のとき、
信号802が“1”となる。こゝにデコーダ80
1はSTCM命令をデコードすると、その出力を
“1”とするものである。841は信号51が
“000”であることを検出する回路である。即ち、
STCM命令でICSA再セツトケースでないときは
信号815を選び、そうでないときは“0”を選
ぶ。
いまSTCM命令の場合に注目するに、第3図よ
り信号300Aが“1”のときはICSAを再セツ
トし、“0”のときは第6図の信号815に従う
ということで、ICSAに3つのパタンが存在する
ことがわかる。同一命令(マクロ命令)でICSA
が2つ以下の場合は第6図の信号線16の出力を
かえることにより実現できる。信号線16の出力
は前述した通り信号線14,15と比べて遅くて
よいので回路段数に余裕ができ、相当の論理がく
める。しかし、STCM命令のようにICSAが3つ
以上の場合には信号線16の細工のみでは不可能
で、信号線14,15の値をかえる必要がある。
これらは回路段数に余裕がないので、本発明のよ
うにICSA再セツトの技術が必要となるのであ
る。
り信号300Aが“1”のときはICSAを再セツ
トし、“0”のときは第6図の信号815に従う
ということで、ICSAに3つのパタンが存在する
ことがわかる。同一命令(マクロ命令)でICSA
が2つ以下の場合は第6図の信号線16の出力を
かえることにより実現できる。信号線16の出力
は前述した通り信号線14,15と比べて遅くて
よいので回路段数に余裕ができ、相当の論理がく
める。しかし、STCM命令のようにICSAが3つ
以上の場合には信号線16の細工のみでは不可能
で、信号線14,15の値をかえる必要がある。
これらは回路段数に余裕がないので、本発明のよ
うにICSA再セツトの技術が必要となるのであ
る。
第7図は第2図のキユーイング制御回路34を
さらに詳細に示した図である。信号55(第2図
のデコード制御回路35の出力)はデコードが成
功したことを示す信号で、フリツプフロツプ70
8の出力53(キユーインポインタ)によりフリ
ツプフロツプ705,706,707の何れかに
セツトされる。これらの出力はフリツプフロツプ
700の出力54でセレクタ732を選び、信号
12を出力する。これが前述したICSAの有効ビ
ツトとなる。キユーインポインタ53はフリツプ
フロツプ708,709、カウンタ733により
作成される。フリツプフロツプ708の入力は初
期値“0”かフリツプフロツプ709の出力であ
る。初期値“0”が選ばれるのは、演算装置2よ
りの信号750が“1”のときである。これは先
行制御装置1をリセツトしたとき“1”となる。
フリツプフロツプ708は信号55が“1”のと
き+1の値をセツトする。キユーアウトポインタ
54はフリツプフロツプ700,701とカウン
タ710で作成される。フリツプフロツプ700
の入力はフリツプフロツプ708と同様に初期値
“0”かフリツプフロツプ701の出力である。
初期値“0”が選ばれるのは信号750が“1”
のときであり、これもフリツプフロツプ708の
入力と同様である。フリツプフロツプ700はフ
リツプフロツプ704が“1”のとき+1の値を
セツトする。フリツプフロツプ704は信号線1
1のEOPと信号線12のICSAの有効ビツトの両
方の条件が成り立つときフリツプフロツプ704
にセツトされる。即ち、EOPでICSAが有効のと
きフリツプフロツプ700が+1される。ICSA
アウトポインタ70はフリツプフロツプ701と
700のデイレイ702のいずれかを保持するフ
リツプフロツプ703の出力である。セレクタ7
31は信号13A(第3図参照)が“1”のとき
フリツプフロツプ702を選ぶように働く。即
ち、ICSA再セツトの場合は、フリツプフロツプ
702の方から更新される前の値を選択する。な
お、上記キユーイングポインタ、キユーアウトポ
インタの各フリツプフロツプなどは実際には複数
ビツトから成り、従つて、これらフリツプフロツ
プの入出力線も実際には複数ビツトで構成され
る。
さらに詳細に示した図である。信号55(第2図
のデコード制御回路35の出力)はデコードが成
功したことを示す信号で、フリツプフロツプ70
8の出力53(キユーインポインタ)によりフリ
ツプフロツプ705,706,707の何れかに
セツトされる。これらの出力はフリツプフロツプ
700の出力54でセレクタ732を選び、信号
12を出力する。これが前述したICSAの有効ビ
ツトとなる。キユーインポインタ53はフリツプ
フロツプ708,709、カウンタ733により
作成される。フリツプフロツプ708の入力は初
期値“0”かフリツプフロツプ709の出力であ
る。初期値“0”が選ばれるのは、演算装置2よ
りの信号750が“1”のときである。これは先
行制御装置1をリセツトしたとき“1”となる。
フリツプフロツプ708は信号55が“1”のと
き+1の値をセツトする。キユーアウトポインタ
54はフリツプフロツプ700,701とカウン
タ710で作成される。フリツプフロツプ700
の入力はフリツプフロツプ708と同様に初期値
“0”かフリツプフロツプ701の出力である。
初期値“0”が選ばれるのは信号750が“1”
のときであり、これもフリツプフロツプ708の
入力と同様である。フリツプフロツプ700はフ
リツプフロツプ704が“1”のとき+1の値を
セツトする。フリツプフロツプ704は信号線1
1のEOPと信号線12のICSAの有効ビツトの両
方の条件が成り立つときフリツプフロツプ704
にセツトされる。即ち、EOPでICSAが有効のと
きフリツプフロツプ700が+1される。ICSA
アウトポインタ70はフリツプフロツプ701と
700のデイレイ702のいずれかを保持するフ
リツプフロツプ703の出力である。セレクタ7
31は信号13A(第3図参照)が“1”のとき
フリツプフロツプ702を選ぶように働く。即
ち、ICSA再セツトの場合は、フリツプフロツプ
702の方から更新される前の値を選択する。な
お、上記キユーイングポインタ、キユーアウトポ
インタの各フリツプフロツプなどは実際には複数
ビツトから成り、従つて、これらフリツプフロツ
プの入出力線も実際には複数ビツトで構成され
る。
第8図は第1図の演算装置2を詳細に示した図
である。CS(コントロールストレツジ)は2バ
ンク901と902により構成され、アドレスは
CSAR600で与えられる。CS901,902
から読み出されたデータ(マイクロ命令)は信号
920Aによりセレクトされ、CSDR904にセ
ツトされる。CSDR904のマイクロ命令は次の
アドレスを指定するBAフイールド930、テス
ト条件をきめるTフイールド931、処理の終了
を示すEOPフイールド11、その他の雑制御
MISCフイールド932、その他に分割される。
本実施例ではBAフイールド930は11ビツト、
Tフイールド931は7ビツト、EOPフイール
ド11は1ビツト、雑制御フイールド932は7
ビツト、その他は113ビツトであるとする。90
3は本発明の特徴となるCS制御回路で、先行制
御装置1からのCSAR有効ビツト12、ICSA再
セツト信号13、及び演算装置内のEOPフイー
ルド11、分岐命令制御回路909からの信号1
01を入力として、CSDR904のリセツト信号
102、演算ステージを止める信号103、ラツ
チ回路906のセレクタを制御する信号104を
生成する。908はMISCフイールド932のデ
コーダで、909はCC(コンデイシヨンコー
ド)100とデコーダ908の出力908Aとラ
ツチ回路906の出力906Bを入力として先行
制御装置1の分岐命令予測が失敗したかどうかを
判定し、失敗した場合は出力101を“1”とす
る分岐命令制御回路である。ラツチ回路906は
先行制御装置1からの命令部1バイト目又は信号
920Aを切りかえて保持する回路であり、加算
器907で更新可能である。このラツチ回路90
6の前半4ビツトが信号906Bとして分岐命令
制御回路909への入力となる。ラツチ回路90
6の入力は信号104が“1”のとき信号17
(IXGOP)を選び、そうでないとき信号920A
を選ぶように働く。CSAR600の入力はEOP1
1が“1”のときICSA14を選び、そうでない
ときBAフイールド930を選ぶ。同様に、セレ
クタ920もEOP11が“1”のときICSA16
を選び、そうでないときテストマトリクス905
の出力905Aを選ぶ。テストマトリクス905
はマイクロプログラム制御方式においては周知で
あるので、これ以上の説明を省略する。信号10
2によるCSDR904のリセツトはフリツプフロ
ツプのリセツト線を用いても入力データをオール
“0”にすることでもどちらでも行える。
である。CS(コントロールストレツジ)は2バ
ンク901と902により構成され、アドレスは
CSAR600で与えられる。CS901,902
から読み出されたデータ(マイクロ命令)は信号
920Aによりセレクトされ、CSDR904にセ
ツトされる。CSDR904のマイクロ命令は次の
アドレスを指定するBAフイールド930、テス
ト条件をきめるTフイールド931、処理の終了
を示すEOPフイールド11、その他の雑制御
MISCフイールド932、その他に分割される。
本実施例ではBAフイールド930は11ビツト、
Tフイールド931は7ビツト、EOPフイール
ド11は1ビツト、雑制御フイールド932は7
ビツト、その他は113ビツトであるとする。90
3は本発明の特徴となるCS制御回路で、先行制
御装置1からのCSAR有効ビツト12、ICSA再
セツト信号13、及び演算装置内のEOPフイー
ルド11、分岐命令制御回路909からの信号1
01を入力として、CSDR904のリセツト信号
102、演算ステージを止める信号103、ラツ
チ回路906のセレクタを制御する信号104を
生成する。908はMISCフイールド932のデ
コーダで、909はCC(コンデイシヨンコー
ド)100とデコーダ908の出力908Aとラ
ツチ回路906の出力906Bを入力として先行
制御装置1の分岐命令予測が失敗したかどうかを
判定し、失敗した場合は出力101を“1”とす
る分岐命令制御回路である。ラツチ回路906は
先行制御装置1からの命令部1バイト目又は信号
920Aを切りかえて保持する回路であり、加算
器907で更新可能である。このラツチ回路90
6の前半4ビツトが信号906Bとして分岐命令
制御回路909への入力となる。ラツチ回路90
6の入力は信号104が“1”のとき信号17
(IXGOP)を選び、そうでないとき信号920A
を選ぶように働く。CSAR600の入力はEOP1
1が“1”のときICSA14を選び、そうでない
ときBAフイールド930を選ぶ。同様に、セレ
クタ920もEOP11が“1”のときICSA16
を選び、そうでないときテストマトリクス905
の出力905Aを選ぶ。テストマトリクス905
はマイクロプログラム制御方式においては周知で
あるので、これ以上の説明を省略する。信号10
2によるCSDR904のリセツトはフリツプフロ
ツプのリセツト線を用いても入力データをオール
“0”にすることでもどちらでも行える。
第9図は第8図の分岐命令制御回路909の動
作を説明する図で、イは命令形式、ロは制御回路
909の論理を表に示したものである。図イの命
令形式はBC(Branch on Condition)命令に適用
可能であり、そのビツト8−11のマスクフイー
ルドM1が信号906Bとして分岐命令制御回路
909への入力となる。図ロから明らかなよう
に、信号101が“1”となるのは信号908A
が“1”で分岐が成功と決定されたときである。
BC命令であることはMISCフイールド932の指
定により信号908Aが“1”となることにより
わかる。
作を説明する図で、イは命令形式、ロは制御回路
909の論理を表に示したものである。図イの命
令形式はBC(Branch on Condition)命令に適用
可能であり、そのビツト8−11のマスクフイー
ルドM1が信号906Bとして分岐命令制御回路
909への入力となる。図ロから明らかなよう
に、信号101が“1”となるのは信号908A
が“1”で分岐が成功と決定されたときである。
BC命令であることはMISCフイールド932の指
定により信号908Aが“1”となることにより
わかる。
第10図は第8図のCS制御回路903をさら
に詳細に示した図である。図により、信号104
が“1”となるのはEOP11が“1”でCSARが
有効ビツト12が“1”となるときである。
CSDRリセツト信号102が“1”となるのは、
先行制御装置1からのICSA再セツト信号13が
“1”となるか、分岐予測失敗信号101が
“1”となるか、EOP11が“1”のときICSA
有効ビツト12が“0”であるかの3条件の何れ
かが成り立つときである。またステージストツプ
信号103が“1”となるのは、分岐予測失敗信
号101が“0”のとき及びICSA再セツト信号
13が“1”のときの2サイクルの間である。
に詳細に示した図である。図により、信号104
が“1”となるのはEOP11が“1”でCSARが
有効ビツト12が“1”となるときである。
CSDRリセツト信号102が“1”となるのは、
先行制御装置1からのICSA再セツト信号13が
“1”となるか、分岐予測失敗信号101が
“1”となるか、EOP11が“1”のときICSA
有効ビツト12が“0”であるかの3条件の何れ
かが成り立つときである。またステージストツプ
信号103が“1”となるのは、分岐予測失敗信
号101が“0”のとき及びICSA再セツト信号
13が“1”のときの2サイクルの間である。
第11図はステージ信号CSAR600、CSDR
904の基本タイミングを表わしたもので、例え
ば第3ステージに対応するCSDR904は第2サ
イクル、CSAR600は第1サイクルにセツトさ
れることを示している。
904の基本タイミングを表わしたもので、例え
ば第3ステージに対応するCSDR904は第2サ
イクル、CSAR600は第1サイクルにセツトさ
れることを示している。
第12図は分岐予測失敗信号101が“1”の
ときのステージ信号600,904のタイミング
を示したものである。信号101が第1サイクル
で“1”となると、ステージストツプ信号103
を“1”として第2サイクルのステージを止め
る。同時にCSDRリセツト信号102を“1”と
して第2サイクルのCSDRをリセツトする。これ
により第2サイクルでCSAR600は正しい
ICSAをとりこみ、第3サイクルでCSDR904
がセツトされ、第4サイクルでステージ4が実行
される。第3サイクルの第3ステージは止まらな
いが、第2サイクルでCSDRがリセツトされてい
るので“NO OPERATION”を実行する。第1
サイクルでセツトされたCSDRは第2ステージを
止めることによりNO OPERATION化してい
る。以上の制御により2サイクル分のICSAを無
効化して、先行制御装置1での分岐予測失敗によ
るICSAのオーバランを防いでいる。
ときのステージ信号600,904のタイミング
を示したものである。信号101が第1サイクル
で“1”となると、ステージストツプ信号103
を“1”として第2サイクルのステージを止め
る。同時にCSDRリセツト信号102を“1”と
して第2サイクルのCSDRをリセツトする。これ
により第2サイクルでCSAR600は正しい
ICSAをとりこみ、第3サイクルでCSDR904
がセツトされ、第4サイクルでステージ4が実行
される。第3サイクルの第3ステージは止まらな
いが、第2サイクルでCSDRがリセツトされてい
るので“NO OPERATION”を実行する。第1
サイクルでセツトされたCSDRは第2ステージを
止めることによりNO OPERATION化してい
る。以上の制御により2サイクル分のICSAを無
効化して、先行制御装置1での分岐予測失敗によ
るICSAのオーバランを防いでいる。
第13図はICSA再セツト信号13が“1”の
ときのステージ信号600,904のタイミング
を示したものである。信号13が第2サイクルに
“1”になると2サイクル間ステージストツプ信
号103を“1”にして第3ステージ、第4ステ
ージを止めて、この間、CSAR600を入れか
え、CSDR904をセツトし直す。第3サイクル
でCSDRリセツト信号102が“1”となり、
CSDR904をリセツトする。これによりEOP1
1が“1”となるので、同一サイクルでCSAR6
00にICSAを再セツトする。これにより2サイ
クル前の第1サイクルにセツトしたICSAが再セ
ツトされたことになる。第3サイクルにCSAR6
00がセツトされたことにより、第4サイクルに
CSDR904がセツトされ、第5サイクルのステ
ージが実行される。以上のように第3、第4サイ
クルのステージを止める間にCSAR600、
CSDR904の再セツトを完了してしまう。
ときのステージ信号600,904のタイミング
を示したものである。信号13が第2サイクルに
“1”になると2サイクル間ステージストツプ信
号103を“1”にして第3ステージ、第4ステ
ージを止めて、この間、CSAR600を入れか
え、CSDR904をセツトし直す。第3サイクル
でCSDRリセツト信号102が“1”となり、
CSDR904をリセツトする。これによりEOP1
1が“1”となるので、同一サイクルでCSAR6
00にICSAを再セツトする。これにより2サイ
クル前の第1サイクルにセツトしたICSAが再セ
ツトされたことになる。第3サイクルにCSAR6
00がセツトされたことにより、第4サイクルに
CSDR904がセツトされ、第5サイクルのステ
ージが実行される。以上のように第3、第4サイ
クルのステージを止める間にCSAR600、
CSDR904の再セツトを完了してしまう。
第1図は本発明にかゝる情報処理装置の一実施
例の全体構成図、第2図は第1図の先行制御装置
1の詳細図、第3図は第2図のICSA再セツト制
御回路32の詳細図、第4図は第3図のセレクタ
310の動作を示した図、第5図は第3図の命令
例外検出回路305の動作を示した図、第6図は
第2図のICSA成生回路33の詳細図、第7図は
第2図のキユーイング制御回路34の詳細図、第
8図は第1図の演算装置2の詳細図、第9図は第
8図の分岐命令制御回路909の論理説明図、第
10図は第8図のCS制御回路903の詳細図、
第11図乃至第13図は本発明による場合のステ
ージの遷移を説明するためのタイミング図であ
る。 1……先行制御装置、2……演算装置、3……
記憶装置、4……入出力制御装置、5……入出力
装置、30……命令バツフア、31……命令レジ
スタ、32……ICSA再セツト制御回路、33…
…ICSA生成回路、600……マイクロ命令アド
レスレジスタ(CSAR)、901,902……コ
ントロールストレツジ(CS)、903……CS制
御回路、904……マイクロ命令データレジスタ
(CSDR)、909……分岐命令制御回路。
例の全体構成図、第2図は第1図の先行制御装置
1の詳細図、第3図は第2図のICSA再セツト制
御回路32の詳細図、第4図は第3図のセレクタ
310の動作を示した図、第5図は第3図の命令
例外検出回路305の動作を示した図、第6図は
第2図のICSA成生回路33の詳細図、第7図は
第2図のキユーイング制御回路34の詳細図、第
8図は第1図の演算装置2の詳細図、第9図は第
8図の分岐命令制御回路909の論理説明図、第
10図は第8図のCS制御回路903の詳細図、
第11図乃至第13図は本発明による場合のステ
ージの遷移を説明するためのタイミング図であ
る。 1……先行制御装置、2……演算装置、3……
記憶装置、4……入出力制御装置、5……入出力
装置、30……命令バツフア、31……命令レジ
スタ、32……ICSA再セツト制御回路、33…
…ICSA生成回路、600……マイクロ命令アド
レスレジスタ(CSAR)、901,902……コ
ントロールストレツジ(CS)、903……CS制
御回路、904……マイクロ命令データレジスタ
(CSDR)、909……分岐命令制御回路。
Claims (1)
- 【特許請求の範囲】 1 命令のデコード、オペランドアドレス計算、
オペランド読出し等を制御する先行制御装置と、
演算の処理をマイクロプログラム制御方式により
行う演算装置とを具備し、複数の命令をオーバラ
ツプさせて一度に処理するパイプライン形式の情
報処理装置において、マイクロプログラム格納用
コントロールストレツジから読出したマイクロ命
令を保持するレジスタをリセツトし、そのマイク
ロ命令を無効化する手段と、前記先行制御装置が
与えるマイクロ命令先頭アドレスとマイクロプロ
グラムが与えるマイクロ命令アドレスを選択して
次マイクロ命令アドレスとする際、一度指示した
前記マイクロ命令先頭アドレスを無効化して再セ
ツトを指示する手段とを設けたことを特徴とする
情報処理装置。 2 特許請求の範囲第1項記載の情報処理装置に
おいて、先行制御装置で分岐命令の先回り制御を
行う場合、該先回りの予測失敗を検出し、その検
出信号をうけて一度指示したマイクロ命令先頭ア
ドレスを無効化し、再セツトすることを特徴とす
る情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4212480A JPS56140445A (en) | 1980-04-01 | 1980-04-01 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4212480A JPS56140445A (en) | 1980-04-01 | 1980-04-01 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS56140445A JPS56140445A (en) | 1981-11-02 |
JPS6161412B2 true JPS6161412B2 (ja) | 1986-12-25 |
Family
ID=12627187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4212480A Granted JPS56140445A (en) | 1980-04-01 | 1980-04-01 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS56140445A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6072028A (ja) * | 1983-09-28 | 1985-04-24 | Hitachi Ltd | デ−タ処理装置 |
CA1285657C (en) * | 1986-01-29 | 1991-07-02 | Douglas W. Clark | Apparatus and method for execution of branch instructions |
JPS63247833A (ja) * | 1987-04-02 | 1988-10-14 | Hitachi Ltd | 条件分岐命令制御方法 |
-
1980
- 1980-04-01 JP JP4212480A patent/JPS56140445A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS56140445A (en) | 1981-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5297263A (en) | Microprocessor with pipeline system having exception processing features | |
US4710866A (en) | Method and apparatus for validating prefetched instruction | |
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
JPH0283735A (ja) | 命令先取り装置 | |
JPH0429093B2 (ja) | ||
JPS6239780B2 (ja) | ||
JPS6015746A (ja) | デ−タ処理装置 | |
EP0372751B1 (en) | Pipelined data-processing apparatus | |
EP0094535B1 (en) | Pipe-line data processing system | |
US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
US4757445A (en) | Method and apparatus for validating prefetched instruction | |
US3553655A (en) | Short forward conditional skip hardware | |
JPH0650465B2 (ja) | 分岐制御回路 | |
JPS61221936A (ja) | データ処理装置 | |
JPS6161412B2 (ja) | ||
US6631464B1 (en) | Instruction pipeline with a branch prefetch when the branch is certain | |
JPH07182158A (ja) | 中央演算処理装置 | |
EP0155275B1 (en) | Prefetch validation | |
US6081886A (en) | Holding mechanism for changing operation modes in a pipelined computer | |
JPH046983B2 (ja) | ||
JPH0248733A (ja) | 情報処理装置 | |
JP3621477B2 (ja) | マイクロプログラムのリトライ方法 | |
JP2782471B2 (ja) | データ転送のリトライ制御方式 | |
JPS60214043A (ja) | パイプライン制御回路 | |
JPS6354632A (ja) | 電子計算機の命令先読み制御方法 |