JPH02103629A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH02103629A
JPH02103629A JP25669988A JP25669988A JPH02103629A JP H02103629 A JPH02103629 A JP H02103629A JP 25669988 A JP25669988 A JP 25669988A JP 25669988 A JP25669988 A JP 25669988A JP H02103629 A JPH02103629 A JP H02103629A
Authority
JP
Japan
Prior art keywords
branch
branching
register
command
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.)
Pending
Application number
JP25669988A
Other languages
English (en)
Inventor
Akihisa Makita
牧田 明久
Yoshihiro Nakajima
義博 中島
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.)
NEC Corp
NEC Computertechno Ltd
Original Assignee
NEC Corp
NEC Computertechno 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 NEC Corp, NEC Computertechno Ltd filed Critical NEC Corp
Priority to JP25669988A priority Critical patent/JPH02103629A/ja
Publication of JPH02103629A publication Critical patent/JPH02103629A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 皮丘立1 本発明はデータ処理システムに関し、特に制御記憶に格
納されたマイクロプログラムの順序制御に関する。
良米韮韮 従来、データ処理システムは、第5図に示すように、マ
イクロプログラムが格納された制御記憶(C3)1と、
マイクロプログラムのアドレスを保持するアドレスレジ
スタ(C8A)2と、制御記憶1から読出されたマイク
ロプログラムを保持する命令レジスタ(C3R)3と、
分岐判定ロジック回路(BRL)11と、デコーダ(D
EC)5と、デコーダ5からのデータを保持するデータ
レジスタ(DECR)6と、分岐条件を保持する分岐条
件レジスタ(S)7とを含んで構成されている。
制御記憶1は偶数アドレスのマイクロプログラムを格納
する制御記憶1−1と、奇数アドレスのマイクロプログ
ラムを格納する制御記憶1−2とから構成され、アドレ
スレジスタ2に保持されたアドレスの最下位ビットを除
いた部分によりアクセスされる。
命令レジスタ3には分岐判定ロジック回路11からの選
択信号101により制御記+1i1−1と制御記憶1−
2とのうち一方からのマイクロプログラムが選択されて
保持される。
命令レジスタ3に保持されたマイクロプログラムの各フ
ィールドの出力が図示せぬ個々の回路に直接入力され、
個々の回路を同時に制御することにより該マイクロプロ
グラムが実行される。
デコーダ5は命令レジスタ3に保持されたマイクロプロ
グラムのフィールドの一つにより索引され、デコーダ5
からの出力データがデータレジスタ6に保持される。デ
ータレジスタ6に保持されたデコーダ5からの出力デー
タの各フィールドの出力が図示せぬ他の個々の回路に直
接入力され、他の個々の回路を同時に制御する。
分岐条件レジスタ7はデータレジスタ6に保持されたデ
コーダ5からの出力データのフィールドの一つにより制
御される。
アドレスレジスタ2には保持しているアドレスにより制
御記憶1から読出されたマイクロプログラム中のネクス
トアドレス(NA)が次のタイミングでセットされ、ア
ドレスレジスタ2にセットされたネクストアドレスによ
り次のマイクロプログラムが制御記憶1から読出される
。上記の動作により゛制御記憶1から順次マイクロプロ
グラムが読出されて実行されていく。
分岐判定ロジック回路11は、第6図に示すように、ア
ンドゲート11−1〜11−4とオアゲート11−5,
116とにより構成されている。アンドゲート11−1
〜11−4は命令レジスタ3からの分岐コマンドCO〜
C3と分岐条件レジスタ7からの分岐条件SO〜S3と
の論理積演算を夫々行い、その演31.結果をオアゲー
ト11−5に出力する。
オアゲート11−5はアンドゲート11−1〜11−4
の演算結果の論理和演算を行い、その演算結果をオアゲ
ート11−6に出力する。オアゲート11−6はこのオ
アゲート1t−sの演算結果によりアドレスレジスタ2
に保持されたアドレスの最下位ビットを修飾する。
これにより、アドレスレジスタ2に保持するアドレスを
偶数(アドレスの最下位ビットが“0”)にしておくこ
とで、分岐コマンドcO〜c3と分岐条件SO〜S3と
によって、アドレスレジスタ2に保持されたアドレスと
、このアドレスに1を加算したアドレスとに分岐するこ
とができる。
分岐しないときには分岐コマンドCO〜C3が全て値″
Onであり、アドレスの最下位ビットを修飾することは
ない。
ここで、第7図に示すように、アドレスレジスタ2から
のアドレスAにより制御記憶1から読出されたマイクロ
プログラムによって分岐条件レジスタ7に保持された分
岐条件が更新される場合には、命令レジスタ3から分岐
条件を更新するコマンドが発行されると、実際に分岐条
件が確定するのはt4のタイミングとなる(第8図参照
)。
したがって、t4のタイミングで確定する分岐条件で分
岐を行うには、t4のタイミングで命令レジスタ3上の
分岐コマンドCO〜C3と分岐条件レジスタ7上の分岐
条件SO〜S3によって、t5のタイミングで命令レジ
スタ3に保持されるマイクロプログラムのアドレスがC
となるかC+1となるかが分岐判定ロジック回路11で
決定されるので、t3のタイミングで分岐コマンドを発
行することになる。
すなわち、分岐条件が確定するまで分岐コマンドの発行
を待合わせるために、t2のタイミングでNOP (N
o 0pration ;アドレスF)を発行し、t3
のタイミングで分岐コマンドを発行することになる。
このような従来のデータ処理システムでは、分岐条件が
確定するタイミングで分岐判定コマンドを発行して条件
分岐を行っているが、この分岐条件を更新し、その更新
結果により分岐する場合には、更新された分岐条件が確
定するまで分岐判定コマンドの発行を待合わせる必要が
あるので、分岐処理が遅くなるという欠点がある。
また、更新された分岐条件が確定するまで分岐判定コマ
ンドの発行を待合わせるため、N0P(なにもしないコ
マンド)の発行などのように待合わせのためのムダなス
テップが増えてしまうという欠点がある。
発明の目的 本発明は上記のような従来のものの欠点を除去すべくな
されたもので、マイクロプログラムの分岐処理を高速に
実行することができ、無駄なマイクロプログラムのステ
ップを削除することができるデータ処理システムの提供
を目的とする。
発明の構成 本発明によるデータ処理システムは、制御記憶に格納さ
れたマイクロプログラムにより制御されるデータ処理シ
ステムであって、前記マイクロプログラムのシーケンス
がある条件で分岐するとき、該分岐条件が確定する前に
分岐コマンドを発行し一該分岐コマントの一つ前の分岐
コマンドで分岐した分岐方向に該分岐コマンドを予測分
岐させる予測分岐手段と、該分岐条件が確定したタイミ
ングで前記予測分岐手段により予測分岐された分岐方向
が正しい分岐方向か否かを判定する判定手段と、前記判
定手段により前記予測分岐された分岐方向が不正である
と判定されたとき、実行された分岐コマンドのアドレス
を保持するレジスタと、前記判定手段により前記予測分
岐された分岐方向が不正であると判定されたとき、前記
予測分岐された分岐方向の処理を無効化する無効化手段
と、前記判定手段により前記予測分岐された分岐方向が
不正であると判定されたとき、前記レジスタに保持され
た内容により前記正しい分岐方向の処理を開始する手段
とを設けたことを特徴とする。
叉里3 次に、本発明の一実施例について図面を参照して説明す
る。
第1図は本発明の一実施例の構成を示すブロック図であ
る0図において、本発明の一実施例によるデータ処理シ
ステムは、分岐判定ロジック回路(BRL)4と、アド
レスレジスタ(R3A)8と、分岐コマンドレジスタ(
C)9と、セレクタ10とを除いて第5図に示す従来例
のデータ処理システムと同様の構成となっており、同一
の構成部品には同一符号が付しである。
また、それら構成部品の動作も第5図〜第8図に示す従
来例のデータ処理システムの動作と同様であるので、以
下本発明の一実施例の特徴のみ説明する。
アドレスレジスタ8には1タイミング前にアドレスレジ
スタ2に保持されたアドレスが保持される。
分岐コマンドレジスタ9には命令レジスタ3がらの分岐
コマンドが、分岐条件が確定するタイミングで保持され
る。
セレクタ10は分岐判定ロジック回路4からの出力信号
102により、アドレスレジスタ2に保持されたアドレ
スとアドレスレジスタ8に保持されたアドレスとのうち
一方を選択して制御記憶1に供給する。まノ;、選択さ
れたアドレスの最下位ビットは分岐判定ロジック回路4
に出力される。
第2図は分岐判定ロジック回路4の詳細な構成を示す回
路図である0図において、分岐判定ロジック回路4はア
ンドゲート41〜46と、オアゲート47〜51と、レ
ジスタ52と、比較器53と、セレクタ54とにより構
成されている。
アンドゲート41〜44は分岐コマンドレジスタ9から
の分岐コマンドC10〜C13と分岐条件レジスタ7か
らの分岐条件sO〜s3との論理積演算を夫々行い、そ
の演算結果をオアゲート48に出力する。
また、分岐コマンドレジスタ9からの分岐コマンドCI
O〜C13はオアゲート47に入力されて論理和がとら
れ、その結果がアンドゲート45と比較器52とに出力
されるとともに、その結果の反転値がオアゲート51に
出力される。したがって、オアゲート47は分岐コマン
ドレジスタ9がちの分岐コマンドC10〜C13のうち
少なくとも一つが値″1″のとき、すなわち分岐コマン
ドCIO〜C13が分岐判定を指示するときに値“1”
を出力する。
オアゲート48はアンドゲート41〜44の演算結果の
論理和演算を行い、その演算結果をオアゲート49に出
力する。オアゲート49はこのオアゲート48の演算結
果によりセレクタ10で選択されたアドレスの最下位ビ
ットを修飾してレジスタ52と比較器53とセレクタ5
4とに出力する。
命令レジスタ3からの分岐コマンドCO〜C3は各々オ
アゲート50に入力されて論理和がとられ、その結果が
アンドゲート46に出力される。
したがって、オアゲート50は命令レジスタ3からの分
岐コマンドCO〜C3のうち少なくとも一つが値“1″
のとき、すなわち分岐コマンドCO〜C3が分岐判定を
指示するときに値“1”を出力する。
レジスタ52にはオアゲート49で修飾されたアドレス
の最下位ビットが、オアゲート47の値が“1″のとき
にセットされ、レジスタ52に保持された内容は比較器
53に出力される。
比較器53はオアゲート49で修飾されたアドレスの最
下位ビットとレジスタ52に保持された内容との比較を
行い、その比較結果が不一致を示すときに値“1″をア
ンドゲート45に出力するとともに、その反転値をオア
ゲート51に出力する。
アンドゲート45はオアゲート47の演算結果と比較器
53の比較結果との論理積演算を行い、その演算結果を
セレクタ10と装置内の他の回路(図示せず)とに出力
信号102として出力する。
オアゲート51はオアゲート47の演算結果の反転値と
比較器53の比較結果の反転値との論理和演算を行い、
その演算結果をアンドゲート46に出力する。
アンドゲート46はオアゲート50の演算結果とオアゲ
ート51の演算結果との論理積演算を行い、その演算結
果をセレクタ54への選択信号として出力する。
セレクタ54はオアゲート49で修飾されたアドレスの
最下位ビットと、レジスタ52に保持された内容とのう
ち一方をアンドゲート46からの選択信号により選択し
、命令レジスタ3に選択信号101として出力する。す
なわち、セレクタ54はアンドゲート46からの選択信
号が0″のときにオアゲート49で修飾されたアドレス
の最下位ビットを命令レジスタ3に出力し、アンドゲー
ト46からの選択信号が“1″のときにレジスタ52に
保持された内容を命令レジスタ3に出力する。
第3図は本発明の一実施例のマイクロプログラムのフロ
ーチャートである。
第4図は本発明の一実施例の動作を示すタイミングチャ
ートである。第4図(a)は分岐予測成功時のタイミン
グチャートを示し、第4図(b)は分岐予測不成功時の
タイミングチャートを示している。
これら第1図〜第4図を用いて本発明の一実施例の動作
について説明する。
tlのタイミングでアドレスAがアドレスレジスタ2か
ら制御記憶1に供給されると、し2のタイミングで分岐
条件を更新するコマンドが命令レジスタ3にセットされ
て発行され、このコマンドの発行により更新された分岐
条件はt4のタイミングで確定される。
アドレスAの供給に続いて、t2のタイミングでアドレ
スBがアドレスレジスタ2から制御記憶1に供給される
と、t3のタイミングで分岐判定を指示する分岐コマン
ドが命令レジスタ3にセットされて発行される。
この分岐コマンドの発行により、分岐判定ロジック回路
4のオアゲート50の値が“1″となるが、この時オア
ゲート51の値も“1”であればアンドゲート46の値
が“1”となって、セレクタ54はレジスタ52に保持
された内容を選択して命令レジスタ3に出力する。これ
により、t3のタイミングでレジスタ52に保持された
内容の方向に予測分岐される。
すなわち、分岐コマンドレジスタ9からの分岐コマンド
C10〜C13がすべて値“0′のときか、または比較
器53の比較結果が一致のときにオアゲート51の値が
“1″となるので、セレクタ54ではレジスタ52に保
持された内容が選択される。したがって、レジスタ52
の値が“0″であれば、t3のタイミングでアドレスレ
ジスタ2に保持されたアドレスCにより制御記憶1から
読出されたマイクロプログラムがt4のタイミングで命
令レジスタ3にセットされ、アドレスCへの予測分岐が
行われる。
t3のタイミングで発行された分岐判定を指示する分岐
コマンドは、t4のタイミングで分岐コマンドレジスタ
9にセットされることにより分岐判定が指示されると、
分岐判定ロジック回路4のオアゲート47の値が1”と
なる。
また、t4のタイミングでは確定した分岐粂件SO〜S
3と分岐コマンドレジスタ9からの分岐コマンドC10
〜CI3とによって、アンドゲート41〜44でその分
岐判定の結果が求まり、オアゲート49で分岐判定の結
果によりセレクタ10で選択されたアドレスの最下位ビ
ットが修飾される。
比較器53はオアゲート49で修飾されたアドレスの最
下位ビットとレジスタ52の内容とを比較し、その比較
結果が一致すれば、t4のタイミングでアドレスレジス
タ2に保持されたアドレスDにより制御記憶1から読出
されたマイクロプログラムがt5のタイミングで命令レ
ジスタ3にセットされる[第4図(a)参照]。
すなわち、比較器53の比較結果が一致を示す場合には
、t3のタイミングで行われた予測分岐が成功したこと
になる。
一方、比較器53での比較結果が不一致のときには、t
3のタイミングで行われた予n1分岐が失敗したことに
なり、t4のタイミングで分岐判定ロジック回路4のア
ンドゲート45の値が1″となる。
アンドゲート45の値が1”となることにより、他の回
路への出力信号102が“1”となって、直ちに命令レ
ジスタ3に保持されたマイクロプログラムの各フィール
ドの出力を無効化するととらに、次のタイミングでデー
タレジスタ6に保持されたデコーダ5からの出力データ
の各フィールドの出力を無効化して、予測分岐が失敗し
たアドレスCのマイクロプログラムの実行を抑止する。
アンドゲート45の値が“1”となることによって予測
分岐が失敗したマイクロプログラムの実行が抑止される
とともに、t4のタイミングでオアゲート51の値が“
O”となることによりアンドゲート46の値が“Onと
なるので、セレクタ54ではオアゲート4つで修飾され
たアドレスの最下位ビットが選択される。
しかしながら、t4のタイミングでアドレスレジスタ2
にはアドレスDが保持されているため、分岐先のアドレ
スがD+1となってしまうので、これを回避するために
アドレスレジスタ8が設けられている。
すなわち、アドレスレジスタ8には1タイミング前のア
ドレスレジスタ2の値(アドレスC)が保持されており
、t4のタイミングでアンドゲート45からの出力信号
102がMil+となるので、セレクタ10でアドレス
レジスタ8に保持されたアドレスCが選択され、アドレ
スCが制御記憶1に供給される。したがって、命令レジ
スタ3にはアドレスC+1から読出されたマイクロプロ
グラムがセットされる[第4図(a)参照]。
このとき、レジスタ52にはt4のタイミングでオアゲ
ート4つで修飾されたアドレスの最下位ビットがセット
される。レジスタ52の値は命令レジスタ3から分岐コ
マンドが発行される毎に更新され、レジスタ52に保持
された分岐方向は予測分岐が行われるタイミングで使用
される。
上述の処理により、マイクロプログラムの分岐処理は予
測分岐が成功すれば1タイミング速く実行することがで
き、また無駄なマイクロプログラムのステップも要らな
くなる。
一般に、マイクロプログラムの構造として分岐を予測す
ることは容易であるケースが多く、たとえばマイクロプ
ログラムがループ(LOOD)を構成している場合には
、ループを抜は出す分岐がループを続行する分岐よりも
その頻度が少ないというケースがある。このようなケー
スではループを続行する分岐の回数が多いほど高い確率
で予測分岐が成功し、分岐処理の効率が向上する。
このように、制御記憶1に格納されたマイクロプログラ
ムのシーケンスがある条件で分岐するとき、該分岐条件
が確定する前に分岐コマンドを発行し、該分岐コマンド
の一つ前の分岐コマンドで分岐した分岐方向に該分岐コ
マンドを予測分岐させ、この予測分岐された分岐方向が
正しい分岐方向か否かを比較器53により判定し、この
判定の結果、予測分岐された分岐方向が不正であると判
定されたとき、予測分岐された分岐方向の処理を無効化
するとともに、アドレスレジスタ8に保持されな1タイ
ミング前のアドレスレジスタ2の値により正しい分岐方
向の処理を開始するようにすることによって、マイクロ
プログラムの分岐処理を高速に実行することができ、N
OPのような無駄なマイクロプログラムのステップを削
除することができる。
尚、本発明の一実施例においては、分岐方向が2方向の
場合について説明したが一多方向分岐の場合にも適用で
きることは明白であり、これに限定されない。
発明の詳細 な説明したように本発明によれば、制御記憶に格納され
たマイクロプログラムのシーケンスがある条件で分岐す
るとき、該分岐条件が確定する前に分岐コマンドを発行
し、該分岐コマンドの一つ前の分岐コマンドで分岐した
分岐方向に該分岐コマンドを予測分岐させ、該分岐条件
が確定したタイミングでこの予測分岐された分岐方向が
正しい分岐方向か否かを判定し、この判定の結末、予測
分岐された分岐方向が不正であると’I’l定されたと
きにこの予測分岐された分岐方向の処理を無効化すると
ともに、正しい分岐方向の処理を開始するようにするこ
とによって、マイクロプログラムの分岐処理を高速に実
行することができ、無駄なマイクロプログラムのステッ
プを削除することができるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は第1図の分岐判定ロジック回路の詳細な構成を示
す回路図、第3図は本発明の一実施例のマイクロプログ
ラムのフローチャート、第4図は本発明の一実施例の動
作を示すタイミングチャート、第5図は従来例の構成を
示すブロック図、第6図は第5図の分岐判定ロジック回
路の詳細な構成を示す回路図、第7図は従来例のマイク
ロプログラムのフローチャート、第8図は従来例の動作
を示すタイミングチャートである。 主要部分の符号の説明 1・・・・・・制御記憶 2.8・・・・・・アドレスレジスタ 3・・・・・・命令レジスタ 4・・・・・・分岐判定ロジック回路 7・・・・・・分岐条件レジスタ 9・・・・・・分岐コマンドレジスタ 10・・・・・・セレクタ 41〜46・・・・・・アンドゲート 47〜51・・・・・・オアゲート 52・・・・・・レジスタ 53・・・・・・比較器 54・・・・・・セレクタ

