JPS6325372B2 - - Google Patents
Info
- Publication number
- JPS6325372B2 JPS6325372B2 JP4827781A JP4827781A JPS6325372B2 JP S6325372 B2 JPS6325372 B2 JP S6325372B2 JP 4827781 A JP4827781 A JP 4827781A JP 4827781 A JP4827781 A JP 4827781A JP S6325372 B2 JPS6325372 B2 JP S6325372B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- stack
- return
- microinstruction
- control
- 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.)
- Expired
Links
- 238000000034 method Methods 0.000 claims description 9
- 230000007704 transition Effects 0.000 claims description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
本発明はアドレススタツク制御方式、特にマイ
クロプログラム制御による計算機におけるマイク
ロプログラムの作成に当つてサブルーチンへの分
岐すなわちリンク(LINK)やサブルーチンから
の復帰すなわちリターン(RETURN)が何らの
制約を受けずにプログラム作成を行えるようにし
たアドレススタツク制御方式に関するものであ
る。
クロプログラム制御による計算機におけるマイク
ロプログラムの作成に当つてサブルーチンへの分
岐すなわちリンク(LINK)やサブルーチンから
の復帰すなわちリターン(RETURN)が何らの
制約を受けずにプログラム作成を行えるようにし
たアドレススタツク制御方式に関するものであ
る。
一般に、マイクロプログラムのメインルーチン
からサブルーチンへのリンクまたはサブルーチン
から他のサブルーチンへのリンクは、呼出された
サブルーチンの実行が終了した段階での復帰すべ
きアドレスを復帰アドレス格納レジスタ等のスタ
ツクに格納した後にサブルーチンへ制御を移行す
るようにして行われ、当該サブルーチンからの復
帰は、当該サブルーチン内で復帰命令が発行され
その実行がなされて上記スタツクに格納されてい
る復帰アドレスに制御が戻るようにして処理され
ている。また、サブルーチンのネステイングが可
能となるように、上記スタツクは多段化して設け
られ、最新のスタツクへの書込みまたは読出しの
ためのアドレスとしてスタツクポインタが設けら
れている。
からサブルーチンへのリンクまたはサブルーチン
から他のサブルーチンへのリンクは、呼出された
サブルーチンの実行が終了した段階での復帰すべ
きアドレスを復帰アドレス格納レジスタ等のスタ
ツクに格納した後にサブルーチンへ制御を移行す
るようにして行われ、当該サブルーチンからの復
帰は、当該サブルーチン内で復帰命令が発行され
その実行がなされて上記スタツクに格納されてい
る復帰アドレスに制御が戻るようにして処理され
ている。また、サブルーチンのネステイングが可
能となるように、上記スタツクは多段化して設け
られ、最新のスタツクへの書込みまたは読出しの
ためのアドレスとしてスタツクポインタが設けら
れている。
従来のアドレススタツク制御方式には以下のよ
うな問題点があつた。第1図は従来方式による問
題点の説明図を示す。図中、1はメインルーチ
ン、2および3はサブルーチン、4はスタツク、
M1,M2………,A1,A2………,B1,B
2はそれぞれマイクロ命令を表わす。マイクロプ
ログラムはマイクロプログラム格納記憶装置
(CS)に格納され、逐次フエツチされ実行され
る。例えばマイクロプログラムのメインルーチン
1にあるマイクロ命令M1がサブルーチン2へリ
ンクする命令であり、これが実行されたとする
と、スタツク4の第0スタツクS0にリターン先
アドレスであるマイクロ命令M2のアドレスが格
納され、制御がサブルーチン2へ移行する。次に
サブルーチン2の命令が逐次実行されるが、ここ
でマイクロ命令A2が呼出しルーチンへのリター
ンを指示する命令であるとすると、その実際のリ
ターン処理はマイクロ命令A2の後に続くマイク
ロ命令A3の実行後に実行される形となる。も
し、マイクロ命令A2の後に続くマイクロ命令A
3が通常の命令であり普通に実行されたとする
と、その後に第0スタツクS0から先に格納され
ているマイクロ命令M2のアドレスが取出され、
そこへ制御が戻される。しかし、マイクロ命令A
3がさらに他のサブルーチン3へのリンク命令で
あつたり、またはマイクロ命令A3の実行中にト
ラツプが発生したりするようなことがあれば、制
御はメインルーチン1へは戻らず、他のルーチン
例えばサブルーチン3へ移行することになる。こ
のときにマイクロ命令M1の実行の場合と同様
に、マイクロ命令A3の後のマイクロ命令A4の
アドレスが、スタツク4の新たなエリアである第
1スタツクS1に格納される。そこで起動された
サブルーチン3のマイクロ命令B1がマイクロ命
令A2と同じようなリターン命令で、マイクロ命
令B2が通常の命令であるとすると、マイクロ命
令B2の実行が終了した段階で第1スタツクS1
からリターンアドレスであるマイクロ命令A4の
アドレスが取出され、マイクロ命令A4へ制御が
移行することになる。しかしながら、マイクロ命
令A2を実行する段階では本来メインルーチン1
のマイクロ命令M2へ制御を戻すことを意図した
のであるから、上記のような制御移行は本来の意
図に反することになる。従つて、このような従来
の制御方式の下で、正しく制御がマイクロ命令M
2へ戻るようにするためには、サブルーチン2の
マイクロ命令A4へ制御が戻つたのちに、メイン
ルーチン1へのリターン指示を行うリターン命令
を再度発行しなければならないことになる。
うな問題点があつた。第1図は従来方式による問
題点の説明図を示す。図中、1はメインルーチ
ン、2および3はサブルーチン、4はスタツク、
M1,M2………,A1,A2………,B1,B
2はそれぞれマイクロ命令を表わす。マイクロプ
ログラムはマイクロプログラム格納記憶装置
(CS)に格納され、逐次フエツチされ実行され
る。例えばマイクロプログラムのメインルーチン
1にあるマイクロ命令M1がサブルーチン2へリ
ンクする命令であり、これが実行されたとする
と、スタツク4の第0スタツクS0にリターン先
アドレスであるマイクロ命令M2のアドレスが格
納され、制御がサブルーチン2へ移行する。次に
サブルーチン2の命令が逐次実行されるが、ここ
でマイクロ命令A2が呼出しルーチンへのリター
ンを指示する命令であるとすると、その実際のリ
ターン処理はマイクロ命令A2の後に続くマイク
ロ命令A3の実行後に実行される形となる。も
し、マイクロ命令A2の後に続くマイクロ命令A
3が通常の命令であり普通に実行されたとする
と、その後に第0スタツクS0から先に格納され
ているマイクロ命令M2のアドレスが取出され、
そこへ制御が戻される。しかし、マイクロ命令A
3がさらに他のサブルーチン3へのリンク命令で
あつたり、またはマイクロ命令A3の実行中にト
ラツプが発生したりするようなことがあれば、制
御はメインルーチン1へは戻らず、他のルーチン
例えばサブルーチン3へ移行することになる。こ
のときにマイクロ命令M1の実行の場合と同様
に、マイクロ命令A3の後のマイクロ命令A4の
アドレスが、スタツク4の新たなエリアである第
1スタツクS1に格納される。そこで起動された
サブルーチン3のマイクロ命令B1がマイクロ命
令A2と同じようなリターン命令で、マイクロ命
令B2が通常の命令であるとすると、マイクロ命
令B2の実行が終了した段階で第1スタツクS1
からリターンアドレスであるマイクロ命令A4の
アドレスが取出され、マイクロ命令A4へ制御が
移行することになる。しかしながら、マイクロ命
令A2を実行する段階では本来メインルーチン1
のマイクロ命令M2へ制御を戻すことを意図した
のであるから、上記のような制御移行は本来の意
図に反することになる。従つて、このような従来
の制御方式の下で、正しく制御がマイクロ命令M
2へ戻るようにするためには、サブルーチン2の
マイクロ命令A4へ制御が戻つたのちに、メイン
ルーチン1へのリターン指示を行うリターン命令
を再度発行しなければならないことになる。
本発明は上記問題点の解決を図り、制御情報が
自動的にスタツクに格納されるようにして、プロ
グラム作成者が二重にリターン指示を行うなどの
負担を軽減し何ら制約を受けずにリンク指示又は
リターン指示のルーチンの変更ができるようにす
ることを目的としている。そのため本発明のアド
レススタツク制御方式は、上位ルーチンから下位
ルーチンへのリンケージをスタツクに復帰アドレ
スを格納することにより行うマイクロプログラム
制御による計算機において、既に復帰命令が発行
されている状態で上記下位ルーチンからさらに下
位の他のルーチンへ制御が移行する場合に上記ス
タツクに当該下位ルーチンへの復帰アドレスと共
にまたは当該下位ルーチンへの復帰アドレスに代
えて復帰命令発行後の制御移行である旨を表示す
るアドレス制御情報を格納するように構成し、上
記最下位にある他のルーチンにおける復帰命令の
実行にあたつて上記スタツク上のアドレス制御情
報が復帰命令発行後の制御移行である旨を表示し
ている場合にさらに上位レベルにあるスタツク上
に格納された復帰アドレスに制御を戻すように構
成したことを特徴としている。以下、図面を参照
しつつ説明する。
自動的にスタツクに格納されるようにして、プロ
グラム作成者が二重にリターン指示を行うなどの
負担を軽減し何ら制約を受けずにリンク指示又は
リターン指示のルーチンの変更ができるようにす
ることを目的としている。そのため本発明のアド
レススタツク制御方式は、上位ルーチンから下位
ルーチンへのリンケージをスタツクに復帰アドレ
スを格納することにより行うマイクロプログラム
制御による計算機において、既に復帰命令が発行
されている状態で上記下位ルーチンからさらに下
位の他のルーチンへ制御が移行する場合に上記ス
タツクに当該下位ルーチンへの復帰アドレスと共
にまたは当該下位ルーチンへの復帰アドレスに代
えて復帰命令発行後の制御移行である旨を表示す
るアドレス制御情報を格納するように構成し、上
記最下位にある他のルーチンにおける復帰命令の
実行にあたつて上記スタツク上のアドレス制御情
報が復帰命令発行後の制御移行である旨を表示し
ている場合にさらに上位レベルにあるスタツク上
に格納された復帰アドレスに制御を戻すように構
成したことを特徴としている。以下、図面を参照
しつつ説明する。
第2図は本発明の一実施例構成、第3図は本発
明の実施の一態様を示す。図中、1ないし4は第
1図に対応し、5はCS読出しアドレス作成回路、
6はマイクロプログラム格納記憶装置(CS)、7
−0ないし7−nはアドレス制御情報格納域、8
はアドレス制御情報線、9はCSデータ読出しア
ドレスバスを表わす。
明の実施の一態様を示す。図中、1ないし4は第
1図に対応し、5はCS読出しアドレス作成回路、
6はマイクロプログラム格納記憶装置(CS)、7
−0ないし7−nはアドレス制御情報格納域、8
はアドレス制御情報線、9はCSデータ読出しア
ドレスバスを表わす。
CS読出しアドレス作成回路5は、アドレス作
成用データに基づきCS6のアドレスを作成し、
結果をCSデータ読出しアドレスバス9に出力す
る。このアドレスに従つてCS6の命令データが
フエツチされる。マイクロ命令がリンク命令やリ
ターン命令のようなものである場合には、そのと
きのスタツク4の書込み読出しアドレスであるス
タツクポインタに従つてスタツク4へCS6のア
ドレスが格納されたり、スタツク4からCS6の
アドレスが取出されたりする。スタツク4のアド
レス制御情報格納域7−0,………は後述するよ
うなアドレス制御のために用いられる情報の格納
エリアである。
成用データに基づきCS6のアドレスを作成し、
結果をCSデータ読出しアドレスバス9に出力す
る。このアドレスに従つてCS6の命令データが
フエツチされる。マイクロ命令がリンク命令やリ
ターン命令のようなものである場合には、そのと
きのスタツク4の書込み読出しアドレスであるス
タツクポインタに従つてスタツク4へCS6のア
ドレスが格納されたり、スタツク4からCS6の
アドレスが取出されたりする。スタツク4のアド
レス制御情報格納域7−0,………は後述するよ
うなアドレス制御のために用いられる情報の格納
エリアである。
第3図において、第1図と同様にマイクロ命令
M1とマイクロ命令A3とがリンク命令、マイク
ロ命令A2とマイクロ命令B1とがリターン指示
の命令であるとする。スタツク4へのスタツクポ
インタが第0スタツクS0をポイントし、アドレ
ス制御情報線8が論理「0」となつているような
状態で、メインルーチン1のマイクロ命令M1が
実行されると、スタツクポインタのポイントする
第0スタツクS0にリターンアドレスとして次の
マイクロ命令M2のアドレスが格納され、スタツ
クポインタは次の第1スタツクS1をポイントす
るように更新される。アドレス制御情報格納域7
−0にはアドレス制御情報線8の値に従つて
「0」が格納される。その後に制御はサブルーチ
ン2のマイクロ命令A1に移る。マイクロ命令A
1が実行され、リターン指示の命令であるマイク
ロ命令A2が実行されると、アドレス制御情報線
8は論理「1」を示すようにされる。この論理
「1」の状態は例えば実際にリターン処理がなさ
れるまで続き、リターン処理の制御が完了した時
点で論理「0」に戻されるようになる。次にリン
ク命令であるマイクロ命令A3が実行されると、
マイクロ命令M2へのリターン処理は一旦保留さ
れ、次のようにアドレス制御が行われる。まずス
タツクポインタがポイントする第1スタツクS1
へ次のマイクロ命令A4のアドレスを格納する。
M1とマイクロ命令A3とがリンク命令、マイク
ロ命令A2とマイクロ命令B1とがリターン指示
の命令であるとする。スタツク4へのスタツクポ
インタが第0スタツクS0をポイントし、アドレ
ス制御情報線8が論理「0」となつているような
状態で、メインルーチン1のマイクロ命令M1が
実行されると、スタツクポインタのポイントする
第0スタツクS0にリターンアドレスとして次の
マイクロ命令M2のアドレスが格納され、スタツ
クポインタは次の第1スタツクS1をポイントす
るように更新される。アドレス制御情報格納域7
−0にはアドレス制御情報線8の値に従つて
「0」が格納される。その後に制御はサブルーチ
ン2のマイクロ命令A1に移る。マイクロ命令A
1が実行され、リターン指示の命令であるマイク
ロ命令A2が実行されると、アドレス制御情報線
8は論理「1」を示すようにされる。この論理
「1」の状態は例えば実際にリターン処理がなさ
れるまで続き、リターン処理の制御が完了した時
点で論理「0」に戻されるようになる。次にリン
ク命令であるマイクロ命令A3が実行されると、
マイクロ命令M2へのリターン処理は一旦保留さ
れ、次のようにアドレス制御が行われる。まずス
タツクポインタがポイントする第1スタツクS1
へ次のマイクロ命令A4のアドレスを格納する。
アドレス制御情報格納域7−1にはアドレス制
御情報線8の値に従つて「1」が格納される。す
なわち、アドレス制御情報格納域7−1の値が
「1」であるということは、既にリターン指示が
なされている状態でリンク処理が実行されたこと
を意味する。スタツクポインタは次の第2スタツ
クS2をポイントするよう更新され、制御はサブ
ルーチン3のマイクロ命令B1へ移行する。マイ
クロ命令B1によりリターンの指示がなされマイ
クロ命令B2の実行が終ると、リターン処理のた
めにまずスタツクポインタが1つ前の第1スタツ
クS1をポイントするよう更新され、アドレス制
御情報格納域7−1が参照される。アドレス制御
情報格納域7−1のアドレス制御情報は「1」と
なつていることから、この第1スタツクS1に格
納されているマイクロ命令A4へ制御を移行する
と共に、スタツクポインタは1つ前の第0スタツ
クS0をポイントするよう更新され、同様にアド
レス制御情報格納域7−0が参照される。今度は
値が「0」となつていることから正しい戻り先で
あることを認知し、その第0スタツクS0に格納
されているマイクロ命令M2のアドレスへ制御を
移行するよう処理する。従つて第1図に示した従
来例の如くサブルーチン2のマイクロ命令A4以
降の命令によつて二重にリターン指示を行う必要
はなくなる。なお上記の制御はリンクやリターン
の指示が二重三重に重なつた場合においても同様
である。
御情報線8の値に従つて「1」が格納される。す
なわち、アドレス制御情報格納域7−1の値が
「1」であるということは、既にリターン指示が
なされている状態でリンク処理が実行されたこと
を意味する。スタツクポインタは次の第2スタツ
クS2をポイントするよう更新され、制御はサブ
ルーチン3のマイクロ命令B1へ移行する。マイ
クロ命令B1によりリターンの指示がなされマイ
クロ命令B2の実行が終ると、リターン処理のた
めにまずスタツクポインタが1つ前の第1スタツ
クS1をポイントするよう更新され、アドレス制
御情報格納域7−1が参照される。アドレス制御
情報格納域7−1のアドレス制御情報は「1」と
なつていることから、この第1スタツクS1に格
納されているマイクロ命令A4へ制御を移行する
と共に、スタツクポインタは1つ前の第0スタツ
クS0をポイントするよう更新され、同様にアド
レス制御情報格納域7−0が参照される。今度は
値が「0」となつていることから正しい戻り先で
あることを認知し、その第0スタツクS0に格納
されているマイクロ命令M2のアドレスへ制御を
移行するよう処理する。従つて第1図に示した従
来例の如くサブルーチン2のマイクロ命令A4以
降の命令によつて二重にリターン指示を行う必要
はなくなる。なお上記の制御はリンクやリターン
の指示が二重三重に重なつた場合においても同様
である。
以上説明した如く本発明によれば、マイクロプ
ログラムの作成段階においてサブルーチンへのリ
ンクおよびサブルーチンからのリターンの処理を
特殊な制御移行を意識することなく何の制約も受
けずにプログラム作成を行うことが可能となる。
ログラムの作成段階においてサブルーチンへのリ
ンクおよびサブルーチンからのリターンの処理を
特殊な制御移行を意識することなく何の制約も受
けずにプログラム作成を行うことが可能となる。
第1図は従来方式による問題点の説明図、第2
図は本発明の一実施例構成、第3図は本発明の実
施の一態様を示す。 図中、1はメインルーチン、2および3はサブ
ルーチン、4はスタツク、5はCS読出しアドレ
ス作成回路、6はマイクロプログラム格納記憶装
置、7−0ないし7−nはアドレス制御情報格納
域、8はアドレス制御情報線、9はCSデータ読
出しアドレスバスを表わす。
図は本発明の一実施例構成、第3図は本発明の実
施の一態様を示す。 図中、1はメインルーチン、2および3はサブ
ルーチン、4はスタツク、5はCS読出しアドレ
ス作成回路、6はマイクロプログラム格納記憶装
置、7−0ないし7−nはアドレス制御情報格納
域、8はアドレス制御情報線、9はCSデータ読
出しアドレスバスを表わす。
Claims (1)
- 1 上位ルーチンから下位ルーチンへのリンケー
ジをスタツクに復帰アドレスを格納することによ
り行うマイクロプログラム制御による計算機にお
いて、既に復帰命令が発行されている状態で上記
下位ルーチンからさらに下位の他のルーチンへ制
御が移行する場合に上記スタツクに当該下位ルー
チンへの復帰アドレスと共にまたは当該下位ルー
チンへの復帰アドレスに代えて復帰命令発行後の
制御移行である旨を表示するアドレス制御情報を
格納するように構成し、上記最下位にある他のル
ーチンにおける復帰命令の実行にあつて上記スタ
ツク上のアドレス制御情報が復帰命令発行後の制
御移行である旨を表示している場合にさらに上位
レベルにあるスタツク上に格納された復帰アドレ
スに制御を戻すように構成したことを特徴とする
アドレススタツク制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4827781A JPS57162031A (en) | 1981-03-31 | 1981-03-31 | Address stack control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4827781A JPS57162031A (en) | 1981-03-31 | 1981-03-31 | Address stack control system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS57162031A JPS57162031A (en) | 1982-10-05 |
JPS6325372B2 true JPS6325372B2 (ja) | 1988-05-25 |
Family
ID=12798934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4827781A Granted JPS57162031A (en) | 1981-03-31 | 1981-03-31 | Address stack control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS57162031A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02130475A (ja) * | 1988-11-10 | 1990-05-18 | Nec Corp | 探針 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
-
1981
- 1981-03-31 JP JP4827781A patent/JPS57162031A/ja active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02130475A (ja) * | 1988-11-10 | 1990-05-18 | Nec Corp | 探針 |
Also Published As
Publication number | Publication date |
---|---|
JPS57162031A (en) | 1982-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU589047B2 (en) | Method and device to execute two instruction sequences in an order determined in advance | |
JPS6325372B2 (ja) | ||
IE61307B1 (en) | Method to execute two instruction sequences in an order determined in advance | |
JPS6115455B2 (ja) | ||
JPH0754467B2 (ja) | データ処理装置 | |
JP2552738B2 (ja) | データ処理装置 | |
JP2906958B2 (ja) | ユーザプログラムロード方式 | |
JPS63825B2 (ja) | ||
JP3130798B2 (ja) | バス転送装置 | |
JP2506591B2 (ja) | 補助処理装置 | |
JPS6148741B2 (ja) | ||
JPS60176144A (ja) | レジスタフアイル装置 | |
JPS6398704A (ja) | プログラマブルコントロ−ラ | |
JPS62254237A (ja) | インタプリタ方式の分岐命令実行方式 | |
JPS60178539A (ja) | 情報処理装置におけるバイパス制御方式 | |
JP2569801B2 (ja) | 情報処理装置 | |
JPH03218524A (ja) | 命令処理装置 | |
JPS62296231A (ja) | マイクロプログラム処理装置におけるサブル−チン処理方式 | |
JPH0150936B2 (ja) | ||
JPH01267731A (ja) | セグメントオーバレイプログラムの作成方式 | |
JPS6250854B2 (ja) | ||
JPH02183330A (ja) | データ処理装置 | |
JPS5875229A (ja) | デ−タ処理装置のプ−トロ−ド方式 | |
JPH03109647A (ja) | デュプレックスシステム | |
JPS59186048A (ja) | マイクロプログラム制御方式 |