JPS62296231A - マイクロプログラム処理装置におけるサブル−チン処理方式 - Google Patents

マイクロプログラム処理装置におけるサブル−チン処理方式

Info

Publication number
JPS62296231A
JPS62296231A JP13913786A JP13913786A JPS62296231A JP S62296231 A JPS62296231 A JP S62296231A JP 13913786 A JP13913786 A JP 13913786A JP 13913786 A JP13913786 A JP 13913786A JP S62296231 A JPS62296231 A JP S62296231A
Authority
JP
Japan
Prior art keywords
address
subroutine
instruction
branch
control storage
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
JP13913786A
Other languages
English (en)
Inventor
Masao Koyabu
小藪 正夫
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13913786A priority Critical patent/JPS62296231A/ja
Publication of JPS62296231A publication Critical patent/JPS62296231A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 3、発明の詳細な説明 〔I既  要〕 マイクロプログラム処理を行う装置において、ブランチ
アンドリンク命令により指定されたザブルーチンを示す
情報により定められるアドレスにこのサブルーチン処理
方式したときに復帰すべき命令のコントロールストレー
ジにおける格納アドレスを指示するアドレスをストアす
るアドレススタックを設けることにより、このアドレス
スタックの制御装置を簡易化した。
(産業上の利用分野) コントロールストレージに格納されたブランチアンドリ
ンク命令を含むマイクロプログラムにより動作するマイ
クロプロセッサにおけるサブルーチンの処理方式に関す
る。
〔従来の技術〕
第4図は従来のマイクロプログラム処理装置の例を示す
ブロック図であって、コントロールストレージ11はプ
ロセッサを制?inするマイクロプログラムを格納して
おり、このコントロールストレージから命令を読出して
命令レジスタ15にフェッチするたびに加算器16によ
り1加算されるアドレスレジスタ12の値によりマイク
ロプログラムを構成する各命令が順次読出され、命令レ
ジスタ15にフェッチされている命令によりマイクロプ
ロセッサ13は順次処理を実行する。
アドレススタック14はサブルーチン処理の終了後にメ
インルーチンに復帰する際のリターンアドレスを格納す
るものであり、マイクロプログラムのサブルーチンを呼
出すブランチアンドリンク命令が上記コントロールスト
レージ11から読出されるとこの命令が命令レジスタ1
5にフェッチされると同時に上記アドレスレジスタ12
は加算器16によって+1され、初期値が“O”に設定
されるスタックポインタ17の値により指定される番地
、例えばO番地、に上記アドレスレジスタ12の値を書
込み、同時にスタックポインタ17の値は加減算器18
により+1されて例えば“1”となる。
すなわち、このスタックポインタ17の値は、呼出され
たサブルーチンのリターン命令が実行されてメインルー
チンに復帰する際のアドレススタック14に格納された
リターンアドレスの読出しアドレスとして用いられる。
このサブルーチンの処理中に別のサブルーチンをさらに
ブランチアンドリンク命令で呼出すと、スタックポイン
タ17より指定される番地、上述の例では1番地、にコ
ントロールストレージ11におけるこのブランチアンド
リンク命令の格納アドレスの次のアドレスが書込まれ、
同時にスタックポインタ17は加減算器18により+1
されて“2”となる。
このサブルーチンの処理が終了してリターン命令が実行
されると、スタックポインタ17は加減算器18により
−゛1されて“1”となり、アドレススタック14の1
番地からそこにストアされているアドレスによりコント
ロールストレージ11にアクセスして次の命令を読出し
て処理を続行する。
従来は、以上のようにスタックポインタおよび加減算器
を使用してアドレススタックにアクセスしてサブルーチ
ンの処理が行われている。
〔発明が解決しようとする問題点〕
このような従来の装置では、スタックポインタおよび加
減算器を必要とするのでハードウェアの構成が複雑にな
り論理ゲート数も増加するという問題があり、さらにメ
モリ素子の集禎度が向上するに伴って記tα容量の大き
いコントロールストレージが使用されるようになり、そ
のためこのコントロールストレージのアドレスの桁数が
増加してブランチアンドリンク命令などで指定すべきブ
ランチ先アドレスの桁数も増加し、命令の種類を示すフ
ィールドが滅失して命令の種類を増やすことが困難にな
るという問題が生じる。
〔問題点を解決するための手段〕
第1図は本発明の原理を示すブロック図であって、アド
レスレジスタ2により指定されたアドレスからマイクロ
プログラムの命令を読出してマイクロプロセッサ3に供
給して処理を実行させるコントロールストレージ1を含
むマイクロプログラム処理= 置において、コントロー
ルストレージ1からブランチアンドリンク命令が読出さ
れたときにこのブランチアンドリンク命令で指定された
サブルーチンを示す情報に基づく値をアドレスとして、
このサブルーチンが終了したときに復帰する命令の上記
コントロールストレージにおける格納アドレスをストア
するアドレススタック4を設りた。
〔作 用〕
本発明の原理を示す上述の第1図において、コントロー
ルストレージlはアドレスレジスタ2により指定された
アドレスからマイクロプログラムの命令を読出してマイ
クロプロセッサ3に供給して処理を実行させる。
このコントロールストレージ1からブランチアンドリン
ク命令が読出されると、アドレススタック4はこのブラ
ンチアンドリンク命令により指定されたサブルーチンカ
l冬了したときに復帰すべきアドレス、例えばこのブラ
ンチアンドリンク命令が格納されていたアドレスの次の
アドレス、をこのブランチアンドリンク命令により指定
されたサブルーチンを示す情報に基づく値、例えばサブ
ルーチンの番号あるいは符号、のアドレスにストアする
このサブル−チンが本冬了したときには、アドレススタ
ック4のこのサブルーチンを示す情報に基づく値のアド
レスから復帰すべきアドレスを読出してアドレスレジス
タ2に転送して、コントロールストレージ1のこのアド
レスから復帰したメインルーチンの命令を順次読出して
マイクロプロセッサ3に処理を続行させる。
なお、アドレスレジスタ2が、連続した命令を読出すた
めの加算回路などの周辺回路を備えることは第4図につ
いて説明したごとき従来のマイクロプログラム処理装置
と同様である。
〔実施例〕
第2図は本発明によるサブルーチン処理方式を通用した
マイクロプログラム処理装置の実施例を示すプロツク図
であり、第1図に示した原理図における構成要素に対応
する構成要素には同一の符号を付して示した。
コントロールストレージ1はアドレスレジスタ2によっ
て指示されたアドレスから命令を読出して命令レジスタ
5にこの命令をフェッチしてマイクロプロセッサ3にこ
の命令の処理を行わせるものであり、上記アドレスレジ
スタ2の値は、マイクロプロセッサ3がメインルーチン
を処理しているときには、コントロールストレージ1か
ら命令を読出して命令レジスタ5にこの命令をフェッチ
するたびに加算器6により+1され、これによりコント
ロールストレージ1からはメインルーチンの命令が順次
読出される。
サブルーチンへの分岐を指示するブランチアンドリンク
命令がコントロールストレージ1から読出されて命令レ
ジスタ5にフェッチされると同時にアドレスレジスタ2
の値は加算器6により+1されてこのブランチアンドリ
ンク命令の格納アドレスの次のアドレスの値となってお
り、この値はアドレスレジスタ2からアドレススタック
4に書込み情報として送出されている。一方、上記命令
レジスタ5にフェッチされている命令のオペランドから
ブランチ先のサブルーチンを示す情報が取り出され、例
えばこのサブルーチンを示す番号のアドレスに上記アド
レスレジスタ2から送出されたアドレスがストアされる
そして、このオペランドで指定されたサブルーチンの先
頭アドレスがアドレスレジスタ2に送られて、それ以降
加算器6によるアドレスレジスタ2のコントロールスト
レージlの読出しアドレスへの1の順次加算によりこの
ザブルーチンの命令がコントロールストレージ1から逐
次読出されることによってこのサブルーチンが実行され
、このサブルーチンの最後の命令であるリターン命令が
マイクロプロセッサ3に入力される。このリターン命令
のオペランドにはそのサブルーチン自体のサブルーチン
番号など、そのサブルーチンを識別する情報が指定され
でおり、命令レジスタ5にフェッチされたこのリターン
命令のオペランドに基づいてアドレススタック4にアク
セスすることにより読出したアドレスデータをアドレス
レジスタ2にセットすることにより復帰先命令を読出し
てメインルーチンに復帰させる。
第3図はサブルーチンの処理中にさらに他のサブルーチ
ンを呼出す場合を例として上記実施例の動作を概念的に
説明するためのものであって、同図(alはプログラム
の流れ、同図(blはアドレススタックの記憶内容を示
す。
第3図(alにおいて、メインルーチンの処理中にサブ
ルーチン#2へ分岐するブランチアンドリンク命令“B
AL#2”がコントロールストレージ1から読出される
と、第2図について説明したような処理によって、アド
レススタック4には第3図(b)に示すように、サブル
ーチンの番号#2に相当する番地″2′にそのときのア
ドレスレジスタ2の値、すなわち、上記ブランチアンド
リンク命令“BAL#2”が格納されていたコントロー
ルストレージのアドレスの次のアドレスがストアされる
このサブルーチン#2の処理中にサブルーチン#4へ分
岐するブランチアンドリンク命令“BAL#4”がコン
トロールストレージ1から読出されると、アドレススタ
ック4には上記と同様な動作によって、サブルーチンの
番号#4に相当する番地“4”にそのときのアドレスレ
ジスタ2の値、すなわち、上記ブランチアンドリンク命
令“BAL#4”が格納されていたコントロールストレ
ージのアドレスの次のアドレスがストアされる。
このサブルーチン#4の処理が進行してその最終のリタ
ーン命令“RTN#4″がコントロールストレージ1か
ら読出されて命令レジスタ5にフェッチされると、その
オペランドのこのサブルーチン自体を示す#4に対応す
るアドレススタック4の“4”番地からこのサブルーチ
ンへ分岐したブランチアンドリンク命令″BAL#4″
の次のアドレスが読出されてこのアドレスによりアドレ
スレジスタ2を介してコントロールストレージ1にアク
セスし、読み出された命令が命令レジスタ5からマイク
ロプロセッサ3に供給されて、サブルーチン#2の処理
に復帰する。
さらに、このサブルーチン#2の処理が進行してその最
終のリターン命令″RTN#2″がコントロールストレ
ージ1から読出されて命令レジスタ5にフェッチされる
と、そのオペランドのこのサブルーチン自体を示す#2
に対応するアドレススタック4の“2”番地からこのサ
ブルーチンへ分岐したメインルーチンのブランチアンド
リンク命令“BAL#2”の次のアドレスが読出されて
このアドレスによりアドレスレジスタ2を介してコント
ロールストレージ1にアクセスし、読み出された命令が
命令レジスタ5からマイクロプロセッサ3に供給される
ので、マイクロプロセッサ3はサブルーチン#2の処理
からメインルーチンの処理に復帰する。
以上に説明したようなサブルーチン番号とアドレススタ
ックの記憶番地とを対応させる場合には、第3図(b)
からも明らかなように、本発明におけるアドレススタッ
クは使用されるサブルーチンの数だけ記憶位置を必要と
するが、同時には使用されないサブルーチンが存在する
ときには同時に使用されるサブルーチンのみでグループ
を作って、そのグループ番号を例えば上位桁に、そのグ
ループ内でのサブルーチン番号を下位桁にしてサブルー
チン番号を付与し、この下位桁に基づいてアドレススタ
ックの記憶位置を割当てるようにすることによりアドレ
ススタックの記憶位置をサブルーチンの数より減少する
ことができる。
〔発明の効果〕
前記の従来技術におけるアドレススタックの記憶内容は
サブルーチンの呼出しレヘルに相当する記憶位置で足り
るものではあるが、先に説明したようにスタックボイン
クおよび加減算器などの構成要素を必要とするので全体
的な構成が複雑となり、これらの構成要素を要しない本
発明はハードウェアの構成が簡単になるばかりでなく、
従来技術におけるブランチアンドリンク命令などで分岐
先を指定するためにはコントロールストレージにおける
命令の格納アドレスを用いていたため、コントロールス
トレージの容量が増大するとこの格納アドレスの桁数が
大きくなって命令コードとして使用できる桁数が減少す
ることから命令の種類を増加できなかった欠点を除去し
得るという格別の効果を達成することができる。
【図面の簡単な説明】
第1図は本発明の原理を示すブロック図、第2図は本発
明の実施例を示すブロック図、第3図は実施例のプログ
ラムの流れ及びアドレススタックの記憶内容を示す図、
第4図は従来技術のブロック図である。 1はコントロールストレージ、2はアドレスレジスタ、
3はマイクロプロセッサ、4はアドレススタックである

Claims (1)

  1. 【特許請求の範囲】 コントロールストレージ(1)に格納されたマイクロプ
    ログラムをアドレスレジスタ(2)により指示されたア
    ドレスから読出してマイクロプロセッサ(3)が処理を
    実行するマイクロプログラム処理装置において、 このコントロールストレージからブランチアンドリンク
    命令を読出したときに、この命令で指定されたサブルー
    チンを示す情報に基づく値により定められるアドレスに
    、このサブルーチンの処理終了後に復帰すべき命令のこ
    のコントロールストレージにおける格納アドレスを指示
    するアドレスをストアするアドレススタック(4)を設
    け、この指定されたサブルーチンが終了したときにこの
    アドレススタックにストアされているアドレスを前記ア
    ドレスレジスタに転送するようにしたことを特徴とする
    マイクロプログラム処理装置におけるサブルーチン処理
    方式。
JP13913786A 1986-06-17 1986-06-17 マイクロプログラム処理装置におけるサブル−チン処理方式 Pending JPS62296231A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13913786A JPS62296231A (ja) 1986-06-17 1986-06-17 マイクロプログラム処理装置におけるサブル−チン処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13913786A JPS62296231A (ja) 1986-06-17 1986-06-17 マイクロプログラム処理装置におけるサブル−チン処理方式

Publications (1)

Publication Number Publication Date
JPS62296231A true JPS62296231A (ja) 1987-12-23

Family

ID=15238402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13913786A Pending JPS62296231A (ja) 1986-06-17 1986-06-17 マイクロプログラム処理装置におけるサブル−チン処理方式

Country Status (1)

Country Link
JP (1) JPS62296231A (ja)

Similar Documents

Publication Publication Date Title
US3924245A (en) Stack mechanism for a data processor
US4057850A (en) Processing link control device for a data processing system processing data by executing a main routine and a sub-routine
US4807185A (en) Stack pointer control circuit
US4047245A (en) Indirect memory addressing
AU589047B2 (en) Method and device to execute two instruction sequences in an order determined in advance
IE61306B1 (en) Method and device to execute two instruction sequences in an order determined in advance
JPS6319058A (ja) メモリ装置
US3761893A (en) Digital computer
JPS62296231A (ja) マイクロプログラム処理装置におけるサブル−チン処理方式
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPS60178539A (ja) 情報処理装置におけるバイパス制御方式
JPS6325372B2 (ja)
JPS5852750A (ja) ブランチ命令制御方式
JPS61133440A (ja) デ−タ処理装置
JPH01243120A (ja) ファームウェア制御装置
JPS61233834A (ja) マイクロプログラム処理装置
JPS59189407A (ja) シ−ケンス制御装置
JPS59186048A (ja) マイクロプログラム制御方式
JPH02259932A (ja) 割り込み処理方式
JPH01114940A (ja) 信号処理装置
JPS59144090A (ja) スタツクメモリ装置
JPS6028014B2 (ja) マイクロプロセツサ
JPS63317857A (ja) メモリアクセス回路
JPS6250854B2 (ja)
JPH0731596B2 (ja) 条件付きサブルーチン呼出し方式