Claims (1)

    【特許請求の範囲】
  1. (1)制御記憶に格納されたマイクロプログラムにより
    制御されるデータ処理システムであって、前記マイクロ
    プログラムのシーケンスがある条件で分岐するとき、該
    分岐条件が確定する前に分岐コマンドを発行し、該分岐
    コマンドの一つ前の分岐コマンドで分岐した分岐方向に
    該分岐コマンドを予測分岐させる予測分岐手段と、該分
    岐条件が確定したタイミングで前記予測分岐手段により
    予測分岐された分岐方向が正しい分岐方向か否かを判定
    する判定手段と、前記判定手段により前記予測分岐され
    た分岐方向が不正であると判定されたとき、実行された
    分岐コマンドのアドレスを保持するレジスタと、前記判
    定手段により前記予測分岐された分岐方向が不正である
    と判定されたとき、前記予測分岐された分岐方向の処理
    を無効化する無効化手段と、前記判定手段により前記予
    測分岐された分岐方向が不正であると判定されたとき、
    前記レジスタに保持された内容により前記正しい分岐方
    向の処理を開始する手段とを設けたことを特徴とするデ
    ータ処理システム。
JP25669988A 1988-10-12 1988-10-12 データ処理システム Pending JPH02103629A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25669988A JPH02103629A (ja) 1988-10-12 1988-10-12 データ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25669988A JPH02103629A (ja) 1988-10-12 1988-10-12 データ処理システム

