JPS62221035A - マイクロプログラム制御方式 - Google Patents
マイクロプログラム制御方式Info
- Publication number
- JPS62221035A JPS62221035A JP6301186A JP6301186A JPS62221035A JP S62221035 A JPS62221035 A JP S62221035A JP 6301186 A JP6301186 A JP 6301186A JP 6301186 A JP6301186 A JP 6301186A JP S62221035 A JPS62221035 A JP S62221035A
- Authority
- JP
- Japan
- Prior art keywords
- address
- subroutine
- register
- routine
- microinstruction
- 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
- 230000009191 jumping Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明はマイクロプログラム制御方式に関し、特にサブ
ルーチンコール命令を実行する際のマイクロプログラム
制御方式に関する。
ルーチンコール命令を実行する際のマイクロプログラム
制御方式に関する。
従来技術
従来のマイクロプログラムにより制御される情報処理シ
ステムでは、主ルーチン中のサブルーチンコール命令あ
るいはサブルーチン中のサブルーチンコール命令を実行
する場合、サブルーチンコール命令に付随する飛び先ア
ドレスを次に実行するマイクロ命令のアドレスに置き換
え、戻りアドレスを退避レジスタへスタックしていた。
ステムでは、主ルーチン中のサブルーチンコール命令あ
るいはサブルーチン中のサブルーチンコール命令を実行
する場合、サブルーチンコール命令に付随する飛び先ア
ドレスを次に実行するマイクロ命令のアドレスに置き換
え、戻りアドレスを退避レジスタへスタックしていた。
そして、サブルーチンの終わりでリターン命令を実行す
るとき、スタックされている戻りアドレスを退避レジス
タより取出し、次に実行するマイクロ命令のアドレスに
置き換えていた。
るとき、スタックされている戻りアドレスを退避レジス
タより取出し、次に実行するマイクロ命令のアドレスに
置き換えていた。
第4図を参照して上記動作を説明すると、ルーチンAの
処理中にアドレスaのサブルーチンコール命令を実行す
るとき、a+1をルーチンへの戻りアドレスとして退避
レジスタに退避させ、ルーチンBに処理を移行する。ル
ーチンBの処理中にアドレスbのサブルーチンコール命
令を実行するとき、b+iをルーチンBの戻りアドレス
として退避レジスタに退避させ、ルーチンCに処理を移
行する。そしてルーチンCの処理が終了すると、退避レ
ジスタからアドレスb+1を取り出し、ルーチンBの続
きから処理を行う。更にルーチンBの処理が終了すると
、退避レジスタからアドレスa+1を取り出し、ルーチ
ンAの続きから処理を行う。
処理中にアドレスaのサブルーチンコール命令を実行す
るとき、a+1をルーチンへの戻りアドレスとして退避
レジスタに退避させ、ルーチンBに処理を移行する。ル
ーチンBの処理中にアドレスbのサブルーチンコール命
令を実行するとき、b+iをルーチンBの戻りアドレス
として退避レジスタに退避させ、ルーチンCに処理を移
行する。そしてルーチンCの処理が終了すると、退避レ
ジスタからアドレスb+1を取り出し、ルーチンBの続
きから処理を行う。更にルーチンBの処理が終了すると
、退避レジスタからアドレスa+1を取り出し、ルーチ
ンAの続きから処理を行う。
上述した従来の情報処理システムでは、主ルーチン中で
サブルーチンコール命令を、あるいはサブルーチン中で
サブルーチンコール命令を実行するとぎ戻りアドレスを
予めハードウェアで準備した戻りアドレスレジスタに退
避する必要があるので、サブルーチン中で他のサブルー
チンをコールする様な多重サブルーチンコールを行う場
合、連続してサブルーチンコールができる回数は戻りア
ドレスレジスタの数により制限されることになる。
サブルーチンコール命令を、あるいはサブルーチン中で
サブルーチンコール命令を実行するとぎ戻りアドレスを
予めハードウェアで準備した戻りアドレスレジスタに退
避する必要があるので、サブルーチン中で他のサブルー
チンをコールする様な多重サブルーチンコールを行う場
合、連続してサブルーチンコールができる回数は戻りア
ドレスレジスタの数により制限されることになる。
従って、多重サブルーチンコールの多重度を増やすと、
それに比例して戻りレジスタの数も増加させなければな
らないことになり、よって高価なものになってしまうと
いう欠点がある。
それに比例して戻りレジスタの数も増加させなければな
らないことになり、よって高価なものになってしまうと
いう欠点がある。
発明の目的
本発明の目的は、戻りアドレス退避用のレジスタの数に
よりサブルーチンコールの多重度が何等制限されること
のないマイクロプログラム制御方式を提供することであ
る。
よりサブルーチンコールの多重度が何等制限されること
のないマイクロプログラム制御方式を提供することであ
る。
発明の構成
本発明によるマイクロプログラム制御方式は、サブルー
チンへの入口アドレスに対して予め定められた数を加算
してこのサブルーチンの出口アドレスを求める出口アド
レス演算手段と、前記サブルーチンから戻るべきルーチ
ンへのブランチ命令を予め格納するブランチ命令格納手
段と、前記出口アドレス演算手段により求められた出口
アドレスが指すメモリ内番地へ前記ブランチ命令格納手
段内のブランチ命令を書込む傷込み手段とを設け、前記
サブルーチンのコール命令の実行に際して、前記サブル
ーチンの出口アドレスにおけるマイクロ命令をゼンキ書
込み手段により書込んでから前記サブルーチンの実−行
を行うようにしたことを特徴としている。
チンへの入口アドレスに対して予め定められた数を加算
してこのサブルーチンの出口アドレスを求める出口アド
レス演算手段と、前記サブルーチンから戻るべきルーチ
ンへのブランチ命令を予め格納するブランチ命令格納手
段と、前記出口アドレス演算手段により求められた出口
アドレスが指すメモリ内番地へ前記ブランチ命令格納手
段内のブランチ命令を書込む傷込み手段とを設け、前記
サブルーチンのコール命令の実行に際して、前記サブル
ーチンの出口アドレスにおけるマイクロ命令をゼンキ書
込み手段により書込んでから前記サブルーチンの実−行
を行うようにしたことを特徴としている。
実施例
次に本発明について図面を参照して説明する。
第1図は本発明の実施例を示すブロック図である。次(
Next )アドレスレジスタ1は、メモリ3から読み
出されたマイクロ命令がブランチ系の命令であるとき、
それに付随する次に実行すべきマイクロ命令のアドレス
を保持するレジスタである。
Next )アドレスレジスタ1は、メモリ3から読み
出されたマイクロ命令がブランチ系の命令であるとき、
それに付随する次に実行すべきマイクロ命令のアドレス
を保持するレジスタである。
メモリ3はマイクロプログラムを格納するRAMであり
、ブランチ命令レジスタ4は主ルーチンあるいはサブル
ーチンを実行中にサブルーチンコール命令を実行すると
きに、元のルーチンへの戻りアドレスへ処理を移行する
ためのブランチ命令を保持するレジスタである。上記の
ブランチ命令を作成する為にこのレジスタ4には予めブ
ランチ命令のコード41が設定されており、サブルーチ
ンコール命令読み出し時の現(Current )アド
レスレジスタ8のアドレスに所定値(本例では1)を加
算した値が元のルーチンへの戻りアドレスとしてアドレ
ス部42に格納される。
、ブランチ命令レジスタ4は主ルーチンあるいはサブル
ーチンを実行中にサブルーチンコール命令を実行すると
きに、元のルーチンへの戻りアドレスへ処理を移行する
ためのブランチ命令を保持するレジスタである。上記の
ブランチ命令を作成する為にこのレジスタ4には予めブ
ランチ命令のコード41が設定されており、サブルーチ
ンコール命令読み出し時の現(Current )アド
レスレジスタ8のアドレスに所定値(本例では1)を加
算した値が元のルーチンへの戻りアドレスとしてアドレ
ス部42に格納される。
メモリリードセレクタ5はメモリ3から読み出された4
個の連続するアドレスのマイクロ命令を選択するセレク
タであり、メモリリードレジスタ6は上記のメモリリー
ドセレクタ5によって選択されたマイクロ命令を保持す
るレジスタである。
個の連続するアドレスのマイクロ命令を選択するセレク
タであり、メモリリードレジスタ6は上記のメモリリー
ドセレクタ5によって選択されたマイクロ命令を保持す
るレジスタである。
アドレスセレクタ7は次アドレスレジスタ1、現アドレ
スレジスタ8及びインクリメントアドレスレジスタ10
から現マイクロ命令の読み出しアドレスを選択するセレ
クタであり、現アドレスレジスタ8はアドレスセレクタ
7で選択された現マイクロ命令の読み出しを保持するレ
ジスタである。
スレジスタ8及びインクリメントアドレスレジスタ10
から現マイクロ命令の読み出しアドレスを選択するセレ
クタであり、現アドレスレジスタ8はアドレスセレクタ
7で選択された現マイクロ命令の読み出しを保持するレ
ジスタである。
ALU9はアドレスセレクタ7で選択された現マイクロ
命令の読み出しアドレスに前)ホした所定値(本例では
1)を加算する演算器であり、インクリメントレジスタ
10はアドレスセレクタ7で選択されたアドレスにAL
U9で所定値である1を加算したアドレスを保持するレ
ジスタである。
命令の読み出しアドレスに前)ホした所定値(本例では
1)を加算する演算器であり、インクリメントレジスタ
10はアドレスセレクタ7で選択されたアドレスにAL
U9で所定値である1を加算したアドレスを保持するレ
ジスタである。
かかる構成とすることにより、ナブル−チンコール命令
実行時にサブルーチンコール命令に付随する飛び先アド
レス(サブルーチンの入口アドレス)がアドレスセレク
タ5を経て次アドレスレジスタ1に格納され、そのアド
レスに予め定められた値(ここでは1とする)がALt
J9で加算された結果得られるアドレス(サブルーチン
の出口アドレス)に、ブランチ命令レジスタ4のマイク
ロ命令41が書き込まれることにより、元のルーチンへ
の戻りアドレスを退避するレジスタを省略することがで
きることになるのである。従って、サブルーチンの中で
サブルーチンコールするといった多重サブルーチンコー
ルを無制限に実施することができることになる。
実行時にサブルーチンコール命令に付随する飛び先アド
レス(サブルーチンの入口アドレス)がアドレスセレク
タ5を経て次アドレスレジスタ1に格納され、そのアド
レスに予め定められた値(ここでは1とする)がALt
J9で加算された結果得られるアドレス(サブルーチン
の出口アドレス)に、ブランチ命令レジスタ4のマイク
ロ命令41が書き込まれることにより、元のルーチンへ
の戻りアドレスを退避するレジスタを省略することがで
きることになるのである。従って、サブルーチンの中で
サブルーチンコールするといった多重サブルーチンコー
ルを無制限に実施することができることになる。
以後、上1本の動作を第2図及び第3図に従って説明す
る。第2図に示すようにルーチン1を実行中にアドレス
八でサブルーチンコール命令が検出されると、それに付
随する飛び先アドレス(サブルーチンの入口アドレス)
Bが第3図に示すタイミングT1で次アドレスレジスタ
1に保持される。
る。第2図に示すようにルーチン1を実行中にアドレス
八でサブルーチンコール命令が検出されると、それに付
随する飛び先アドレス(サブルーチンの入口アドレス)
Bが第3図に示すタイミングT1で次アドレスレジスタ
1に保持される。
このとき現マイクロ命令の読み出しアドレスAはALU
9で1加算された侵、インクリメントレジスタ10にル
ーチン1への戻りアドレスとして保持される。次に、タ
イミングT2でインクリメントレジスタ10に保持され
たルーチン1への戻りアドレスがブランチ命令レジスタ
4のアドレス部42へ書き込まれる。また、メモリリー
ドレジスタ6にはルーチン2の入口アドレスBのマイク
ロ命令が読出され、アドレスセレクタ7はイクリメント
レジスタ10(アドレス=8+1)を選択する。タイミ
ングT3ではメモリリードレジスタ6に読出されたマイ
クロ命令が実行される為、メモリ3のアドレス<8+1
)(ルーチン2の出口アドレスに相当)にブランチ命令
レジスタ4の内容(ルーチン1への戻りアドレスへのブ
ランチ命令)が書き込まれる。以後B+2.8+3と順
にマイクロ命令が実行され、ルーチン2の出口アドレス
(B+1)のマイクロ命令を実行することによりルーチ
ン1への戻りアドレス(A+1)に処理が移行するので
ある。
9で1加算された侵、インクリメントレジスタ10にル
ーチン1への戻りアドレスとして保持される。次に、タ
イミングT2でインクリメントレジスタ10に保持され
たルーチン1への戻りアドレスがブランチ命令レジスタ
4のアドレス部42へ書き込まれる。また、メモリリー
ドレジスタ6にはルーチン2の入口アドレスBのマイク
ロ命令が読出され、アドレスセレクタ7はイクリメント
レジスタ10(アドレス=8+1)を選択する。タイミ
ングT3ではメモリリードレジスタ6に読出されたマイ
クロ命令が実行される為、メモリ3のアドレス<8+1
)(ルーチン2の出口アドレスに相当)にブランチ命令
レジスタ4の内容(ルーチン1への戻りアドレスへのブ
ランチ命令)が書き込まれる。以後B+2.8+3と順
にマイクロ命令が実行され、ルーチン2の出口アドレス
(B+1)のマイクロ命令を実行することによりルーチ
ン1への戻りアドレス(A+1)に処理が移行するので
ある。
以上説明したように、あるルーチンを実行中にサブルー
チンコール命令を実行するときに、当該ルーチンへの戻
りアドレスを退避させる為の専用7レジスタを設ける代
わりに、サブルーチンコール命令に付随する飛び先アド
レス(サブルーチンの入口アドレス)から予め定められ
たサブルーチンの出口アドレスを演算により求め、そこ
に当該ルーチンへの戻りアドレスへのブランチ命令を書
き込むようになっている。よって、従来サブルーチンコ
ール後の戻りアドレスを退避させる為に設けられていた
専用レジスタをなくすことができることになり、装置の
ハードウェア」及び原価を低減することができる。また
、これまで戻りアドレス退避用のレジスタの数により制
限されていたサブルーチン中でサブルーチンコールする
という多重サブルーチンコールの多重度が、本発明を採
用することにより無制限になるので、マイクロプログラ
ム設計の際にサブルーチンの使い方や数を全く気にせず
に設計することができるものである。
チンコール命令を実行するときに、当該ルーチンへの戻
りアドレスを退避させる為の専用7レジスタを設ける代
わりに、サブルーチンコール命令に付随する飛び先アド
レス(サブルーチンの入口アドレス)から予め定められ
たサブルーチンの出口アドレスを演算により求め、そこ
に当該ルーチンへの戻りアドレスへのブランチ命令を書
き込むようになっている。よって、従来サブルーチンコ
ール後の戻りアドレスを退避させる為に設けられていた
専用レジスタをなくすことができることになり、装置の
ハードウェア」及び原価を低減することができる。また
、これまで戻りアドレス退避用のレジスタの数により制
限されていたサブルーチン中でサブルーチンコールする
という多重サブルーチンコールの多重度が、本発明を採
用することにより無制限になるので、マイクロプログラ
ム設計の際にサブルーチンの使い方や数を全く気にせず
に設計することができるものである。
発明の効果
以上の如く、本発明によれば、サブルーチンの入口アド
レスから一定の値だけ加算されたアドレスをサブルーチ
ンの出口アドレスと定めておき、その出口アドレス部に
戻るべきルーチンへの戻りアドレスへのブランチ命令を
書き込むようにしているので、戻りアドレスを退避させ
るための専用レジスタを設ける必要がなくなる。よって
、多重サブルーチンの多重度が無制限となって、マイク
ロプログラムの設計の多重度が極めて大となるものであ
る。
レスから一定の値だけ加算されたアドレスをサブルーチ
ンの出口アドレスと定めておき、その出口アドレス部に
戻るべきルーチンへの戻りアドレスへのブランチ命令を
書き込むようにしているので、戻りアドレスを退避させ
るための専用レジスタを設ける必要がなくなる。よって
、多重サブルーチンの多重度が無制限となって、マイク
ロプログラムの設計の多重度が極めて大となるものであ
る。
第1図は本発明の実施例を示すブロック図、第2図は本
発明の実施例の動作を説明するためのサブルーチンの構
成の一例を示す図、第3図は第1図のブロック図におけ
るデータの流れの様子を示すタイミングチャート、第4
図は従来のマイクロプログラム制御方式を示す図である
。 主要部分の符号の説明 1・・・・・・次アドレスレジスタ 3・・・・・・メモリ 4・・・・・・ブランチ命令レジスタ 8・・・・・・現アドレスレジスタ 9・・・・・・ALU
発明の実施例の動作を説明するためのサブルーチンの構
成の一例を示す図、第3図は第1図のブロック図におけ
るデータの流れの様子を示すタイミングチャート、第4
図は従来のマイクロプログラム制御方式を示す図である
。 主要部分の符号の説明 1・・・・・・次アドレスレジスタ 3・・・・・・メモリ 4・・・・・・ブランチ命令レジスタ 8・・・・・・現アドレスレジスタ 9・・・・・・ALU
Claims (1)
- サブルーチンへの入口アドレスに対して予め定められた
数を加算してこのサブルーチンの出口アドレスを求める
出口アドレス演算手段と、前記サブルーチンから戻るべ
きルーチンへのブランチ命令を予め格納するブランチ命
令格納手段と、前記出口アドレス演算手段により求めら
れた出口アドレスが指すメモリ内番地へ前記ブランチ命
令格納手段内のブランチ命令を書込む書込み手段とを設
け、前記サブルーチンのコール命令の実行に際して、前
記サブルーチンの出口アドレスにおけるマイクロ命令を
前記書込み手段により書込んでから前記サブルーチンの
実行を行うようにしたことを特徴とするマイクロプログ
ラム制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6301186A JPS62221035A (ja) | 1986-03-20 | 1986-03-20 | マイクロプログラム制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6301186A JPS62221035A (ja) | 1986-03-20 | 1986-03-20 | マイクロプログラム制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62221035A true JPS62221035A (ja) | 1987-09-29 |
Family
ID=13216950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6301186A Pending JPS62221035A (ja) | 1986-03-20 | 1986-03-20 | マイクロプログラム制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62221035A (ja) |
-
1986
- 1986-03-20 JP JP6301186A patent/JPS62221035A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0087978B1 (en) | Information processing unit | |
US4594682A (en) | Vector processing | |
KR0138468B1 (ko) | 마이크로 컴퓨터 | |
GB1448866A (en) | Microprogrammed data processing systems | |
EP0074479A2 (en) | Data processing apparatus with intersegment call | |
US5261101A (en) | Method for calling and returning from subroutine that is invoked by either a near call or a far call | |
EP0144779B1 (en) | Parallel processing computer | |
JPH01310441A (ja) | データ処理装置 | |
EP0164418B1 (en) | Microprogram control system | |
EP0417916B1 (en) | Procedure state descriptor system for digital data processors | |
JPS62221035A (ja) | マイクロプログラム制御方式 | |
JPS62151940A (ja) | レジスタ退避/復帰方式 | |
KR970012141A (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
EP0079995B1 (en) | Information handling apparatus having an instruction-executing function at a high speed | |
KR100654477B1 (ko) | 프로세서 동작 방법 | |
JPH0731596B2 (ja) | 条件付きサブルーチン呼出し方式 | |
JPS62254237A (ja) | インタプリタ方式の分岐命令実行方式 | |
JPS6365978B2 (ja) | ||
JPS6198444A (ja) | 制御記憶システム | |
JPS6330938A (ja) | マイクロプログラム制御装置 | |
JPH0243626A (ja) | コンピュータ・プロセッサの実行速度を制御する装置 | |
JPS61208129A (ja) | 命令先読制御方式 | |
JPS5868159A (ja) | デ−タ処理装置 | |
JPH06100966B2 (ja) | マイクロプログラム制御装置 | |
JPS5935239A (ja) | マイクロプログラム制御方式 |