JPH02186440A - マイクロサブルーチンのシーケンス制御方式 - Google Patents
マイクロサブルーチンのシーケンス制御方式Info
- Publication number
- JPH02186440A JPH02186440A JP499389A JP499389A JPH02186440A JP H02186440 A JPH02186440 A JP H02186440A JP 499389 A JP499389 A JP 499389A JP 499389 A JP499389 A JP 499389A JP H02186440 A JPH02186440 A JP H02186440A
- Authority
- JP
- Japan
- Prior art keywords
- micro
- address
- subroutine
- main
- value
- 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
【発明の詳細な説明】
【産業上の利用分野J
本発明は、計算機の機械語命令を解釈・実行するために
使用されるマイクロプログラムの制御方式に係り、特に
共通に利用できるマイクロプログラムをサブルーチン化
し制御・実行するためにマイクロプログラムのアドレス
を生成するのに好適なマイクロサブルーチンのシーケン
ス制御方式に関する。 [従来の技術1 マイクロプログラムを共通化して利用する場合の制御方
式に関して、従来からいくつかの方式が知られている。 例えば、主プログラムルーチンからサブルーチンを呼出
した場合、戻りアドレスを退避し、サブルーチンの実行
アドレスを生成してそのアドレスへ処理を移し、サブル
ーチン処理終了後に退避アドレスを回復し、主プログラ
ムルーチンに戻るという、計算機の機械語命令のプログ
ラムで通常使われているようなプログラムのサブルーチ
ン化方式と同様の方式がマイクロプログラムのサブルー
チンにおいても考えられている。その他の方法に関して
も1文献1:萩原宏、「マイクロプログラミングJ 、
pp、35〜68.産業図書、1977あるいは文献2
:元岡達編、rVLsIコンピュータTJ 、Pp、9
7〜147.岩波書店、1984などに述べられている
。 マイクロプログラム制御の場合、制御記憶からのマイク
ロ命令の読出しには高速性が要求される。 従って、読出すマイクロプログラムのアドレスの生成に
も高速性が要求される。通常の機械語命令のプログラム
のシーケンス制御のようにプログラムカウンタを設け、
アドレス演算器を介してアドレス計算を行なってから読
出しアドレスを生成し、読出すような方式を採用すると
分岐先マイクロ命令を読出すには余分な遅延を生じてし
まう。あらかじめ分岐先アドレレスを計算して実行する
マイクロ命令を読出しておくなどによって高速化できる
が、マイクロ制御専用のアドレス演算器その他のハード
ウェア量が増える。 そこで、マイクロプログラl、制御の場合には。 現在のマイクロ命令において次マイクロ命令の実行アド
レスを直接指示するシーケンス制御フィールド部(アド
レス・ポインタ)を設けるものが考えられている。 [発明が解決しようとする課題1 次マイクロ命令の実行アドレスを現在のマイクロ命令の
シーケンス制御指定部で直接指示するアドレス・ポイン
タ方式は、マイクロサブルーチンを呼び出す場合には、
マイクロサブルーチンへのアドレス・ポインタのほかに
もう1つ主マイクロルーチンへの戻りアドレス・ポイン
タを与えるために、余分なフィールドが必要となり、マ
イクロ命令のフィールド長を増加させることになる。こ
のようにマイクロROMの容量増をまねくということは
、マイクロROMの容量を削減するためにマイクロサブ
ルーチンを設けるという本来の目的と矛盾することにな
る。 本発明の目的は、マイクロサブルーチンを呼び出すため
に生じる余分なフィールドを作らないシーケンス制御方
式を提供することにある。 【課題を解決するための手段1 上記目的は、次マイクロ命令へのアドレス・ポインタ(
マイクロサブルーチンからの戻りアドレス・ポインタ)
と呼び出すマイクロサブルーチンへのアドレス・ポイン
タのフィールドを重ねる手法によって、すなわち、次マ
イクロ命令へのアドレス・ポインタの値の一部をマスク
し、マスクした部分の値そのものをまず退避し、そして
マスクした部分の値をゼロとしたアドレスをマイクロサ
ブルーチンへのアドレス・ポインタとすることによって
、また、マイクロサブルーチンから戻るときは、退避ア
ドレスをFiJf!!シて戻りアドレスを求めて設定す
る手段によって達成されろ。 【作用] 上記手段によって、マイクロサブルーチンの7ドレスと
戻りマイクロルーチンのアドレスのフィールド部を共有
化することができるので、シーケンス制御部のフィール
ド長を節約できる。 【実施例】 以下、本発明の一実施例を図面により説明する。 第1図は1機械語命令やデータが格納されている主メモ
リ110とそれに接続されている中央演算処理装置(C
PU)100の構成を示している。 CPU100は、主メモリ110に格納されている機械
語命令を命令フェッチ部120にフェッチし、命令デコ
ード部130でデコードし、該当する命令を実行制御す
るマイクロプログラムのROMアドレス160を生成す
る。このマイクロアドレスによって、マイクロ命令がマ
イクロROM 200から読出され、マイクロデコーダ
150でデコードされ、CPU内の演算実行部170に
対する制御信号151が出される。また、マイクロ命令
自体のシーケンスが制御される。 第2図は、マイクロROM200内のマイクロ命令形式
の内容を示しており、各マイクロ命令フィールドはハー
ドウェア・リソース(主に演算実行部)を制御するため
の制御信号指定部220と次マイクロ命令のシーケンス
を制御するためのシーケンス制御指定部230に大きく
分かれている。 現在のマイクロ命令のアドレスとしてAaを指定すると
1次マイクロ命令へのアドレス・ポインタ210の内容
はAbを指している。また、現在のアドレスAaのマイ
クロ命令は、マイクロサブルーチンAOを呼び出すよう
にS指定240されている。 マイクロサブルーチンAOを呼び出すために。 第3図に示すように次アドレスAbの一部212をマス
ク(310)L、その値を退避しく300)、マスクさ
れた部分212はゼロとする(■)。 すると、マイクロサブルーチンへのアドレスのポインタ
値はAOを指すことになる。従って、アドレスAOのマ
イクロ命令を呼び出すことができる。 アドレスAOのマイクロ命令の次は、そのアドレス・ポ
インタの内容からアドレスA]、のマイクロ命令が実行
される。このマイクロ命令は、マイクロサブルーチンの
命令終了指示e241によって。 退避していたマスク値300を回復し、戻りアドレスA
bを求めCt:>、アドレスAbのマイクロ命令を次に
実行することによって、主マイクロルーチンへ戻ること
ができる。アドレスA、 cとAdのマイクロ命令も同
様にアドレスAOのマイクロサブルーチン命令を呼び出
す。従って、マイクロ命令AOは複数のマイクロ命令か
ら共通に呼び出すことができる。 この共通のマイクロサブルーチンを呼び出すことができ
る主マイクロルーチンの数は、次マイクロ命令のアドレ
ス・ポインタ値をマスクするときのマスク幅に依存する
(310)。すなわち、マスク幅をmビットとすtば、
21個のマイクロ命令が同じ類に入ることになり、ここ
ではこれを1つのセグメント!b位Aとして考えること
にする。 このセグメントA内では、共通マイクロサブルーチンの
開始と終了にそれぞれ1個、およびこれを呼び出す主マ
イクロルーチンと戻りマイクロルーチンのためにそれぞ
れ1個が0組必要である。ここで、nは呼び出すマイク
ロルーチンの数とする。 従って、このnの値は、2 (1+n>=2”から、1
=’)”+’ 1個となる。 この原理を使って応用する場合、マスク幅を決める基準
として、共通マイクロサブルーチンを呼び出す主マイク
ロルーチンの最大数によって決める方法、複数個のマス
ク値を選択できるようにする場合などいくつかの変形が
考えられる。ところで、上記の原理は2次の理由で共通
マイクロサブルーチンのステップ数と主マイクロルーチ
ンのステップ数には依存しないことがわかる。 マイクロサブルーチンのステップ数が2より多い場合に
は、第4図に示すように、セグメントAの外のセグメン
トB4O0のアドレスBxへアドレスAOから飛ぶよう
にし、任意のステップをセグメントB4O0あるいはそ
の他のセグメントで実現し、マイクロサブルーチンの終
了ステップ。 アドレスA1は、再びセグメントAの中へ戻るように実
現することで可能となる。主マイクロルーチンに関して
も同様に考えることができる。すなわち、マイクロサブ
ルーチン呼び出しステップとその戻りステップは、セグ
メントA内で実況し、それ以上のステ、ツブはセグメン
トへの外のセグメントB4O0あるいはその他のセグメ
ン1〜で実現する。 r発明の効果】 本発明によれば、次マイクロ命令のアドレスをマイクロ
フィールドで直接指示するシーケンス制御を行なうマイ
クロプログラム制御方式を採用する場合、共通マイクロ
サブルーチンを扱うときに問題となるシーケンス制御の
フィールド長の増加を押えることができ、共通化による
本来の、意味でのマイクロROM容量の削減を達成する
ことができる。
使用されるマイクロプログラムの制御方式に係り、特に
共通に利用できるマイクロプログラムをサブルーチン化
し制御・実行するためにマイクロプログラムのアドレス
を生成するのに好適なマイクロサブルーチンのシーケン
ス制御方式に関する。 [従来の技術1 マイクロプログラムを共通化して利用する場合の制御方
式に関して、従来からいくつかの方式が知られている。 例えば、主プログラムルーチンからサブルーチンを呼出
した場合、戻りアドレスを退避し、サブルーチンの実行
アドレスを生成してそのアドレスへ処理を移し、サブル
ーチン処理終了後に退避アドレスを回復し、主プログラ
ムルーチンに戻るという、計算機の機械語命令のプログ
ラムで通常使われているようなプログラムのサブルーチ
ン化方式と同様の方式がマイクロプログラムのサブルー
チンにおいても考えられている。その他の方法に関して
も1文献1:萩原宏、「マイクロプログラミングJ 、
pp、35〜68.産業図書、1977あるいは文献2
:元岡達編、rVLsIコンピュータTJ 、Pp、9
7〜147.岩波書店、1984などに述べられている
。 マイクロプログラム制御の場合、制御記憶からのマイク
ロ命令の読出しには高速性が要求される。 従って、読出すマイクロプログラムのアドレスの生成に
も高速性が要求される。通常の機械語命令のプログラム
のシーケンス制御のようにプログラムカウンタを設け、
アドレス演算器を介してアドレス計算を行なってから読
出しアドレスを生成し、読出すような方式を採用すると
分岐先マイクロ命令を読出すには余分な遅延を生じてし
まう。あらかじめ分岐先アドレレスを計算して実行する
マイクロ命令を読出しておくなどによって高速化できる
が、マイクロ制御専用のアドレス演算器その他のハード
ウェア量が増える。 そこで、マイクロプログラl、制御の場合には。 現在のマイクロ命令において次マイクロ命令の実行アド
レスを直接指示するシーケンス制御フィールド部(アド
レス・ポインタ)を設けるものが考えられている。 [発明が解決しようとする課題1 次マイクロ命令の実行アドレスを現在のマイクロ命令の
シーケンス制御指定部で直接指示するアドレス・ポイン
タ方式は、マイクロサブルーチンを呼び出す場合には、
マイクロサブルーチンへのアドレス・ポインタのほかに
もう1つ主マイクロルーチンへの戻りアドレス・ポイン
タを与えるために、余分なフィールドが必要となり、マ
イクロ命令のフィールド長を増加させることになる。こ
のようにマイクロROMの容量増をまねくということは
、マイクロROMの容量を削減するためにマイクロサブ
ルーチンを設けるという本来の目的と矛盾することにな
る。 本発明の目的は、マイクロサブルーチンを呼び出すため
に生じる余分なフィールドを作らないシーケンス制御方
式を提供することにある。 【課題を解決するための手段1 上記目的は、次マイクロ命令へのアドレス・ポインタ(
マイクロサブルーチンからの戻りアドレス・ポインタ)
と呼び出すマイクロサブルーチンへのアドレス・ポイン
タのフィールドを重ねる手法によって、すなわち、次マ
イクロ命令へのアドレス・ポインタの値の一部をマスク
し、マスクした部分の値そのものをまず退避し、そして
マスクした部分の値をゼロとしたアドレスをマイクロサ
ブルーチンへのアドレス・ポインタとすることによって
、また、マイクロサブルーチンから戻るときは、退避ア
ドレスをFiJf!!シて戻りアドレスを求めて設定す
る手段によって達成されろ。 【作用] 上記手段によって、マイクロサブルーチンの7ドレスと
戻りマイクロルーチンのアドレスのフィールド部を共有
化することができるので、シーケンス制御部のフィール
ド長を節約できる。 【実施例】 以下、本発明の一実施例を図面により説明する。 第1図は1機械語命令やデータが格納されている主メモ
リ110とそれに接続されている中央演算処理装置(C
PU)100の構成を示している。 CPU100は、主メモリ110に格納されている機械
語命令を命令フェッチ部120にフェッチし、命令デコ
ード部130でデコードし、該当する命令を実行制御す
るマイクロプログラムのROMアドレス160を生成す
る。このマイクロアドレスによって、マイクロ命令がマ
イクロROM 200から読出され、マイクロデコーダ
150でデコードされ、CPU内の演算実行部170に
対する制御信号151が出される。また、マイクロ命令
自体のシーケンスが制御される。 第2図は、マイクロROM200内のマイクロ命令形式
の内容を示しており、各マイクロ命令フィールドはハー
ドウェア・リソース(主に演算実行部)を制御するため
の制御信号指定部220と次マイクロ命令のシーケンス
を制御するためのシーケンス制御指定部230に大きく
分かれている。 現在のマイクロ命令のアドレスとしてAaを指定すると
1次マイクロ命令へのアドレス・ポインタ210の内容
はAbを指している。また、現在のアドレスAaのマイ
クロ命令は、マイクロサブルーチンAOを呼び出すよう
にS指定240されている。 マイクロサブルーチンAOを呼び出すために。 第3図に示すように次アドレスAbの一部212をマス
ク(310)L、その値を退避しく300)、マスクさ
れた部分212はゼロとする(■)。 すると、マイクロサブルーチンへのアドレスのポインタ
値はAOを指すことになる。従って、アドレスAOのマ
イクロ命令を呼び出すことができる。 アドレスAOのマイクロ命令の次は、そのアドレス・ポ
インタの内容からアドレスA]、のマイクロ命令が実行
される。このマイクロ命令は、マイクロサブルーチンの
命令終了指示e241によって。 退避していたマスク値300を回復し、戻りアドレスA
bを求めCt:>、アドレスAbのマイクロ命令を次に
実行することによって、主マイクロルーチンへ戻ること
ができる。アドレスA、 cとAdのマイクロ命令も同
様にアドレスAOのマイクロサブルーチン命令を呼び出
す。従って、マイクロ命令AOは複数のマイクロ命令か
ら共通に呼び出すことができる。 この共通のマイクロサブルーチンを呼び出すことができ
る主マイクロルーチンの数は、次マイクロ命令のアドレ
ス・ポインタ値をマスクするときのマスク幅に依存する
(310)。すなわち、マスク幅をmビットとすtば、
21個のマイクロ命令が同じ類に入ることになり、ここ
ではこれを1つのセグメント!b位Aとして考えること
にする。 このセグメントA内では、共通マイクロサブルーチンの
開始と終了にそれぞれ1個、およびこれを呼び出す主マ
イクロルーチンと戻りマイクロルーチンのためにそれぞ
れ1個が0組必要である。ここで、nは呼び出すマイク
ロルーチンの数とする。 従って、このnの値は、2 (1+n>=2”から、1
=’)”+’ 1個となる。 この原理を使って応用する場合、マスク幅を決める基準
として、共通マイクロサブルーチンを呼び出す主マイク
ロルーチンの最大数によって決める方法、複数個のマス
ク値を選択できるようにする場合などいくつかの変形が
考えられる。ところで、上記の原理は2次の理由で共通
マイクロサブルーチンのステップ数と主マイクロルーチ
ンのステップ数には依存しないことがわかる。 マイクロサブルーチンのステップ数が2より多い場合に
は、第4図に示すように、セグメントAの外のセグメン
トB4O0のアドレスBxへアドレスAOから飛ぶよう
にし、任意のステップをセグメントB4O0あるいはそ
の他のセグメントで実現し、マイクロサブルーチンの終
了ステップ。 アドレスA1は、再びセグメントAの中へ戻るように実
現することで可能となる。主マイクロルーチンに関して
も同様に考えることができる。すなわち、マイクロサブ
ルーチン呼び出しステップとその戻りステップは、セグ
メントA内で実況し、それ以上のステ、ツブはセグメン
トへの外のセグメントB4O0あるいはその他のセグメ
ン1〜で実現する。 r発明の効果】 本発明によれば、次マイクロ命令のアドレスをマイクロ
フィールドで直接指示するシーケンス制御を行なうマイ
クロプログラム制御方式を採用する場合、共通マイクロ
サブルーチンを扱うときに問題となるシーケンス制御の
フィールド長の増加を押えることができ、共通化による
本来の、意味でのマイクロROM容量の削減を達成する
ことができる。
第1図は本発明を構成するマイクロプロセッサの全体を
示すブロック図、第2図は本発明の実施例のマイクロR
OM内のフィールド構成を示す説明図、第3図は本発明
の実施例のマイクロサブルーチンのアドレス生成と戻り
アドレスの退避・回復を示す説明図、第4図は本発明の
実施例のマイクロサブルーチンのセグメント拡張方式の
説明図である。 符号の説明 ]、、 OO・・・中央演算処理袋ffl (CPU)
、110・・主メモリ、1.11・・・アドレス・バス
、112・・・データ・バス、120・・・命令フェッ
チ部、130・・・命令デコード部、150・・・マイ
クロデコーダ、151・・・演算実行部制御信号、16
0・・・マイクロアドレス格納レジスタ、170・・・
演算実行部、181.1.82・・・セレクタ、200
・・・マイクロプログラム記憶部(マイクロR,OM)
、210・・・次マイクロアドレス指示部、211・・
・マイクロセグメントのアドレス指示部、212・・・
マイクロアドレスのマスク指定部、220・・・制御信
号指定部、230・・・マイクロシーケンス制御指定部
、240・・・マイクロサブルーチン呼び出し指定ビッ
ト、241・・・マイクロサブルーチン戻り指定ビット
、300・・・マスク部の退避レジスタ、310・・・
マイクロアドレス・マスク部、400・・・マイクロア
ドレスの拡張セグメンナト部 第2図 マイクロプログラム記憶部(マイクロROM)第3図 (3戻リアドレスの回復 A b 第4図
示すブロック図、第2図は本発明の実施例のマイクロR
OM内のフィールド構成を示す説明図、第3図は本発明
の実施例のマイクロサブルーチンのアドレス生成と戻り
アドレスの退避・回復を示す説明図、第4図は本発明の
実施例のマイクロサブルーチンのセグメント拡張方式の
説明図である。 符号の説明 ]、、 OO・・・中央演算処理袋ffl (CPU)
、110・・主メモリ、1.11・・・アドレス・バス
、112・・・データ・バス、120・・・命令フェッ
チ部、130・・・命令デコード部、150・・・マイ
クロデコーダ、151・・・演算実行部制御信号、16
0・・・マイクロアドレス格納レジスタ、170・・・
演算実行部、181.1.82・・・セレクタ、200
・・・マイクロプログラム記憶部(マイクロR,OM)
、210・・・次マイクロアドレス指示部、211・・
・マイクロセグメントのアドレス指示部、212・・・
マイクロアドレスのマスク指定部、220・・・制御信
号指定部、230・・・マイクロシーケンス制御指定部
、240・・・マイクロサブルーチン呼び出し指定ビッ
ト、241・・・マイクロサブルーチン戻り指定ビット
、300・・・マスク部の退避レジスタ、310・・・
マイクロアドレス・マスク部、400・・・マイクロア
ドレスの拡張セグメンナト部 第2図 マイクロプログラム記憶部(マイクロROM)第3図 (3戻リアドレスの回復 A b 第4図
Claims (1)
- 【特許請求の範囲】 1、情報処理システムは機械語命令を解釈・実行するた
めに、マイクロプログラム制御で実現され、該マイクロ
プログラム制御で実行されるマイクロ命令のシーケンス
を制御するフィールド部において、次マイクロ命令のア
ドレスを直接指示するように制御する手段を設け、複数
の主マイクロルーチンが共通に利用するマイクロ・サブ
ルーチンを呼び出す場合、マイクロサブルーチンを呼び
出す主マイクロルーチンのシーケンス制御フィールド部
は主マイクロルーチンへの戻りアドレスを指示し、戻り
アドレス値の一部をマスクし、マスクした値を退避し、
マスクした部分は値をゼロとしてマイクロサブルーチン
へのアドレスが生成され、該マイクロサブルーチンの終
了時に退避したマスク値を回復し、主マイクロルーチン
への戻りアドレスを生成する手段を設けることにより、
マイクロシーケンス制御のためのフィールド長を節約す
ることを特徴とするマイクロサブルーチンのシーケンス
制御方式。 2、上記主マイクロルーチンへの戻りアドレスの値の一
部をマスクする手段において、マスクする幅を1つまた
は2種類以上設けてマイクロルーチンの最適な共通制御
をすることを特徴とする請求項第1項記載のマイクロサ
ブルーチンのシーケンス制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP499389A JPH02186440A (ja) | 1989-01-13 | 1989-01-13 | マイクロサブルーチンのシーケンス制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP499389A JPH02186440A (ja) | 1989-01-13 | 1989-01-13 | マイクロサブルーチンのシーケンス制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02186440A true JPH02186440A (ja) | 1990-07-20 |
Family
ID=11599130
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP499389A Pending JPH02186440A (ja) | 1989-01-13 | 1989-01-13 | マイクロサブルーチンのシーケンス制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02186440A (ja) |
-
1989
- 1989-01-13 JP JP499389A patent/JPH02186440A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0220684B1 (en) | Data processing system | |
| US4833640A (en) | Register bank change including register to register transfer in a data processing system | |
| JPS62197830A (ja) | デ−タ処理システム | |
| JPH0248931B2 (ja) | ||
| JPS6259812B2 (ja) | ||
| JPH0348537B2 (ja) | ||
| JPS645330B2 (ja) | ||
| JPH01161442A (ja) | レジスタ退避・回復方式 | |
| JPS6212529B2 (ja) | ||
| US5390306A (en) | Pipeline processing system and microprocessor using the system | |
| JPS63279328A (ja) | 仮想計算機システムのゲスト実行制御方式 | |
| JPH02186440A (ja) | マイクロサブルーチンのシーケンス制御方式 | |
| JPS63268033A (ja) | データ処理装置 | |
| JPS6217773B2 (ja) | ||
| JPH0377137A (ja) | 情報処理装置 | |
| JPS58200349A (ja) | マイクロプログラム制御装置 | |
| JP3140028B2 (ja) | サブルーチンの引数の受け渡し方式 | |
| JP2743947B2 (ja) | マイクロプログラム制御方式 | |
| JP2637070B2 (ja) | マイクロ命令先頭アドレス生成方式 | |
| JPS5842891B2 (ja) | メイレイセイギヨホウシキ | |
| JPS63120336A (ja) | メモリアクセスモ−ド切替え方式 | |
| JPS61145643A (ja) | 可変語長命令処理方式 | |
| JPS6227827A (ja) | マイクロプログラムの分岐制御方式 | |
| JPS6366637A (ja) | 情報処理装置 | |
| JPH028330B2 (ja) |