Publications (1)

Publication Number Publication Date
JPH02103629A true JPH02103629A (ja) 1990-04-16

Family

ID=17296248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25669988A Pending JPH02103629A (ja) 1988-10-12 1988-10-12 データ処理システム

Country Status (1)

Country Link
JP (1) JPH02103629A (ja)

Similar Documents

Publication Publication Date Title
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
JPH0348536B2 (ja)
JPH02227730A (ja) データ処理システム
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
US4685058A (en) Two-stage pipelined execution unit and control stores
EP0164418B1 (en) Microprogram control system
JPH02103629A (ja) データ処理システム
JP2694948B2 (ja) マイクロプログラム処理装置
JP3055139B2 (ja) マイクロプログラム制御方式
KR970006413B1 (ko) 퍼지 컴퓨터
JPH0277940A (ja) データ処理装置
KR910003014B1 (ko) 연산 처리 장치
JPH0750437B2 (ja) データ処理装置
JPH0486920A (ja) 情報処理装置およびその方法
JPH08171491A (ja) ディスパッチされた制御転送命令状態に基づきより高速で命令を先取りするための方法及び装置
JPH03288228A (ja) 情報処理装置
JPS6353644A (ja) 命令制御装置
JPH06161778A (ja) マルチフロー命令制御方法及び命令処理装置
JPH06202867A (ja) 並列計算機
JPH03250221A (ja) 分岐予測方式
JPH04153728A (ja) 演算回路
JPH08297583A (ja) 割り込み処理装置およびその方法
JPH03184127A (ja) レジスタ退避制御方法
JPS61151781A (ja) ベクトル処理装置
JPS6014334A (ja) デ−タ処理装置