JPS61105643A - 命令制御装置 - Google Patents
命令制御装置Info
- Publication number
- JPS61105643A JPS61105643A JP22701884A JP22701884A JPS61105643A JP S61105643 A JPS61105643 A JP S61105643A JP 22701884 A JP22701884 A JP 22701884A JP 22701884 A JP22701884 A JP 22701884A JP S61105643 A JPS61105643 A JP S61105643A
- Authority
- JP
- Japan
- Prior art keywords
- address
- return
- program
- branching
- branch
- 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
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は情報処理装置の連結分岐機能における戻りアド
レスを自由に設定し得るようにした命令制御装置に関す
る。
レスを自由に設定し得るようにした命令制御装置に関す
る。
情報処理装置等には、通常連結分岐機能が備えられてい
る。その連結分岐機能はメインプログラムの処理からサ
ブプログラムの処理へ移ってそのサブプログラムで所要
の処理を行なった後メインプログラムへ戻るための一連
の処理を行なう。
る。その連結分岐機能はメインプログラムの処理からサ
ブプログラムの処理へ移ってそのサブプログラムで所要
の処理を行なった後メインプログラムへ戻るための一連
の処理を行なう。
このような処理におけるメインプログラムへの戻りアド
レスがプログラムの構成上必ずしも予め決められる一定
のアドレスではなく、自在に設定され得るアドレスとさ
れ得ることが必要になる場合がある。そのようなアドレ
スの設定をプログラムの高速な実行を許容しつつ為し得
て、しかもプログラムサイズを大きくすることなしに為
し得ることが要求されている。
レスがプログラムの構成上必ずしも予め決められる一定
のアドレスではなく、自在に設定され得るアドレスとさ
れ得ることが必要になる場合がある。そのようなアドレ
スの設定をプログラムの高速な実行を許容しつつ為し得
て、しかもプログラムサイズを大きくすることなしに為
し得ることが要求されている。
従来の電子針算機等における連結分岐機能は、その分岐
の際に分岐命令の入っているアドレスの次のアドレスを
レジスタなどに格納してサブプログラムへ分岐しメイン
プログラムへ戻る際にその退避したアドレスをプログラ
ムカウンタへ戻してメインプログラムの実行を再開する
如きものである。これを−例をもって説明すると、次の
ようになる。
の際に分岐命令の入っているアドレスの次のアドレスを
レジスタなどに格納してサブプログラムへ分岐しメイン
プログラムへ戻る際にその退避したアドレスをプログラ
ムカウンタへ戻してメインプログラムの実行を再開する
如きものである。これを−例をもって説明すると、次の
ようになる。
第2図に示す如く、メインプログラム(以下、MA I
N 1と略称する。)がメモリアドレス100から3
00までに格納さ、れており、そのアドレス201にあ
る連結分岐命令(BAL命令:Branch And
Link)によってMA I N1からサブプログ
ラム5UBIを呼び出すものとする(そのサブプログラ
ム5UBIはメモリアドレス500乃至600にある)
。
N 1と略称する。)がメモリアドレス100から3
00までに格納さ、れており、そのアドレス201にあ
る連結分岐命令(BAL命令:Branch And
Link)によってMA I N1からサブプログ
ラム5UBIを呼び出すものとする(そのサブプログラ
ム5UBIはメモリアドレス500乃至600にある)
。
MA I N 1が実行されてその処理がアドレス20
1に達すると、そこに入っている連結分岐命令(BAL
命令)の実行によりサブプログラム5UB1へ分岐する
。サブプログラム5UBIの実行が終了すると、制御は
再びMA I N 1に戻るがその戻りアドレスは分岐
アドレス+1即ちアドレス′202となっている。この
アドレスよりアドレス300まで命令の実行が行なわれ
てMAINIの実行は終了する。
1に達すると、そこに入っている連結分岐命令(BAL
命令)の実行によりサブプログラム5UB1へ分岐する
。サブプログラム5UBIの実行が終了すると、制御は
再びMA I N 1に戻るがその戻りアドレスは分岐
アドレス+1即ちアドレス′202となっている。この
アドレスよりアドレス300まで命令の実行が行なわれ
てMAINIの実行は終了する。
上述の如く戻りアドレスが分岐アドレス+1に固定され
てしまっていると、次のような不都合が生ずる。
てしまっていると、次のような不都合が生ずる。
例えば、上述のプログラム構成において、サブプログラ
ム5UBIでMA I N 1のアドレス202.2α
3の命令を実行してしまっており、サブフロクラム5U
BIからアドレス204に戻ってほしい場合であっても
、上述の連結分岐機能ではその要求を満たすことはでき
ない。
ム5UBIでMA I N 1のアドレス202.2α
3の命令を実行してしまっており、サブフロクラム5U
BIからアドレス204に戻ってほしい場合であっても
、上述の連結分岐機能ではその要求を満たすことはでき
ない。
又、第3図に示すようなメインプログラムMAIN2の
アドレス1101の命令の演算結果、即ちA−100が
正、零、負によって連結分岐機能が変えられねばならな
い、つまり正の場合にはサブプログラムPO8へ分岐し
、零の場合にはサブプログラムZEROへ分岐し、負の
場合にはサブプログラムNEGへ分岐してその処理終了
後メインプログラムMAIN2のアドレス1105へ戻
らねばならない場合に、従来のBAL命令を用いるとす
ると、正の場合における戻りアドレスはアゾドレス10
3、零の場合における戻りアドレスはアドレス104、
負の場合における戻りアドレスはアドレス105となっ
て負の場合にのみ論理的に正しい動作をするに過ぎない
。
アドレス1101の命令の演算結果、即ちA−100が
正、零、負によって連結分岐機能が変えられねばならな
い、つまり正の場合にはサブプログラムPO8へ分岐し
、零の場合にはサブプログラムZEROへ分岐し、負の
場合にはサブプログラムNEGへ分岐してその処理終了
後メインプログラムMAIN2のアドレス1105へ戻
らねばならない場合に、従来のBAL命令を用いるとす
ると、正の場合における戻りアドレスはアゾドレス10
3、零の場合における戻りアドレスはアドレス104、
負の場合における戻りアドレスはアドレス105となっ
て負の場合にのみ論理的に正しい動作をするに過ぎない
。
本発明は上述の問題点を解決し得る命令制御装置を提供
するもので、その手段は連結分岐機能を備えた情報処理
装置の命令制御装置において、前記情報処理装置で実行
されるプログラムが前記連結分岐機能による連結分岐処
理に入る際戻り基準アドレスを出力する手段と、前記連
結分岐機能で処理される連結分岐の処理終了後に前記プ
ログラムへ戻るための前記戻り基準アドレスからのアド
レス変位量を出力する手段と、前記戻り基準アドレスと
前記アドレス変位量を会社して戻りアドレスを出力する
手段と、前記戻りアドレスを格納する手段とを備えて前
記連結分岐処理終了後戻りアドレスをスタートアドレス
として前記プログラムを再開するように構成したもので
ある。
するもので、その手段は連結分岐機能を備えた情報処理
装置の命令制御装置において、前記情報処理装置で実行
されるプログラムが前記連結分岐機能による連結分岐処
理に入る際戻り基準アドレスを出力する手段と、前記連
結分岐機能で処理される連結分岐の処理終了後に前記プ
ログラムへ戻るための前記戻り基準アドレスからのアド
レス変位量を出力する手段と、前記戻り基準アドレスと
前記アドレス変位量を会社して戻りアドレスを出力する
手段と、前記戻りアドレスを格納する手段とを備えて前
記連結分岐処理終了後戻りアドレスをスタートアドレス
として前記プログラムを再開するように構成したもので
ある。
本発明装置によれば、情報処理装置で実行されるプログ
ラムがその連結分岐機能による連結分岐処理に入る際戻
り基準アドレスに、その連結分岐の処理終了後に前記プ
ログラムへ戻るための戻り基準アドレスからの変位量を
加算してその加算値を戻りアドレスとして格納しておき
、連結分岐処理終了後に格納しておいた戻りアドレスを
前記プログラムのスタートアドレスとしている。
ラムがその連結分岐機能による連結分岐処理に入る際戻
り基準アドレスに、その連結分岐の処理終了後に前記プ
ログラムへ戻るための戻り基準アドレスからの変位量を
加算してその加算値を戻りアドレスとして格納しておき
、連結分岐処理終了後に格納しておいた戻りアドレスを
前記プログラムのスタートアドレスとしている。
従って、戻りアドレスは任意に設定し得ることとなり、
従来方式の有する不具合は一掃し得る。
従来方式の有する不具合は一掃し得る。
以下、添付図面を参照しながら本発明の詳細な説明する
。
。
第1図は本発明の一実施例を示す。1はマイクロ命令を
格納するコントロールストレージ(以下、C8と称す、
)で、このC3Iはマルチプレクサ2の出力アドレスに
よってアクセスされ、その読み出されたマイクロ命令は
マイクロ命令レジスタ3にセットされる。レジスタ3の
マイクロ命令はデコーダ4にてデコードされてCPU
(図示せず)のための各種制御信号がデコーダ4から発
生され、CPUの所要各部へ供給されて所望の動作を生
ゼしめるようになっている。
格納するコントロールストレージ(以下、C8と称す、
)で、このC3Iはマルチプレクサ2の出力アドレスに
よってアクセスされ、その読み出されたマイクロ命令は
マイクロ命令レジスタ3にセットされる。レジスタ3の
マイクロ命令はデコーダ4にてデコードされてCPU
(図示せず)のための各種制御信号がデコーダ4から発
生され、CPUの所要各部へ供給されて所望の動作を生
ゼしめるようになっている。
マルチプレクサ2は線5上に発生される選択信号によっ
てマイクロプログラムカウンタ(MPC)6のカウント
値、即ち次のマイクロ命令のためのアドレス又はマイク
ロスタック7に格納されたアドレスを選択してC81の
アクセスアドレスとしてC8lに供給するためのもので
ある。8はマルチプレクサ2の出力アドレスに+1する
加算器である。
てマイクロプログラムカウンタ(MPC)6のカウント
値、即ち次のマイクロ命令のためのアドレス又はマイク
ロスタック7に格納されたアドレスを選択してC81の
アクセスアドレスとしてC8lに供給するためのもので
ある。8はマルチプレクサ2の出力アドレスに+1する
加算器である。
9は連結分岐処理が開始される際にその時のマイクロプ
ログラムカウンタ6の値と命令レジスタ10の予め決め
られた領域(第1図斜線部)の値とを加算する加算器で
ある。加算器9の出力値、即ち連結分岐処理終了後にメ
インプログラムが再開されるアドレスが連結分岐の際マ
イクロスタック7に格納されるように構成されている。
ログラムカウンタ6の値と命令レジスタ10の予め決め
られた領域(第1図斜線部)の値とを加算する加算器で
ある。加算器9の出力値、即ち連結分岐処理終了後にメ
インプログラムが再開されるアドレスが連結分岐の際マ
イクロスタック7に格納されるように構成されている。
このように構成される連結分岐機能における連結分岐処
理態様を説明する。
理態様を説明する。
メインプログラムを構成する命令に連結分岐命令が現れ
て来ないプログラム部分においては、線5上に供給され
る選択信号によりマルチプレクサ2は0側を選択してマ
イクロプログラムカウンタ6が示すアドレスでアクセス
されたC3Iのヤイクロ命令がマイクロ命令レジスタ3
に読み出されてデコーダ4でデコードされ、CPU各部
へ供給される制御信号が発生される。C31のアクセス
に供されたアドレスは+1されてマイクロプログラムカ
ウンタ6から出力される、つまり次のマイクロ命令を読
み出すためのアドレスが出力されるようになる。このよ
うな動作は連結分岐処理(サブプログラムの処理)を行
なうまで続行される。
て来ないプログラム部分においては、線5上に供給され
る選択信号によりマルチプレクサ2は0側を選択してマ
イクロプログラムカウンタ6が示すアドレスでアクセス
されたC3Iのヤイクロ命令がマイクロ命令レジスタ3
に読み出されてデコーダ4でデコードされ、CPU各部
へ供給される制御信号が発生される。C31のアクセス
に供されたアドレスは+1されてマイクロプログラムカ
ウンタ6から出力される、つまり次のマイクロ命令を読
み出すためのアドレスが出力されるようになる。このよ
うな動作は連結分岐処理(サブプログラムの処理)を行
なうまで続行される。
連結分岐が行なわれる際にその時のマイクロプログラム
カウンタ6の値(戻り基準アドレス)と命令レジスタ1
0の予め決められたフィールド(第1図斜線部)の値、
つまりその連結分岐の処理終了後にメインプログラムへ
戻るための戻り基準アドレスからの変位量とを加算器9
で加算してそれをマイクロスタック7に格納した後サブ
プログラムへ分岐する。
(サブプログラムからメインプログラムへ戻る
際 jには、線5上にマルチプレクサ2の1側を選
択するための信号が発生され、この信号によりマイク
”ロスタック7からのアドレスがマルチプレクサ2
・を経てC3Iに供給されてメインプログラムが
再 。
カウンタ6の値(戻り基準アドレス)と命令レジスタ1
0の予め決められたフィールド(第1図斜線部)の値、
つまりその連結分岐の処理終了後にメインプログラムへ
戻るための戻り基準アドレスからの変位量とを加算器9
で加算してそれをマイクロスタック7に格納した後サブ
プログラムへ分岐する。
(サブプログラムからメインプログラムへ戻る
際 jには、線5上にマルチプレクサ2の1側を選
択するための信号が発生され、この信号によりマイク
”ロスタック7からのアドレスがマルチプレクサ2
・を経てC3Iに供給されてメインプログラムが
再 。
開される。
この連結分岐処理態様を第3図の例を用いて具体的に説
明する。AがA>100という条件を満たしているとす
ると、アドレス1102でA>0の条件が成立してサブ
プログラム″PO8”へ分岐する。その際に、マイクロ
プログラムカウンタ6は1103を指しているので命令
レジスタlOの前記フィールドの内容を2にしてマイク
ロスタックの内容(アドレス)を1105としてお(。
明する。AがA>100という条件を満たしているとす
ると、アドレス1102でA>0の条件が成立してサブ
プログラム″PO8”へ分岐する。その際に、マイクロ
プログラムカウンタ6は1103を指しているので命令
レジスタlOの前記フィールドの内容を2にしてマイク
ロスタックの内容(アドレス)を1105としてお(。
そうすれば、サブプログラム“POS”の処理が 4
゜終了すると、メインプログラムの命令実行はアドレス
1105からとなる。 j
このようなサブプログラムからメインプロゲラ “
ムへの復帰は命令レジスタ10の前記フィールドD内容
を変えることによりメインプログラムの1午な処理再開
アドレスへ為し得ることになる。又、ヒ述のような連結
分岐処理に用いられるマイクロスタックを211にすれ
ば、2重のプログラムネス升イングで連結分岐を行なう
ことができる。そしζ、その段数を増やすことにより、
多重のネスティングで連結分岐を行なうことができる。
゜終了すると、メインプログラムの命令実行はアドレス
1105からとなる。 j
このようなサブプログラムからメインプロゲラ “
ムへの復帰は命令レジスタ10の前記フィールドD内容
を変えることによりメインプログラムの1午な処理再開
アドレスへ為し得ることになる。又、ヒ述のような連結
分岐処理に用いられるマイクロスタックを211にすれ
ば、2重のプログラムネス升イングで連結分岐を行なう
ことができる。そしζ、その段数を増やすことにより、
多重のネスティングで連結分岐を行なうことができる。
以上説明したように、本発明によれば、■サブプログラ
ムからの戻りアドレスを呼び出し側で自由に設定し得て
、 ■多岐分岐等の実行を効率よく行ない得ることとなり、 ■プログラムの高速な実行及びそのサイズの縮小に寄与
する、等の効果が得られる。
ムからの戻りアドレスを呼び出し側で自由に設定し得て
、 ■多岐分岐等の実行を効率よく行ない得ることとなり、 ■プログラムの高速な実行及びそのサイズの縮小に寄与
する、等の効果が得られる。
第1図は本発明の一実施例を示す図、第2図及ブ第3図
は従来方式の連結分岐の説明に用いる図である。 図中、1はコントロールストレージ、2はマルチプレク
サ、6はマイクロプログラムカウンタ、7はマイクロス
タック、8,9は加算器、10は命令レジスタである。 第2図 MAIN + 204A=A肴愉3 600第3図
は従来方式の連結分岐の説明に用いる図である。 図中、1はコントロールストレージ、2はマルチプレク
サ、6はマイクロプログラムカウンタ、7はマイクロス
タック、8,9は加算器、10は命令レジスタである。 第2図 MAIN + 204A=A肴愉3 600第3図
Claims (1)
- 連結分岐機能を備えた情報処理装置の命令制御装置にお
いて、前記情報処理装置で実行されるプログラムが前記
連結分岐機能による連結分岐処理に入る際戻り基準アド
レスを出力する手段と、前記連結分岐機能で処理される
連結分岐の処理終了後に前記プログラムへ戻るための前
記戻り基準アドレスからのアドレス変位量を出力する手
段と、前記戻り基準アドレスと前記アドレス変位量を合
計して戻りアドレスを出力する手段と、前記戻りアドレ
スを格納する手段とを備えて前記連結分岐処理後前記戻
りアドレスをスタートアドレスとして前記プログラムを
再開するように構成したことを特徴とする命令制御装置
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22701884A JPS61105643A (ja) | 1984-10-29 | 1984-10-29 | 命令制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22701884A JPS61105643A (ja) | 1984-10-29 | 1984-10-29 | 命令制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61105643A true JPS61105643A (ja) | 1986-05-23 |
Family
ID=16854223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22701884A Pending JPS61105643A (ja) | 1984-10-29 | 1984-10-29 | 命令制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61105643A (ja) |
-
1984
- 1984-10-29 JP JP22701884A patent/JPS61105643A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5095426A (en) | Data processing system for effectively handling exceptions during execution of two different types of instructions | |
US5088030A (en) | Branch address calculating system for branch instructions | |
JP3510729B2 (ja) | 命令実行方法および命令実行装置 | |
JPS61105643A (ja) | 命令制御装置 | |
US6044455A (en) | Central processing unit adapted for pipeline process | |
US5819081A (en) | Method of executing a branch instruction of jumping to a subroutine in a pipeline control system | |
JPS6217773B2 (ja) | ||
JPH0218729B2 (ja) | ||
JP2582294B2 (ja) | モジュール間結合実行制御方式 | |
JP2979108B2 (ja) | データ処理装置における非同期処理の同期化方式 | |
JPS6028014B2 (ja) | マイクロプロセツサ | |
JP3155056B2 (ja) | 情報処理装置 | |
JPS59223846A (ja) | 演算処理装置 | |
JP2506591B2 (ja) | 補助処理装置 | |
JP2743947B2 (ja) | マイクロプログラム制御方式 | |
JPS58169247A (ja) | 高速命令読出し方式 | |
JPS60120440A (ja) | アドレスレジスタ制御方式 | |
JPS63276126A (ja) | 命令デコ−ド回路 | |
JPS6375833A (ja) | 情報処理装置 | |
JPS5875250A (ja) | デジタル情報処理装置 | |
JPH01304537A (ja) | マイクロプログラム制御回路 | |
JPH0221331A (ja) | マイクロコンピュータのプログラム制御方式 | |
JPS62269235A (ja) | 情報処理装置 | |
JPS61118836A (ja) | マイクロプログラム制御装置 | |
JPH0227694B2 (ja) |