JPS6114536B2 - - Google Patents

Info

Publication number
JPS6114536B2
JPS6114536B2 JP370878A JP370878A JPS6114536B2 JP S6114536 B2 JPS6114536 B2 JP S6114536B2 JP 370878 A JP370878 A JP 370878A JP 370878 A JP370878 A JP 370878A JP S6114536 B2 JPS6114536 B2 JP S6114536B2
Authority
JP
Japan
Prior art keywords
address
instruction
branch
microinstruction
microprogram
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
Application number
JP370878A
Other languages
English (en)
Other versions
JPS5497341A (en
Inventor
Kazuhide Iwata
Shigeki Shibayama
Nobuo Okuda
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co 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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP370878A priority Critical patent/JPS5497341A/ja
Publication of JPS5497341A publication Critical patent/JPS5497341A/ja
Publication of JPS6114536B2 publication Critical patent/JPS6114536B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 本発明は、マイクロプログラム方式の計算機制
御方式に関するものである。
マイクロプログラム方式の計算機では、演算の
アルゴリズムをあらかじめマイクロプログラムメ
モリに記憶させておき、それを順次読み出すこと
により、演算処理を完遂しようとするものであ
る。演算速度向上のため、ある命令を実行中に次
に実行すべき命令を読み出すパイプライン方式が
とられる。第1図はパイプライン形マイクロプロ
グラム計算機の基本構成図を、第2図は動作のタ
イミングを示したものである。その動作の概要は
次のとうりである。
パイプラインレジスタ1に、前のサイクルでマ
イクロプログラムメモリ2から読み出されたマイ
クロ命令iがセツトされているとき、次番地選択
情報によりアドレスコントローラ3が動作し、次
に実行するマイクロ命令i+1が読み出される。
これと同時にマイクロ命令iは演算器4に送られ
命令が実行される。マイクロ命令iの実行と、マ
イクロ命令i+1の読み出しが終了した時点でマ
イクロ命令i+1がパイプラインレジスタ1にセ
ツトされ、つぎのサイクルに入る。
この方式では、マイクロプログラムの読み出し
と、命令が同時に行なわれるので動作速度は速く
なるが、分岐が行なわれるとき、次のような問題
が生じる。すなわち条件により分岐する場合、現
在実行中のマイクロプログラム命令の処理が終了
しなければ、条件の真偽が判らず、次に実行する
マイクロ命令のアドレスを決定することができな
い。
たとえば、マイクロ命令i+1による演算結果
が零のときは次のステツプでマイクロ命令nの実
行をするという条件のある場合、マイクロ命令i
+1の実行が終了するまで次に実行する命令が、
マイクロ命令nかマイクロ命令i+2であるかが
判らず、1サイクル休む必要がある。したがつて
あるマイクロ命令を実行した結果によつてプログ
ラムの分岐を行なう割合の大きな場合には時間の
損失が大きくなる。この時間損失を少なくするた
めに従来よりいくつかの方法が考えられている。
まず分岐条件が決定される前にその結果を予測
して次に実行するマイクロ命令を読みだす方法で
ある。前例においてマイクロ命令i+1が実行さ
れる前に、マイクロ命令i+2かマイクロ命令n
のいずれかを予測して読み出しておく。しかし一
般に演算結果が零のとき分岐する命令(BZ…
branch on Zero)と零でないとき分岐する命令
(BNZ…branch on Not Zero)があるので、次に
実行するのが連続番地(マイクロ命令i+2)が
飛び先番地(マイクロ命令n)のいずれかが判ら
ない。
また、マイクロプログラム・メモリを複数個の
バンクに分けて、次に実行される可能性のある複
数個の分岐先のマイクロ命令を同時に読み出すこ
とができるようにしておき、分岐命令の時点で同
時に複数個のマイクロ命令を読み出し、分岐命令
の終了時、その条件に合つた命令を選択して、次
に実行できるようにする方法がある。しかしこの
方法ではメモリ容量が大きくなり、ハードウエア
の価格が増加する欠点を持つている。
本発明は、このような従来の欠点を解消するた
めになされたもので、分岐番地を指定するような
制御ビツトをもうけ、プログラムに応じて、ソフ
トウエアで分岐先の指定をできるようにし、従来
の分岐アドレス予測法の欠点を改良したマイクロ
プログラム制御方式を提供することを目的とす
る。
以下図面を参照して本発明を詳細に説明する。
第3図は本発明の制御方式の基本概念を説明する
ためのプログラム例を示す図で、今、本図に示さ
れているように、START番地でRに100をセツ
トして、A番地でRの値を1づつ減じ、(A+
1)番地でRが零であるか否かによつて、連続番
地(A+2番地)か飛び先番地(LOOP番地)に
分岐する場合を考えてみる。このときRが零にな
る確率は1/100であるから、LOOP番号へ分岐す
る可能性が多いことは明らかである。それ故、ハ
ードウエア的に、通常はLOOP番地へ分岐するよ
うにしておいて、Rの値が零になつたときのみ、
すでに読み出されている命令を実行しないで、あ
らたに(A+2)番地のマイクロ命令を読み出す
ことにすると、損失は100回に1回となる。しか
しRの値が零か否かによつて分岐するにしても、
BNZ(Branch on Not Zero:零でなければ分
岐)と、BZ(Branch on Zero:零のとき分岐)
の命令があり、連続番地か飛び先番地のどちらに
分岐するかは、プログラムに依存する。したがつ
て、ハードウエアで、一方的に先読みすべき分岐
番地を決めておくと、最適なマイクロプログラム
を作成しようとする場合、プログラムに負担がか
かることになる。
マイクロプログラムをユーザが書き換えること
のできる計算機では、ハードウエアで分岐番地の
先読み制御をするより、プログラムに応じてソフ
トウエア制御できるようにした方が柔軟性が増す
ことになる。これ故、本発明ではマイクロ命令
(分岐命令)において命令コード以外に分岐アド
レスを指定する予測ビツトBASを追加し、マイ
クロプログラムが分岐命令の先読み制御を行なえ
るようにしている。そしてBASの値が1のとき
飛び先番地のマイクロ命令の先読みを、また
BASの値が0のとき連続番地のマイクロ命令の
先読みを行なうようにする。
第4図は本発明のマイクロプログラム制御方式
の具体的構成の一実施例を示したもので、マイク
ロプログラム・メモリ10、パイプライン・レジ
スタ11、インストラクシヨン・デコーダ12、
アドレス・レジスタ13、インクリメンタ14、
サブルーチン・レジスタ15、マルチプレクサ1
6、コンパレータ17、および分岐処理回路18
から構成されている。ここでマイクロプログラ
ム・メモリ10はマイクロ命令を記憶させておく
メモリ、パイプライン・レジスタ11はマイクロ
プログラム・メモリ10から読み出された命令を
保持するレジスタ、インストラクシヨン・デコー
ダ12はマイクロ命令コードの解読(デコード)
を行い、それに対応した制御信号を各部に送るも
ので、本発明の特徴である分岐命令の時は、マイ
クロ命令の中にもうけられた分岐先を予測するビ
ツト(BAS)により、まず予測したアドレスが
選択されるようにマルチプレクサ16を動作さ
せ、次に図示しない演算回路からの実行結果フラ
グを受け取つてこれと命令コード(分岐条件)に
従つてマルチプレクサ16を再び動作させて正し
い実行アドレスを出力させ、更に予測したアドレ
スと正しい実行アドレスが一致しているかどうか
の信号を後述する分岐処理回路18より受取つ
て、予測が間違つていた場合にはパイプラインレ
ジスタ11の内容をクリヤしてその命令の実行を
中止し、正しいアドレスによる命令の読出しを指
示する回路、アドレス・レジスタ13はメモリを
読み出しているとき、そのアドレスを保持してい
るレジスタでカレントアドレスをその出力として
出すもの、インクリメンタ14はカレント・アド
レスに1を加える回路で、その出力としてコンテ
イニユー・アドレスを出すもの、サブルーチン・
レジスタ15はサブルーチン・ジヤンプをすると
き、そのリターン・アドレスを保持するもので、
サブルーチン・リターン・アドレスをその出力と
して出すもの、マルチプレクサ16は、インスト
ラクシヨンデコーダ12によるマイクロ命令を解
読して作られた信号により、コンテイニユー・ア
ドレス、サブルーチン・リターン・アドレス、お
よびジヤンプ・アドレス(分岐命令に含まれてい
る)のいずれか一つを選択して、次のアドレスを
決める回路、コンパレータ17は、ジヤンプ・ア
ドレスとカレント・アドレスの比較を行なう回路
であり、その出力として、もしジヤンプ・アドレ
スとカレント・アドレスが等しいなら1、そうで
なければ0というMATCH信号を出すもの、分岐
処理回路18は論理ゲートからなるものであり、
分岐命令のとき予測したアドレスが実際実行すべ
きアドレスになつているかどうかを判定し、その
結果をインストラクシヨン・デコーダ12に送る
回路である。
次に本発明の特徴である分岐命令の処理に関す
るハードウエアについて説明する。分岐命令で
BASの値を1、すなわちジヤンプ・アドレスを
予測した場合、コンパレータの出力MATCHによ
り、MATCHの値が1であれば予測が正しかつた
ことになり、またMATCHの値が0のとき予測が
はずれたことになる。逆にBASの値を0、すな
わち、コンテイニユー・アドレスを予測した場
合、MATCHの値が1のとき予測がはずれたこと
になり、またMATCHの値が0のとき予測が正し
かつたことになる。
したがつて、分岐処理回路18は前述した予測
ビツトBASとMATCHの排他的論理和
(Exclusive OR)をとり、その出力をインストラ
クシヨン・デコーダ12に送ればよい。すなわ
ち、その出力は、“1”のとき予測して読み出し
ておいたマイクロ命令が間違つていたことを、
“0”のとき正しかつたことを示すので、インス
トラクシヨン・デコーダは信号“1”を受け取つ
た場合に間違つて読み出したマイクロ命令の実行
の中止、正しいマイクロ命令の読み出し等の制御
を行うことができる。
【図面の簡単な説明】
第1図はパイプライン形マイクロプログラム計
算機の基本構成図、第2図はその動作のタイミン
グを示したものであり、第3図は分岐命令を含む
マイクロプログラムのプログラム例を示す。第4
図は本発明の一実施例を示す具体的な回路構成図
である。 10……マイクロプログラム・メモリ、11…
…パイプライン・レジスタ、12……インストラ
クシヨン・デコーダ、13……アドレス・レジス
タ、14……インタリメンタ、15……サブルー
チン・レジスタ、16……マルチプレクサ、17
……コンパレータ、18……分岐処理回路。

Claims (1)

    【特許請求の範囲】
  1. 1 次に実行すべきマイクロ命令のアドレスとし
    て分岐先アドレス又は連続アドレスを予測したビ
    ツト及び命令コードからなる分岐命令を記憶し、
    与えられたアドレスに対応するマイクロ命令を読
    出すマイクロプログラムメモリと、このマイクロ
    プログラムメモリより読出されたマイクロ命令を
    一時保持するパイプラインレジスタと、このパイ
    プラインレジスタに保持されたマイクロ命令を実
    行する演算回路と、前記マイクロプログラムメモ
    リに与えられたアドレスを一時保持するアドレス
    レジスタと、このアドレスレジスタに保持された
    アドレスを歩進した連続アドレスを出力するイン
    クリメンタと、このインクリメンタより出力され
    た連続アドレスと前記マイクロプログラムメモリ
    より読出された分岐命令の分岐先アドレスのいず
    れかを選択的に前記マイクロプログラムメモリへ
    出力するマルチプレクサと、このマルチプレクサ
    に対し連続アドレス又は分岐先アドレスの選択指
    示を前記マイクロプログラムメモリより読出され
    た分岐命令の予測ビツトに従つて行い、更に命令
    コード及び前記演算回路による分岐命令の実行結
    果に従つて再び行うインストラクシヨンデコーダ
    とを備えたマイクロプログラム制御方式におい
    て、このインストラクシヨンデコーダにより再び
    選択されて前記アドレスレジスタに保持されたア
    ドレスと前記分岐先アドレスを比較してMATCH
    信号を出力するコンパレータと、このコンパレー
    タより出力されたMATCH信号と前記予測ビツト
    の論理出力を得る論理ゲートとを備え、この論理
    ゲートの論理出力に従い前記インストラクシヨン
    デコーダは前記パイプラインレジスタに対し予測
    ビツトに従つて選択されたマイクロ命令をクリヤ
    することを特徴とするマイクロプログラム制御方
    式。
JP370878A 1978-01-19 1978-01-19 Microprogram control system Granted JPS5497341A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP370878A JPS5497341A (en) 1978-01-19 1978-01-19 Microprogram control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP370878A JPS5497341A (en) 1978-01-19 1978-01-19 Microprogram control system

Publications (2)

Publication Number Publication Date
JPS5497341A JPS5497341A (en) 1979-08-01
JPS6114536B2 true JPS6114536B2 (ja) 1986-04-19

Family

ID=11564838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP370878A Granted JPS5497341A (en) 1978-01-19 1978-01-19 Microprogram control system

Country Status (1)

Country Link
JP (1) JPS5497341A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895785A (ja) * 1994-09-29 1996-04-12 Nec Software Ltd 分岐予測装置

Also Published As

Publication number Publication date
JPS5497341A (en) 1979-08-01

Similar Documents

Publication Publication Date Title
KR100395763B1 (ko) 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기
JP2603626B2 (ja) データ処理装置
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US4775927A (en) Processor including fetch operation for branch instruction with control tag
EP0320098B1 (en) Jump prediction
US4179731A (en) Microprogrammed control system
EP0094535B1 (en) Pipe-line data processing system
US4739470A (en) Data processing system
KR100570906B1 (ko) 데이터처리기에서조건부분기실행을제어하기위한장치및방법
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
EP0297943B1 (en) Microcode reading control system
EP0201833A2 (en) Instruction processor
US5644759A (en) Apparatus and method for processing a jump instruction preceded by a skip instruction
EP0471888B1 (en) Microprocessor for enhancing initiation of instruction execution after the execution of conditional branch instruction
US5142630A (en) System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching
JPH031231A (ja) マイクロプログラム制御装置
JPS6114536B2 (ja)
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
WO2002039272A9 (en) Method and apparatus for reducing branch latency
JP3335735B2 (ja) 演算処理装置
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JP2772100B2 (ja) 並列命令フェッチ機構
US20030018883A1 (en) Microcode branch prediction indexing to macrocode instruction addresses
EP0211487A1 (en) Conditional operations in computers