JP3013725B2 - 割込み処理からの復帰方法 - Google Patents
割込み処理からの復帰方法Info
- Publication number
- JP3013725B2 JP3013725B2 JP6308694A JP30869494A JP3013725B2 JP 3013725 B2 JP3013725 B2 JP 3013725B2 JP 6308694 A JP6308694 A JP 6308694A JP 30869494 A JP30869494 A JP 30869494A JP 3013725 B2 JP3013725 B2 JP 3013725B2
- Authority
- JP
- Japan
- Prior art keywords
- stack
- instruction
- address
- return
- interrupt
- 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 - Fee Related
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明はプロセッサの割込み処理
からの復帰の方法に関するものである。
からの復帰の方法に関するものである。
【0002】
【従来の技術】以下、従来のプロセッサの割込み制御方
式について説明する。通常、プロセッサが処理の実行中
に優先度の高い割込み要求が発生すると、この処理を中
断して処理の再開に必要な情報として内部レジスタに格
納しているプログラム番地、命令、状態情報、データな
どが、スタックポインタの指すスタックなどのメモリに
退避される。そして、この割込み処理が終了すると、ス
タックに退避していたデータが内部レジスタに復帰され
て、処理が再開される。通常、処理の再開にはプログラ
ム番地と状態情報が不可欠な情報となる。また、サブル
ーチンを処理するときも、内部レジスタの情報をスタッ
クに退避するが、サブルーチンから復帰するときはプロ
グラム番地だけが不可欠な情報となる。
式について説明する。通常、プロセッサが処理の実行中
に優先度の高い割込み要求が発生すると、この処理を中
断して処理の再開に必要な情報として内部レジスタに格
納しているプログラム番地、命令、状態情報、データな
どが、スタックポインタの指すスタックなどのメモリに
退避される。そして、この割込み処理が終了すると、ス
タックに退避していたデータが内部レジスタに復帰され
て、処理が再開される。通常、処理の再開にはプログラ
ム番地と状態情報が不可欠な情報となる。また、サブル
ーチンを処理するときも、内部レジスタの情報をスタッ
クに退避するが、サブルーチンから復帰するときはプロ
グラム番地だけが不可欠な情報となる。
【0003】図3は、従来のプロセッサの内部レジスタ
の待避と復帰を示した構成図である。プログラムカウン
タ(以下PCと略す)40はプログラムの番地を格納す
るレジスタで、SF41は状態情報を格納するレジスタ
で、SP42はスタック43の番地を格納するレジスタ
である。スタック43は、内部レジスタの退避用に使わ
れるメモリである。
の待避と復帰を示した構成図である。プログラムカウン
タ(以下PCと略す)40はプログラムの番地を格納す
るレジスタで、SF41は状態情報を格納するレジスタ
で、SP42はスタック43の番地を格納するレジスタ
である。スタック43は、内部レジスタの退避用に使わ
れるメモリである。
【0004】図4は、サブルーチン処理と割込み処理を
する場合のフローチャートであり、以下に図3と図4を
用いてそれらの処理を説明する。
する場合のフローチャートであり、以下に図3と図4を
用いてそれらの処理を説明する。
【0005】プロセッサがCALL命令80を実行する
と、SP42がインクリメント81され、PC40すな
わちサブルーチンからの戻り番地がスタック43に退避
82され、PC40にサブルーチンプログラムの番地A
DDRAが設定83される。サブルーチン処理84を終
え、RETA命令85を実行すると、スタック43から
PC40が復帰86され、SP42がデクリメント87
され、もとのプログラムに戻る。
と、SP42がインクリメント81され、PC40すな
わちサブルーチンからの戻り番地がスタック43に退避
82され、PC40にサブルーチンプログラムの番地A
DDRAが設定83される。サブルーチン処理84を終
え、RETA命令85を実行すると、スタック43から
PC40が復帰86され、SP42がデクリメント87
され、もとのプログラムに戻る。
【0006】次に割込みが発生し、これを受け付ける8
8と、SP42がインクリメント89され、PC40す
なわち割込み処理からの戻り番地がスタック43に退避
90され、SP42がインクリメント91され、SF4
1がスタック43に退避92され、PC40に割込みプ
ログラムの番地ADDRBが設定93される。割込み処
理94を終え、RETB命令95を実行すると、スタッ
ク43からSF41が復帰96され、SP42がデクリ
メント97され、スタック43からPC40が復帰98
され、SP42がデクリメント99され、もとのプログ
ラムに戻り、プログラムを再開100する。例えば、特
開平3ー59727号公報、あるいは特開平5ー250
161号公報参照。
8と、SP42がインクリメント89され、PC40す
なわち割込み処理からの戻り番地がスタック43に退避
90され、SP42がインクリメント91され、SF4
1がスタック43に退避92され、PC40に割込みプ
ログラムの番地ADDRBが設定93される。割込み処
理94を終え、RETB命令95を実行すると、スタッ
ク43からSF41が復帰96され、SP42がデクリ
メント97され、スタック43からPC40が復帰98
され、SP42がデクリメント99され、もとのプログ
ラムに戻り、プログラムを再開100する。例えば、特
開平3ー59727号公報、あるいは特開平5ー250
161号公報参照。
【0007】
【発明が解決しようとする課題】しかしながら、上記の
ような方式ではPC40の格納に1番地、SF41の格
納に1番地使用するので、プログラム番地や状態情報の
データ幅が1ワードのデータ幅より小さいときには、ス
タックのメモリ使用効率が悪い。
ような方式ではPC40の格納に1番地、SF41の格
納に1番地使用するので、プログラム番地や状態情報の
データ幅が1ワードのデータ幅より小さいときには、ス
タックのメモリ使用効率が悪い。
【0008】また、復帰するときの命令として、サブル
ーチンからの復帰命令(RETA)と割込み処理からの
復帰命令(RETB)の2命令を用意するか、状態フラ
グ41の復帰命令とPC40の復帰命令の2命令を順次
実行しなければならない。
ーチンからの復帰命令(RETA)と割込み処理からの
復帰命令(RETB)の2命令を用意するか、状態フラ
グ41の復帰命令とPC40の復帰命令の2命令を順次
実行しなければならない。
【0009】本発明は上記従来の欠点に鑑み、スタック
メモリの使用効率を上げると同時に、割込み処理からの
復帰とサブルーチンからの復帰を共通の命令で実行可能
なプロセッサの割込み処理からの復帰方法を提供するこ
とを目的とする。
メモリの使用効率を上げると同時に、割込み処理からの
復帰とサブルーチンからの復帰を共通の命令で実行可能
なプロセッサの割込み処理からの復帰方法を提供するこ
とを目的とする。
【0010】
【0011】
【課題を解決するための手段】本発明は、割り込み処理
機能を備え、スタックポインタによるメモリへのレジス
タ退避方式のプロセッサにおいて、割込みが発生したと
きに、スタックポインタの値を第1方向から変動してか
ら、割込まれたプログラムへの戻り番地と状態情報をま
とめて1ワードとし、スタックポインタの指すメモリに
格納するステップと、ディレイ付き復帰命令のときに、
戻り番地を復帰し、次のディレイスロットにある命令の
実行が終了してからスタックポインタの値を前記第1方
向と逆の第2方向に変動させる制御をし、スタックポイ
ンタの指すメモリからレジスタへの転送命令をディレイ
スロットに置くことにより、状態情報を復帰するステッ
プとを備えたものである。
機能を備え、スタックポインタによるメモリへのレジス
タ退避方式のプロセッサにおいて、割込みが発生したと
きに、スタックポインタの値を第1方向から変動してか
ら、割込まれたプログラムへの戻り番地と状態情報をま
とめて1ワードとし、スタックポインタの指すメモリに
格納するステップと、ディレイ付き復帰命令のときに、
戻り番地を復帰し、次のディレイスロットにある命令の
実行が終了してからスタックポインタの値を前記第1方
向と逆の第2方向に変動させる制御をし、スタックポイ
ンタの指すメモリからレジスタへの転送命令をディレイ
スロットに置くことにより、状態情報を復帰するステッ
プとを備えたものである。
【0012】
【0013】
【作用】本発明は、戻り番地と、状態情報をまとめてス
タックポイントの指す番地のメモリに格納する。したが
って、スタックとしてのメモリを効率的に使用できる。
また、割込み処理からの復帰を実行するときは、割り込
み処理で状態情報が変化してしまうようなプログラムに
なっているときに、あらかじめディレイ付き復帰命令の
ディレイスロットにスタックポインタの指す番地のデー
タを、状態情報を格納するレジスタに転送する命令を置
くことにより、状態情報が復帰されるので、割込みから
の復帰命令とサブルーチンからの復帰命令を共通化で
き、しかもディレイスロットを利用することによって、
処理ステップの増加も少ない。
タックポイントの指す番地のメモリに格納する。したが
って、スタックとしてのメモリを効率的に使用できる。
また、割込み処理からの復帰を実行するときは、割り込
み処理で状態情報が変化してしまうようなプログラムに
なっているときに、あらかじめディレイ付き復帰命令の
ディレイスロットにスタックポインタの指す番地のデー
タを、状態情報を格納するレジスタに転送する命令を置
くことにより、状態情報が復帰されるので、割込みから
の復帰命令とサブルーチンからの復帰命令を共通化で
き、しかもディレイスロットを利用することによって、
処理ステップの増加も少ない。
【0014】
【0015】
【実施例】以下、本発明の一実施例の割込みからの復帰
方式を適用したパイプライン方式のプロセッサについ
て、図面を参照しながら説明する。
方式を適用したパイプライン方式のプロセッサについ
て、図面を参照しながら説明する。
【0016】図1は本実施例のプロセッサの内部レジス
タの退避と復帰を示す構成図である。PC10はプログ
ラムの番地を格納するレジスタで、SF11は状態情報
を格納するレジスタで、SP12はスタック13の番地
を格納するレジスタである。スタック13は内部レジス
タなどの退避用に使用するメモリで、1ワードにPC1
0とSF11をまとめて格納できるだけの幅を備えてい
る。
タの退避と復帰を示す構成図である。PC10はプログ
ラムの番地を格納するレジスタで、SF11は状態情報
を格納するレジスタで、SP12はスタック13の番地
を格納するレジスタである。スタック13は内部レジス
タなどの退避用に使用するメモリで、1ワードにPC1
0とSF11をまとめて格納できるだけの幅を備えてい
る。
【0017】図2は同実施例のサブルーチン処理と割込
み処理の場合のフローチャートである。次に、かかるプ
ロセッサの動作について、図1,図2を用いて説明す
る。
み処理の場合のフローチャートである。次に、かかるプ
ロセッサの動作について、図1,図2を用いて説明す
る。
【0018】CALL命令21を実行すると、SP12
がインクリメント22され、PC10すなわちサブルー
チンからの戻り番地がスタックに退避23され、PC1
0にサブルーチンプログラムの番地ADDRAが設定2
4される。サブルーチン処理25を終え、RET命令2
6を実行すると、スタック13からPC10が復帰27
され、次のディレイスロットにある命令の実行28後、
SP12がデクリメント29され、もとのプログラムに
戻る。
がインクリメント22され、PC10すなわちサブルー
チンからの戻り番地がスタックに退避23され、PC1
0にサブルーチンプログラムの番地ADDRAが設定2
4される。サブルーチン処理25を終え、RET命令2
6を実行すると、スタック13からPC10が復帰27
され、次のディレイスロットにある命令の実行28後、
SP12がデクリメント29され、もとのプログラムに
戻る。
【0019】次に割込みが発生し、これを受け付ける3
0と、SP12がインクリメント31され、PC10す
なわち割込み処理からの戻り番地とSF11が1ワード
にまとめられてスタック13に退避32され、PC10
に割込みプログラムの番地ADDRBが設定33され
る。割込み処理34を終え、RET命令35を実行する
と、スタック13からPC10が復帰36され、次のデ
ィレイスロットにある命令の実行37後、SP12がデ
クリメント38される。このディレイスロットにスタッ
ク13からSF11への転送命令37を置くことによっ
てスタックからSFが復帰37され、プログラムが再開
39される。
0と、SP12がインクリメント31され、PC10す
なわち割込み処理からの戻り番地とSF11が1ワード
にまとめられてスタック13に退避32され、PC10
に割込みプログラムの番地ADDRBが設定33され
る。割込み処理34を終え、RET命令35を実行する
と、スタック13からPC10が復帰36され、次のデ
ィレイスロットにある命令の実行37後、SP12がデ
クリメント38される。このディレイスロットにスタッ
ク13からSF11への転送命令37を置くことによっ
てスタックからSFが復帰37され、プログラムが再開
39される。
【0020】以上のように本実施例によれば、プログラ
ムの番地と状態フラグがまとめてスタックメモリ13の
同じ番地に格納されるので、スタックとしてのメモリ使
用効率が上がり、またサブルーチン処理からの復帰と割
込み処理からの復帰のときに、共通にRET命令を使う
ことができ、特に割込み処理からの復帰のときにはSF
11を復帰する命令をディレイスロットに置くことがで
きるので、ディレイスロットを有効に利用できる。
ムの番地と状態フラグがまとめてスタックメモリ13の
同じ番地に格納されるので、スタックとしてのメモリ使
用効率が上がり、またサブルーチン処理からの復帰と割
込み処理からの復帰のときに、共通にRET命令を使う
ことができ、特に割込み処理からの復帰のときにはSF
11を復帰する命令をディレイスロットに置くことがで
きるので、ディレイスロットを有効に利用できる。
【0021】なお、本実施例では退避のときにSPをイ
ンクリメントし、復帰のときにSPをデクリメントした
が、退避のときにSPをデクリメントし、復帰のときに
SPをインクリメントしてもよい。
ンクリメントし、復帰のときにSPをデクリメントした
が、退避のときにSPをデクリメントし、復帰のときに
SPをインクリメントしてもよい。
【0022】
【0023】
【0024】
【0025】
【0026】
【0027】
【0028】
【発明の効果】以上のように本発明を適用したプロセッ
サは、割込みを受け付ると、プログラムの番地と状態フ
ラグがまとめてスタックメモリの同じ番地に格納される
ことにより、スタックとしてのメモリの使用効率が上げ
られる。また、ディレイ付き復帰命令を実行するとき
に、戻り番地が復帰され、次のディレイスロットにある
命令の実行が終了してからスタックポインタの値が更新
されるので、スタックポインタの指すメモリからレジス
タへの転送命令を前記ディレイスロットに置くことによ
り状態情報が復帰される。したがって、サブルーチンか
らの復帰命令と割込みからの復帰命令を共通化でき、命
令数を減らすことができる。命令数が減れば命令のデコ
ード回路が簡素化され、動作周波数を上げることができ
る
サは、割込みを受け付ると、プログラムの番地と状態フ
ラグがまとめてスタックメモリの同じ番地に格納される
ことにより、スタックとしてのメモリの使用効率が上げ
られる。また、ディレイ付き復帰命令を実行するとき
に、戻り番地が復帰され、次のディレイスロットにある
命令の実行が終了してからスタックポインタの値が更新
されるので、スタックポインタの指すメモリからレジス
タへの転送命令を前記ディレイスロットに置くことによ
り状態情報が復帰される。したがって、サブルーチンか
らの復帰命令と割込みからの復帰命令を共通化でき、命
令数を減らすことができる。命令数が減れば命令のデコ
ード回路が簡素化され、動作周波数を上げることができ
る
【0029】
【図1】本発明の一実施例におけるプロセッサの内部レ
ジスタの退避と復帰を示す構成図
ジスタの退避と復帰を示す構成図
【図2】同実施例のサブルーチン処理と割込み処理の場
合のフローチャート
合のフローチャート
【図3】従来のプロセッサの内部レジスタの退避と復帰
を示す構成図
を示す構成図
【図4】従来のサブルーチン処理と割込み処理の場合の
フローチャート
フローチャート
10 プログラムの番地を格納しているレジスタPC 11 状態情報を格納しているレジスタSF 12 スタックの番地を格納しているレジスタSP 13 スタックに使われているメモリ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−232726(JP,A) 特開 平5−341996(JP,A) 特開 平1−72238(JP,A) 特公 昭51−37742(JP,B1) bit、VOL.22、NO.12(1990 年12月、共立出版株式会社)、P.74− 79 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 9/40 G06F 9/42 G06F 9/38
Claims (3)
- 【請求項1】割込み処理機能を備え、スタックポインタ
によるメモリへのレジスタ退避方式のプロセッサにおい
て、割込みを受け付けたときに、スタックポインタの値
を第1方向に変動してから、割込まれたプログラムへの
戻り番地と状態情報をまとめて1ワードとし、スタック
ポインタの指すメモリに格納するステップと、ディレイ
付き復帰命令を実行するときに、前記戻り番地を復帰
し、次のディレイスロットにある命令の実行が終了して
から前記スタックポインタの値を前記第1方向と逆の第
2方向に変動させる制御をし、前記スタックポインタの
指すメモリからレジスタへの転送命令を前記ディレイス
ロットに置くことにより、前記状態情報を復帰するステ
ップとを備えた割込み処理からの復帰方法。 - 【請求項2】前記第1方向の変動を増加方向とすること
を特徴とする請求項1記載の割込み処理からの復帰方
法。 - 【請求項3】前記第1方向の変動を減少方向とすること
を特徴とする請求項1記載の割込み処理からの復帰方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6308694A JP3013725B2 (ja) | 1994-12-13 | 1994-12-13 | 割込み処理からの復帰方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6308694A JP3013725B2 (ja) | 1994-12-13 | 1994-12-13 | 割込み処理からの復帰方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08166887A JPH08166887A (ja) | 1996-06-25 |
JP3013725B2 true JP3013725B2 (ja) | 2000-02-28 |
Family
ID=17984164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6308694A Expired - Fee Related JP3013725B2 (ja) | 1994-12-13 | 1994-12-13 | 割込み処理からの復帰方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3013725B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040003302A (ko) * | 2002-07-02 | 2004-01-13 | 주식회사 하이닉스반도체 | 인터럽트 제어 장치 및 방법 |
US7401210B2 (en) * | 2005-03-30 | 2008-07-15 | Arm Limited | Selecting subroutine return mechanisms |
-
1994
- 1994-12-13 JP JP6308694A patent/JP3013725B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
bit、VOL.22、NO.12(1990年12月、共立出版株式会社)、P.74−79 |
Also Published As
Publication number | Publication date |
---|---|
JPH08166887A (ja) | 1996-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2883784B2 (ja) | マイクロコンピュータ | |
US5659759A (en) | Data processing device having improved interrupt controller to process interrupts of different priority levels | |
EP0217168B1 (en) | Method for processing address translation exceptions in a virtual memory system | |
JP3970609B2 (ja) | プロセッサシステム | |
JP3013725B2 (ja) | 割込み処理からの復帰方法 | |
JPH09128267A (ja) | データ処理装置およびデータ処理方法 | |
US5790872A (en) | Interrupt control handler for a RISC-type microprocessor | |
JP2671160B2 (ja) | 例外処理方式 | |
JP2723847B2 (ja) | マイクロプロセッサ | |
JP2000029690A (ja) | デ―タ処理の方法および装置 | |
JPH11167494A (ja) | 演算処理装置、及び演算処理装置のレジスタ管理方法 | |
US5778207A (en) | Assisting operating-system interrupts using application-based processing | |
JP2513142B2 (ja) | プログラムのシミュレ―タ装置 | |
JP2582294B2 (ja) | モジュール間結合実行制御方式 | |
JPH11134202A (ja) | タスク切替え装置 | |
JPS6149695B2 (ja) | ||
JPS6156816B2 (ja) | ||
JP2679603B2 (ja) | マイクロコンピュータ | |
JPH04205144A (ja) | マイクロプロセッサ | |
US20020078286A1 (en) | Computer and control method of the computer | |
JPH07295836A (ja) | 半導体集積回路装置 | |
JP2002196938A (ja) | 例外処理フロー用の装置及びその処理実行方法 | |
JPH04264625A (ja) | レジスタ管理方式 | |
JP2000035875A (ja) | レジスタのダイナミックレンジを拡大する方法と装置 | |
JPH04155532A (ja) | タスク切替方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |