JPS6277648A - 命令読出し制御方法 - Google Patents

命令読出し制御方法

Info

Publication number
JPS6277648A
JPS6277648A JP60217168A JP21716885A JPS6277648A JP S6277648 A JPS6277648 A JP S6277648A JP 60217168 A JP60217168 A JP 60217168A JP 21716885 A JP21716885 A JP 21716885A JP S6277648 A JPS6277648 A JP S6277648A
Authority
JP
Japan
Prior art keywords
instruction
buffer
address
read
stage
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
JP60217168A
Other languages
English (en)
Other versions
JPH0514288B2 (ja
Inventor
Tsutomu Sumimoto
勉 住本
Hidenori Takeuchi
秀紀 竹内
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 JP60217168A priority Critical patent/JPS6277648A/ja
Publication of JPS6277648A publication Critical patent/JPS6277648A/ja
Publication of JPH0514288B2 publication Critical patent/JPH0514288B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、電子計算機における命令読出し制御方式に関
する。
〔発明の背景〕
電子計算機において処理の高速化を実現する方法の一つ
に命令の先読み方式があるが、従来は例えば[日経エレ
クトロニクスJ 1979年12月24日号の104〜
130頁に”LSI技術の助けを借りてパイプライン方
式を強化した最高速の商用汎用コンピュータ”と題して
記載されているように、命令バッファレジスタの一つが
空きになったときに命令読出しを行うという方式がとら
れていた。しかし、この方式では、命令バッファレジス
タの数が8バイトレジスタが2個程度では、命令先取り
効果が不十分で、先行制御部れが起き易い。逆に、命令
バッファレジスタを多く持つと、ハードウェア量が多く
なり、コスト的に問題となる。
〔発明の目的〕
本発明の目的は、少ないハードウェア量で性能の高い命
令先取り制御を行う方式を提供することである。
〔発明の概要〕
本発明は、メモリへの命令読出し要求を、命令バッファ
の空き状態とは無関係に発行し、読出した命令を命令バ
ッファレジスタに取込む時点で、命令バッファレジスタ
に空きがあれば命令取込みを行い、空きがなければ該デ
ータを捨てる制御を行うことにより、命令バッファレジ
スタを大量に持つことなく性能のよい命令先取りを行う
ものである。
〔発明の実施例〕
以下、本発明の一実施例について図面により説明する。
第1図は本発明の一実施例のブロック図を示す。
図で1はメモリ、2はメモリ1の写しを格納する高速ア
クセスタイムのバッファメモリ(BS)、3はBS2の
登録アドレスを保持するアドレスアレイ(AA) 、4
と5は共に8バイトの命令バッファレジスタ(IBRA
、IBRB) 、6と7はIBRA4とIBRB5(7
)有効性表示子(I BVA、IBVB)である。8は
命令切出し回路、16は命令切出しポインタ(IP)、
9は切出した命令を保持する4バイトの命令レジスタ(
IR)である。10は命令アドレスレジスタ(N I 
A)、11は命令読出しアドレスを計算するインフレメ
ンタ(INCA)、12はNlAl0を更新するインフ
レメンタ(INCB)を示す。14はオペランドアドレ
スレジスタ(ADH)である。17はオペランドアドレ
ス制御回路である。50は命令処理の制御を司さどる制
御回路(ICTL)を、51はAA3、BS2の制御を
行う制御回路(BCTL)を示す。
次に、動作を第2図により説明する。第2図(イ)は4
バイト長の命令がメモリ1に入っている状態を示す、こ
の写しがBS2にも入っており、該アドレスがAA3に
登録されている。
いま、命令アドレスがNlAl0に、初期値として10
0番地をセットして、命令実行スタートがかきった場合
について説明する。
初期状態は、IBVA6、IBVB7が共に“0”であ
る。即ち、IBRA4、IBRB5が共に空状態である
。スタート指示で、第2図(ハ)の命令読出しステージ
■が起動される。即ち、ICTL50にて、NlAl0
の内容(100番地が入っている)をINCAIIにて
第2図(ロ)の加算(本ケースはNIA+O)を行い、
このアドレス(100番地)をセレクタ15を経由して
、線22にてAA3に送る制御を行う、これと同時に、
I CTL 50からBCTL51に制御線60にて、
命令読出し指示(AI指示)が出される。
これを受けて、BCTL51では該アドレスにてAA3
の参照を行う、また、アドレス線22の8バイト単位で
の偶・奇を示すビット値をフリップフロップIFP13
にセットしておく、(本ケースでは、100番地ゆえ、
IFP13は# O#lになる。) 以上が、第2図(ハ)の第1サイクル■のAIステージ
の動作である1次サイクル■では、LIステージの動作
を行う。このステージでは、ICT L 5.0からB
CTL51に、LIステージの指示が出される。これを
受けたBCTL51では、AIステージでのAA3の参
照結果に基づいて、100番地がAA3に登録されてい
れば、BS2から該命令を8バイト読出して、IBRA
4及びIBRB5に送る。同時に、ICTL50に、線
61を通じてその旨の報告を行う、これにより、ICT
L51では、事前にセットしてあったIFP13の値(
本ケースでは“0”)に従い、IBRA4に8バイトの
データを取込み、同時にIBVA6を“1”にセットす
る。
もし、100番地がAA3に登録されていなければ、B
CTL51は該アドレスをメモリ1に送り、メモリ1か
らBSブロック転送を行う。そして、アドレスをAA3
に登録する。この間、BCTL51からの転送で、IC
TL50は動作を一時停止する。このブロック転送は公
知の技術であるので、これ以上の説明は省略する。
以上のようにして、AI−LIステージによりIBRA
4に8バイトの命令がセットされる。
一方、スタートと同時に、I CTL 50では、第2
図(ハ)に示すように、サイクル■からDスデータが起
動される。これは、命令解読ステージであり、IBRA
4、IBRB5から命令切出しポインタIP16に従っ
て、命令切出し回路8にて命令(命令(1))を切出し
てIRQにセットし、さらにこれをアドレス制御回路1
7に送り、この中でオペランドアドレスを算出し、結果
をADR14にセットする。このDステージは、サイク
ル■ではまだ命令読出しが成功していないからDステー
ジ失敗となる。サイクル■でも同様である。そして、命
令がIBRA4に取込まれた後のサイクル■にてDステ
ージは成功する。この時、IP16は初期状態“0”に
なっている(100番地スタートゆえ)ため、IBRA
4の先頭4バイトがIRQに切出されてセットされる。
この切出し後、IP16は、命令長分だけ更新されてK
L 4 y+がセットされる・ ICTL50では、サイクル■のDステージが成功した
ので、サイクル■ではAステージを起動する。即ち、オ
ペランドアドレスをADR14から、セレクタ15を経
由してAA3に送る。同時に、BCTL51にA動作を
指示する。BCTL51では、該アドレスでのAA3の
参照動作を行う。次のサイクル■では、L動作がICT
L50からBCTL51に指示され、BCTL51では
該アドレスがAA3にあれば、対応するデータをBS2
から読出し、オペランドレジスタ0BR70にセットし
、AA3になければブロック転送処理が行われる。次の
サイクル■では、ICTL50からマイクロプログラム
制御回路に指示が出されて、マイクロプログラムに従っ
た動作が行われる。
次命令(命令(2))のDステージはサイクル■でIC
TL50にて開始される。これは、命令(1)の命令コ
ードをみて、命令(1)のEステージが1マシンサイク
ルで完了することを認識して開始するものである。もし
、Eが2サイクル以上の命令においては、最終Eステー
ジの直前のステージにて、マイクロプログラムにより次
命令のDステージ起動がICTL50に出される。
以上のようにして、次々と命令が処理されていく。命令
(2)のDステージ成功時に、IBVA6は1′0”に
リセットされる。(IBRA4を使い切ったため) 一方、命令読出しは第2図(ハ)の■、■サイクルのA
I−LI以降は、以下のように行わ九る。
即ち、サイクル■の先頭では、まだDステージが成功し
ていないので、サイクル■にて再度AIステージを起動
する。但し、このときのI NCAl1の動作は第2図
(ロ)に示すように、IBVA6が“1”のため、NI
A+8 (即ち、108番地)が出力される。このアド
レスにてAA3が参照される。一方、IFP13は“1
”にセットされる。
サイクル■の終りでDステージ成功状態になると、サイ
クル■ではLp指示がICTL50からBCTL51に
出される。このLp指示を受けたBCTL51は、AA
3の参照結果で以下の動作を行う、即ち、該アト【Jス
(108番地)が、AA3上にあれば該当データ(命令
)をBS2を読出して命令バッファに送るが、もしAA
3上になければ何もしない。つまり、ブロック転送を発
生しない。
今、108番地がAAa上にあるとすると、BS2から
読出した8バイトの命令はIFP13が(J l 97
のため、IBRB5に取込まれ、同時に1BVB7が“
1”にセットされる。
NlAl0は、命令処理のLステージにて、lNCB1
2にて、命令長だけ加算される。即ち、100に4が加
えられ、サイクル■で104に更新される。分岐命令時
は、分岐先アドレスがADR14からのパスでNlAl
0にセットされる。
次にICTL50にて、Aステージのサイクル■の次サ
イクル■で次の命令読出しが起動される。
このときは、先行命令(1)のA−Eステージ中である
ため、ICTL50にて、次サイクル■でLp指示が出
される。アドレスは(2−2)により116である。
以下、オペランドのAステージの隙間をぬって、ICT
L50にて命令先取り動作AI−I pが起動される。
然るに、命令先取り動作■のAI−Lpをみてみると、
第2図(ロ)に従がい、■のAIのアドレスは、NIA
+16、即ち、104+16=120番地であり、IP
16は0”を指している。Lpステージ(第■サイクル
)でBS2から読出してきた8バイトの命令(アドレス
120番地)は、IP16が“0”のため、IBRA4
に取込もうとする。然るに、IBVA6が“1〃のま\
のため、IBRA4には取込めず、読出したデータ(命
令)は捨てられる。
このようにして、第2図(ハ)に示すように命令が処理
されてゆく。
分岐命令での分岐成功のように、命令アドレスがシーケ
ンシャルに更新されない場合は、IBVA6、IBVB
7は共に一担1′O”にリセットされた後、新しく読出
された命令がIBRA4、よりRB5にセットされる。
この読出しは、分岐命令タイプによっては、オペランド
読出しとしてBS2から読出されたデータが、命令読出
しに化かされて、そのま>IBRA4またはIBRB5
に取込まれる。詳細は公知の技術につき省略する。
次に、命令先取りAI−Lpで該当アドレスがAAa上
になかった場合について述べる。このときは該命令読出
しは失敗とする。そして、新たにAI−Lpを起動して
も、(オペランドの読出しでのブロック転送で該命令が
同じブロックのために持ってこられる場合を除いて)成
功はしない。
そのうちに、IBRA4、IBRB5上の先取り命令を
使い切ると、第3図に示すように、命令(2)のDステ
ージの先行制御を失敗し、命令(1)終了後、改めて命
令読出し■がAI−LIの形で起動され、命令(2)が
ブロック転送により読出されることになる。
また、マイクロプログラムで制御するEステージが1サ
イクルで終らないときは、第4図に示すように、マイク
ロプログラム指示で命令読出し■や、次命令(2)のD
ステージが起動される。
この場合の命令読出しの動作仕様は、第2図の場合と同
じである。
上記実施例では、先行制御が有効に働いてL〜Eステー
ジ中の命令先取りもAI−Lpとしたが、これは明らか
に命令先取りアクセスなので、AIステージをAPと定
義し、LpステージはICTL50→BCTL51への
指示なしに、ApステージでLpタイプアクセスとして
指示できるようにもできる。
また、本実施例では、命令バッファレジスタは8バイト
が2本としたが、これは任意の構成でも適用できること
は明白である。
また、実行制御は、基本命令処理で2マシンサイクルず
らして次命令を起動するとしたが、これは1マシンサイ
クルまたは3マシンサイクル以上ずらしてもよい、なお
、1マシンサイクルずらす場合、オペランドの読出しが
必要で、且つ、演算サイクルが1マシンサイクルの命令
が連続するとき、バッファメモリは毎サイクルがオペラ
ンド読出しで占有されて、命令先取りアクセスが行われ
ないことになる。しかし、オペランドのバッファメモリ
アクセスが不要な命令(例えば、レジスターレジスタオ
ペランド同士の演算命令)が一つでも現われると、その
A−Lステージそのものが、。
AI−Lpとして動作させることができる。
また1本実施例では、命令先取り要求は、先行する命令
読出しのLpステージ結果を特って、次AIを制御する
(IBVA6.IBVB7(7)値によるアドレス制御
)としたが、先行命令読出しが処理中であることを認識
して、該先行命令読出しのIFP値の指す命令バッファ
レジスタ(IBRA4またはIBRB5)の仮想有効表
示子を“1”にし、この仮想有効表示子と本来の有効表
示子(IBVA6、IBVB7) との論理和(OR)
をとることにより、アドレス制御を行うようにして、命
令読出しを連続して出すように制御することも可能であ
る。第5図にこの関係を示す。即ち、第5図(イ)のよ
うに、命令読出し■が命令読出し■の結果を待たないで
要求を立上げる場合、■がIBRA4に対応したアドレ
スであったときは、■のLpステージで仮想有効表示子
Aを′1”にする。そして、同図(ロ)に示すように、
命令バッファからの命令切出しポインタがIBRA内を
指すか、IBRB内を指すかを判定することにより、継
続命令読出し■のアドレス制御を行う。即ち、仮想有効
表示子と本来の表示子とのOR(論理和)が、共に“0
”ならばNIA+“0”、両方とも“1”ならばNIA
+16の制御を行い、A系、B系どちらか一方のみ、′
1”の場合は、次に命令バッファから切出す方の有効表
示予相が110”ならばNIA+0111″ならばNI
A+8の動作を指示する。こうすることにより、先行命
令読出しの結果を待たずに1次命令読出しのアドレス制
御を可能とすることができ、命令読出し要求の立上げピ
ッチを小さくできる。命令バッファレジスタへの取込み
は、IFPの指す方の本来の有効表示子(IBVA5ま
たはIBVB6)が′0”のときにのみ行う。“1″な
らば無効にする(捨てる)。この仮想有効表示子の考え
方は、AI−LPだけでなく、AI−LIについても同
様に適用できる。
また、実施例では命令バッファレジスタ構成としたが、
これはRAMで構成されるバッファメモリ構造でも本発
明は適用できる。
〔発明の効果〕
以上述べたように、本発明によれば、命令バッファレジ
スタ満杯状態に於いても命令先取り要求を出し、該アド
レスがバッファメモリ上にある限り命令を読出して、命
令バッファレジスタ取込み時点で命令バッファレジスタ
が空いていれば取込み、満杯ならば該読出しデータ(命
令)を捨てるようにした2め、少ない命令バッファレジ
スタでも性能上のオーバヘッドの少ない命令先取り制御
が可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は本発
明の基本動作を示す図、第3図は先行制御部れのある場
合を示す図、第4yAは演算サイクルが1サイクルで終
らない場合を示す図、第5図は本発明の他の実施例の動
作を示す図である。 1・・・メモリ、  2・・・バッファメモリ、3・・
・アドレスアレイ、 4,5・・・命令バッファ、6.
7・・・命令バッファ有効性表示子、8・・・命令切出
し回路、 9・・・命令レジスタ、10・・・命令アド
レスレジスタ、 11・・・命令読出しアドレスインクリメンタ。 第  1  図 第  2  図 (ハ) □L

Claims (2)

    【特許請求の範囲】
  1. (1)命令バッファを設け、命令を先読みして該命令バ
    ッファに取り込む命令読出し制御方式において、メモリ
    への命令読出し要求を、命令バッファの空き状態とは無
    関係に発行し、読出した命令を命令バッファに取込むと
    きに、該命令バッファの空き状態をみて空いていれば取
    込み、空いていなければ取込みを抑止することを特徴と
    する命令読出し制御方式。
  2. (2)先行する命例読出しの命令バッファへの取込み成
    功、不成功を判定する前に、先行の命令読出しを成功と
    仮定して、引き続く命令読出しのアドレスを制御するこ
    とを特徴とする特許請求の範囲第1項記載の命令読出し
    制御方式。
JP60217168A 1985-09-30 1985-09-30 命令読出し制御方法 Granted JPS6277648A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60217168A JPS6277648A (ja) 1985-09-30 1985-09-30 命令読出し制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60217168A JPS6277648A (ja) 1985-09-30 1985-09-30 命令読出し制御方法

Publications (2)

Publication Number Publication Date
JPS6277648A true JPS6277648A (ja) 1987-04-09
JPH0514288B2 JPH0514288B2 (ja) 1993-02-24

Family

ID=16699922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60217168A Granted JPS6277648A (ja) 1985-09-30 1985-09-30 命令読出し制御方法

Country Status (1)

Country Link
JP (1) JPS6277648A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4034009A1 (de) * 1989-10-26 1991-05-02 Hitachi Ltd Verfahren zur befehlsabrufsteuerung

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5314899A (en) * 1976-07-23 1978-02-09 Toray Industries Imparting method of three dimentional pattern to plush cloth

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5314899A (en) * 1976-07-23 1978-02-09 Toray Industries Imparting method of three dimentional pattern to plush cloth

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4034009A1 (de) * 1989-10-26 1991-05-02 Hitachi Ltd Verfahren zur befehlsabrufsteuerung

Also Published As

Publication number Publication date
JPH0514288B2 (ja) 1993-02-24

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5127091A (en) System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US5155817A (en) Microprocessor
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
EP0094535B1 (en) Pipe-line data processing system
JPH07120284B2 (ja) データ処理装置
EP0471888B1 (en) Microprocessor for enhancing initiation of instruction execution after the execution of conditional branch instruction
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JP2723238B2 (ja) 情報処理装置
JPS6277648A (ja) 命令読出し制御方法
JPH0342723A (ja) データ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
EP0015276B1 (en) A digital pipelined computer
JPS6354632A (ja) 電子計算機の命令先読み制御方法
JP3102399B2 (ja) データ処理装置及び方法
JPS60241136A (ja) デ−タ処理装置
JP2503223B2 (ja) 先行制御方式
JPH02100740A (ja) キャッシュ・メモリユニットのブロック・ロード動作方式
JPH0248733A (ja) 情報処理装置
JPS6047618B2 (ja) 情報処理装置
JPH04213727A (ja) 情報処理装置