JPH03102530A - 割り込み処理の制御方法 - Google Patents
割り込み処理の制御方法Info
- Publication number
- JPH03102530A JPH03102530A JP1241194A JP24119489A JPH03102530A JP H03102530 A JPH03102530 A JP H03102530A JP 1241194 A JP1241194 A JP 1241194A JP 24119489 A JP24119489 A JP 24119489A JP H03102530 A JPH03102530 A JP H03102530A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- interruption
- vector table
- entry address
- processing routine
- 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
この発明は、マイクロコンピュータシステムにおける割
り込み処理の制御方法に関する。
り込み処理の制御方法に関する。
従来のマイクロコンピュータシステムの割り込み制御方
法としては、CPU (中央処理装W)が割り込み(要
求)を検出すると、検出した割り込みに対応ずる割り込
み処理ルーチンのエントリアドレスを割り込みへククテ
ーブルより求め、CPU(中央処理装W)が該割り込み
処理ルーチンをサブルーチン呼出する方法を用いていた
。そしてこの割り込み処理ルーチンの実行中は、CPU
は通常、多重割り込みを禁止するために割り込み禁止状
態になっていた。 ところが、割り込み処理ルーチンの処理時間が長い場合
は、他の割り込みを受け付けられるように処理ルーチン
内で割り込み禁止フラグを解除する必要があった。しか
しこの場合、割り込み処理が完了する前に、同一番号の
割り込みが多重に発生した場合に、スタックオーハフロ
ーする危険が生ずる。そこで、これを回避するために割
り込み処理ルーチン内で処理中フラグを設i′Jで同一
番号の多重割り込みを捨てていた。
法としては、CPU (中央処理装W)が割り込み(要
求)を検出すると、検出した割り込みに対応ずる割り込
み処理ルーチンのエントリアドレスを割り込みへククテ
ーブルより求め、CPU(中央処理装W)が該割り込み
処理ルーチンをサブルーチン呼出する方法を用いていた
。そしてこの割り込み処理ルーチンの実行中は、CPU
は通常、多重割り込みを禁止するために割り込み禁止状
態になっていた。 ところが、割り込み処理ルーチンの処理時間が長い場合
は、他の割り込みを受け付けられるように処理ルーチン
内で割り込み禁止フラグを解除する必要があった。しか
しこの場合、割り込み処理が完了する前に、同一番号の
割り込みが多重に発生した場合に、スタックオーハフロ
ーする危険が生ずる。そこで、これを回避するために割
り込み処理ルーチン内で処理中フラグを設i′Jで同一
番号の多重割り込みを捨てていた。
しかしながら上述の割り込み制御方弐では、割り込み処
理ルーチン内で多重割り込み回避するためのフラグ制御
を行う必要があり、割り込め処理ルーチンの構造が複雑
で難解になる問題を有していた。 そこで本発明はこの問題を解消し得る割り込み処理の制
御方法を提供することを課題とする。
理ルーチン内で多重割り込み回避するためのフラグ制御
を行う必要があり、割り込め処理ルーチンの構造が複雑
で難解になる問題を有していた。 そこで本発明はこの問題を解消し得る割り込み処理の制
御方法を提供することを課題とする。
前記の課題を解決するために本発明の方法は、『割り込
み要求に応じて、第1の割り込みベクタテーブル(VT
Iなど)にお&ノる該割り込み要求の番号に幻応ずる割
り込みヘクタとしてのエン[・リアドレスの割り込み処
理ルーチンを実行するマイクロコンピュータシステムに
おいて、前記の割り込みベクタテーブルに対応ずるヘク
タテーブルであって、多重割り込み時に、割り込み禁止
状態で実行される所定の割り込め処理ルーチン(多重割
り込み時処理1)2など)のエントリアドレスが割り込
みヘクタとして格納された第一の割り込みベクタテーブ
ル(VT2など)を設け、割り込み要求に応してnTJ
記第−の割り込みへクタうー−ブルにおりる当該のエン
1・リアトレスの割り込の処理ルーチンを実行する直前
、およびこの割り込み処理ルーヂンより復帰する際に、
前記2つの割り込みベクタテーブルの当該の割り込めヘ
クタのエンI・リアトレスを相互に入れ替えるように』
するものとする。
み要求に応じて、第1の割り込みベクタテーブル(VT
Iなど)にお&ノる該割り込み要求の番号に幻応ずる割
り込みヘクタとしてのエン[・リアドレスの割り込み処
理ルーチンを実行するマイクロコンピュータシステムに
おいて、前記の割り込みベクタテーブルに対応ずるヘク
タテーブルであって、多重割り込み時に、割り込み禁止
状態で実行される所定の割り込め処理ルーチン(多重割
り込み時処理1)2など)のエントリアドレスが割り込
みヘクタとして格納された第一の割り込みベクタテーブ
ル(VT2など)を設け、割り込み要求に応してnTJ
記第−の割り込みへクタうー−ブルにおりる当該のエン
1・リアトレスの割り込の処理ルーチンを実行する直前
、およびこの割り込み処理ルーヂンより復帰する際に、
前記2つの割り込みベクタテーブルの当該の割り込めヘ
クタのエンI・リアトレスを相互に入れ替えるように』
するものとする。
初期時に、多重割り込み時の処理ルーチンP2へのエン
I・リアドレスBが登録される第二の割り込みベクタテ
ーブルVT2を設け、割り込み発生時に、第−の割り込
みベクタテーブルVTIから割り込み処理ルーチンのア
トレスを求めた直後に、第−・の割り込みベクタテーブ
ルVTI のエントリアトレスと第二の割り込みベクタ
テーブルVT2のエントリアドレスを入れ換えて、この
入れ換え前に第一の割り込みベクタテーブルVTIから
求めたエントリアドレスの割り込み処理を呼び出す。 そしてこの割り込み処理の最後のリターンで再び該当す
る割り込み番号の第一の割り込みベクタテーブルVTI
のエンI・リアドレスと第二の割り込みベクタテーブル
VT2のエンI・リアドレスとを入れ換える。但し最初
に、第二の割り込みベクタテーブルVT2に登録される
エントリアドレスBの多重割り込み時処理ルーチンP2
では、割り込み禁止状態は解除せず割り込み禁止のまま
走行するものとする。 本来の割り込み処理ルーヂンP1で割り込み禁止状態を
解除した時点で、多重に割り込んだ場合に、第一の割り
込みベクタテーブルVTIには、多重割り込み時処理ル
ーチンP2のエンI・リアドレスBになっているため、
多重割り込み時処理ルーチンP2が呼び出される。この
時、ベクタテーブルV Tl, V T2のエントリア
ドレスの入れ換えが起こるが、多重割り込め時処理ルー
チンP2では割り込み禁止状態を解除しないのでそのま
ま走行してリターンするため、再びエントリアドレスの
入れ換えが起こり、結果的にベクタテーブルVTI,,
VT2のエントリアドレスの入れ換えが起こらなかった
のと同様になる。そして本来の割り込みルーチンP1が
終了しリターンすることにより二つのべクタテーブルV
Tl. V T2のエントリアドレスは、初力J状態
に戻る。
I・リアドレスBが登録される第二の割り込みベクタテ
ーブルVT2を設け、割り込み発生時に、第−の割り込
みベクタテーブルVTIから割り込み処理ルーチンのア
トレスを求めた直後に、第−・の割り込みベクタテーブ
ルVTI のエントリアトレスと第二の割り込みベクタ
テーブルVT2のエントリアドレスを入れ換えて、この
入れ換え前に第一の割り込みベクタテーブルVTIから
求めたエントリアドレスの割り込み処理を呼び出す。 そしてこの割り込み処理の最後のリターンで再び該当す
る割り込み番号の第一の割り込みベクタテーブルVTI
のエンI・リアドレスと第二の割り込みベクタテーブル
VT2のエンI・リアドレスとを入れ換える。但し最初
に、第二の割り込みベクタテーブルVT2に登録される
エントリアドレスBの多重割り込み時処理ルーチンP2
では、割り込み禁止状態は解除せず割り込み禁止のまま
走行するものとする。 本来の割り込み処理ルーヂンP1で割り込み禁止状態を
解除した時点で、多重に割り込んだ場合に、第一の割り
込みベクタテーブルVTIには、多重割り込み時処理ル
ーチンP2のエンI・リアドレスBになっているため、
多重割り込み時処理ルーチンP2が呼び出される。この
時、ベクタテーブルV Tl, V T2のエントリア
ドレスの入れ換えが起こるが、多重割り込め時処理ルー
チンP2では割り込み禁止状態を解除しないのでそのま
ま走行してリターンするため、再びエントリアドレスの
入れ換えが起こり、結果的にベクタテーブルVTI,,
VT2のエントリアドレスの入れ換えが起こらなかった
のと同様になる。そして本来の割り込みルーチンP1が
終了しリターンすることにより二つのべクタテーブルV
Tl. V T2のエントリアドレスは、初力J状態
に戻る。
以下第1図ないし第4図を用いて本発明の実施例を説明
する。第1図はC P Uの要部処理の実施例を示すフ
ローチャ−1・で、同図(a)は割り込み発生時の処理
を、また同図(b)は割り込み処理リターン時の処理を
それぞれ6こ示ず。なお以下11〜22の符号は第1図
中のステップを示す。 また第2図ばー・ククテーブルの構戒の実施例を示し、
第3図,第4図はそれぞれ本来の割り込み処理PI,多
重割り込の処理P2の手順を示す。 割り込み発生時には、C P U内の処理は第1図(a
)のフローに示すように、図外の割り込みコン1・ロー
ラから当該の割り込み番号を読み込み(11)、第一の
割り込みベクタテーブルVTI内の当該の割り込み番号
に対応ずる領域から割り込みヘクタとしてのエントリア
ドレスを読み込んでセーブする(12)。 そして次に当該の割り込み番号に対応ずる、第一の削り
込みベクタテーブルVTI のエン1・リアトレスと第
二の割り込みベクタテーブルVT2のエントリアドレス
とを入れ換える(13)。なお第2図(a)は割り込み
ヘクタ番号が3番の場合の、エントリアドレス入れ換え
前のへククテーブルVTIVT2の状態を示し、同図(
b)は同しく入れ換え後の状態を示している。ここでエ
ントリアドレスABが入れ換っているが、このエントリ
アトレスAは本来の割り込み処理P1の先頭アトレスで
あり、エントリアドレスBは多重割り込み時処理P2の
先頭アドレスである。 さて前記ステソプ13のエントリアドレスの入れ換え後
、リターン時に必要な情報(cpuフラグ、命令カウン
タ、割り込み番号)をスタックへセーブし(14)、次
に入れ換え前の第一の割り込みベクタテーブルVTIの
エン1〜リアドレスAから本来の割り込み処理P1を実
行する(15)。このP1の処理では、第3図のように
始めは割り込み禁止とするが途中で;1ζリリ込み禁止
を解除して走行し、IIET[II?Nに至る。肝TU
RN命令のCPU内の処理は、第1図(b)の処理フロ
ーに従って、リターン時に必要な情報(cpuフラグ、
命令カウンタ、割り込み番号)を復元し(21)、当該
の割り込み番号を元に、第一の割り込みベクタテーブル
VTIのエントリアドレスと第二の割り込みベクタテー
ブル■T2のエントリアトレスとを再び入れ換える。こ
の時点では、初期の状態である第2図(a)の状態に戻
る。そして、割り込みにより中断していた状態(CPU
フラグ、命令カウンク)を復元し命令カウンクの示すコ
ードの実行を再開する(22)。 なお割り込み処理PLの実行中、割り込みが解除されて
いる時に、現在の割り込み処理P1と同一の割り込み番
号の割り込みが生した場合(つまり多重割り込みの場合
)でも、CPUは第1図のフローと全く同し動作を行う
。この場合、初めは第一の割り込みベクタテーブルVT
Iば第2図(b)の状態にあるため、cPUはエントリ
アドレスBの多重割り込み時処理P2を行う。但しこの
処理P2では実質的に有意な処理は行われず、直ちにR
ETURNを行う。コ(7) ’J タ− ン+1.!
lニもCPUば第1図(b)の処理を実行する。 なおこの多重割り込み時処理P2では、内部で割り込み
禁止の解除は行わない。従ってこの処理P2中に、(こ
のとき第一の割り込みベクタテーブルVTI のエント
リアドレスは第2図(a)の状態に入れ替っているが)
、現在の割り込み処理と同一のIIJり込み番号の割り
込みが生しても本来の割り込み処理P1が妨害されるこ
とば無い。 このように多重割り込み時処理P2からのリターン後は
、何も無かったのと同様に本来の割り込み処理P1が再
開される。
する。第1図はC P Uの要部処理の実施例を示すフ
ローチャ−1・で、同図(a)は割り込み発生時の処理
を、また同図(b)は割り込み処理リターン時の処理を
それぞれ6こ示ず。なお以下11〜22の符号は第1図
中のステップを示す。 また第2図ばー・ククテーブルの構戒の実施例を示し、
第3図,第4図はそれぞれ本来の割り込み処理PI,多
重割り込の処理P2の手順を示す。 割り込み発生時には、C P U内の処理は第1図(a
)のフローに示すように、図外の割り込みコン1・ロー
ラから当該の割り込み番号を読み込み(11)、第一の
割り込みベクタテーブルVTI内の当該の割り込み番号
に対応ずる領域から割り込みヘクタとしてのエントリア
ドレスを読み込んでセーブする(12)。 そして次に当該の割り込み番号に対応ずる、第一の削り
込みベクタテーブルVTI のエン1・リアトレスと第
二の割り込みベクタテーブルVT2のエントリアドレス
とを入れ換える(13)。なお第2図(a)は割り込み
ヘクタ番号が3番の場合の、エントリアドレス入れ換え
前のへククテーブルVTIVT2の状態を示し、同図(
b)は同しく入れ換え後の状態を示している。ここでエ
ントリアドレスABが入れ換っているが、このエントリ
アトレスAは本来の割り込み処理P1の先頭アトレスで
あり、エントリアドレスBは多重割り込み時処理P2の
先頭アドレスである。 さて前記ステソプ13のエントリアドレスの入れ換え後
、リターン時に必要な情報(cpuフラグ、命令カウン
タ、割り込み番号)をスタックへセーブし(14)、次
に入れ換え前の第一の割り込みベクタテーブルVTIの
エン1〜リアドレスAから本来の割り込み処理P1を実
行する(15)。このP1の処理では、第3図のように
始めは割り込み禁止とするが途中で;1ζリリ込み禁止
を解除して走行し、IIET[II?Nに至る。肝TU
RN命令のCPU内の処理は、第1図(b)の処理フロ
ーに従って、リターン時に必要な情報(cpuフラグ、
命令カウンタ、割り込み番号)を復元し(21)、当該
の割り込み番号を元に、第一の割り込みベクタテーブル
VTIのエントリアドレスと第二の割り込みベクタテー
ブル■T2のエントリアトレスとを再び入れ換える。こ
の時点では、初期の状態である第2図(a)の状態に戻
る。そして、割り込みにより中断していた状態(CPU
フラグ、命令カウンク)を復元し命令カウンクの示すコ
ードの実行を再開する(22)。 なお割り込み処理PLの実行中、割り込みが解除されて
いる時に、現在の割り込み処理P1と同一の割り込み番
号の割り込みが生した場合(つまり多重割り込みの場合
)でも、CPUは第1図のフローと全く同し動作を行う
。この場合、初めは第一の割り込みベクタテーブルVT
Iば第2図(b)の状態にあるため、cPUはエントリ
アドレスBの多重割り込み時処理P2を行う。但しこの
処理P2では実質的に有意な処理は行われず、直ちにR
ETURNを行う。コ(7) ’J タ− ン+1.!
lニもCPUば第1図(b)の処理を実行する。 なおこの多重割り込み時処理P2では、内部で割り込み
禁止の解除は行わない。従ってこの処理P2中に、(こ
のとき第一の割り込みベクタテーブルVTI のエント
リアドレスは第2図(a)の状態に入れ替っているが)
、現在の割り込み処理と同一のIIJり込み番号の割り
込みが生しても本来の割り込み処理P1が妨害されるこ
とば無い。 このように多重割り込み時処理P2からのリターン後は
、何も無かったのと同様に本来の割り込み処理P1が再
開される。
本発明によれば割り込み要求に応じて、第一の割り込み
ベクタテーブルVTlにおける該割り込み要求の番号に
対応する割り込みヘクタとしてのエントリアドレスの割
り込み処理ルーチンを実行するマイクロコンピュータシ
ステムにおいて、前記の割り込みベクタテーブルVTI
に対応するヘクタテーブルであって、多重割り込み時に
、割り込み禁止状態で実行される所定の割り込み処理ル
ーチンとしての多重割り込み時処理P2のエンドリアド
レスが割り込みベクタとして格納された第二の割り込み
ベクタテーブルVT2を設け、割り込み要求に応じて前
記第一の割り込みベクタテーブルVTIにおける当該の
エントリアドレスの割り込み処理ルーチンを実行する直
前、およびこの割り込み処理ルーチンより復帰する際に
、前記2つの割り込みベクタテーブルV TL V T
2の当該の割り込みベククのエントリアドレスを相互に
入れ替えるようにしたので、 本来の割り込み処理ルーチンP1と、多重割り込み時処
理ルーチンP2を別々作或できるため、割り込み処理ル
ーチンの構造を簡潔にでき、設計メンテナンスが容易に
なる。 10
ベクタテーブルVTlにおける該割り込み要求の番号に
対応する割り込みヘクタとしてのエントリアドレスの割
り込み処理ルーチンを実行するマイクロコンピュータシ
ステムにおいて、前記の割り込みベクタテーブルVTI
に対応するヘクタテーブルであって、多重割り込み時に
、割り込み禁止状態で実行される所定の割り込み処理ル
ーチンとしての多重割り込み時処理P2のエンドリアド
レスが割り込みベクタとして格納された第二の割り込み
ベクタテーブルVT2を設け、割り込み要求に応じて前
記第一の割り込みベクタテーブルVTIにおける当該の
エントリアドレスの割り込み処理ルーチンを実行する直
前、およびこの割り込み処理ルーチンより復帰する際に
、前記2つの割り込みベクタテーブルV TL V T
2の当該の割り込みベククのエントリアドレスを相互に
入れ替えるようにしたので、 本来の割り込み処理ルーチンP1と、多重割り込み時処
理ルーチンP2を別々作或できるため、割り込み処理ル
ーチンの構造を簡潔にでき、設計メンテナンスが容易に
なる。 10
第1図は木発明の一実施例としてのCPUの要部動作を
示すフローチャート、 第2図は同しく割り込みベクタテーブルの構威図、 第3図は同しく本来の割り込み処理の手順を示すフロー
チャ−1・、 第4図は同じく多重割り込み時処理の手順を示すフロー
チャートである。 VTLVT2 :割り込みへククテーブル、P1 :
割り込み処理、 P2 :多重割り込み時処理、 A:割り込み時処理P1のエントリアドレス、B:多重
割り込み時処理P2のエントリアドレス。
示すフローチャート、 第2図は同しく割り込みベクタテーブルの構威図、 第3図は同しく本来の割り込み処理の手順を示すフロー
チャ−1・、 第4図は同じく多重割り込み時処理の手順を示すフロー
チャートである。 VTLVT2 :割り込みへククテーブル、P1 :
割り込み処理、 P2 :多重割り込み時処理、 A:割り込み時処理P1のエントリアドレス、B:多重
割り込み時処理P2のエントリアドレス。
Claims (1)
- 【特許請求の範囲】 1)割り込み要求に応じて、第1の割り込みベクタテー
ブルにおける該割り込み要求の番号に対応する割り込み
ベクタとしてのエントリアドレスの割り込み処理ルーチ
ンを実行するマイクロコンピュータシステムにおいて、 前記の割り込みベクタテーブルに対応するベクタテーブ
ルであって、多重割り込み時に、割り込み禁止状態で実
行される所定の割り込み処理ルーチンのエントリアドレ
スが割り込みベクタとして格納された第二の割り込みベ
クタテーブルを設け、割り込み要求に応じて前記第一の
割り込みベクタテーブルにおける当該のエントリアドレ
スの割り込み処理ルーチンを実行する直前、およびこの
割り込み処理ルーチンより復帰する際に、前記2つの割
り込みベクタテーブルの当該の割り込みベクタのエント
リアドレスを相互に入れ替えるようにしたことを特徴と
する割り込み処理の制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1241194A JPH03102530A (ja) | 1989-09-18 | 1989-09-18 | 割り込み処理の制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1241194A JPH03102530A (ja) | 1989-09-18 | 1989-09-18 | 割り込み処理の制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03102530A true JPH03102530A (ja) | 1991-04-26 |
Family
ID=17070611
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1241194A Pending JPH03102530A (ja) | 1989-09-18 | 1989-09-18 | 割り込み処理の制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03102530A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100436393B1 (ko) * | 2002-01-03 | 2004-06-16 | 주식회사 포스코건설 | 원료의 화차 상차를 위한 장입장치 |
| JP2020060908A (ja) * | 2018-10-09 | 2020-04-16 | Scsk株式会社 | 処理プログラム、及び処理システム |
-
1989
- 1989-09-18 JP JP1241194A patent/JPH03102530A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100436393B1 (ko) * | 2002-01-03 | 2004-06-16 | 주식회사 포스코건설 | 원료의 화차 상차를 위한 장입장치 |
| JP2020060908A (ja) * | 2018-10-09 | 2020-04-16 | Scsk株式会社 | 処理プログラム、及び処理システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1189137A1 (en) | Interruption managing device and interruption managing method | |
| JPH0430053B2 (ja) | ||
| KR860700302A (ko) | 이중화 처리기 시스템 및 그 동작변경방법 | |
| JPH03102530A (ja) | 割り込み処理の制御方法 | |
| JP2677458B2 (ja) | システムコール実行装置 | |
| JP2004046857A (ja) | マルチタスキング可能なコンピュータプログラムの進行の制御方法および制御装置 | |
| JPH04101216A (ja) | Osロード処理における代替パス制御方式 | |
| JPH0346034A (ja) | 情報処理システム | |
| JPS6126090B2 (ja) | ||
| JPH03109643A (ja) | データ例外手続き実行方式 | |
| JPS6159539A (ja) | サブプロセツサのレジスタ退避/復帰方式 | |
| JPH0212531A (ja) | 仮想計算機の割込み制御方式 | |
| JP2004110608A (ja) | プロセッサにおける割込み発生時のレジスタ退避方法および装置並びにプログラム | |
| JPH05216649A (ja) | システムプログラム動的変更方式 | |
| JPH0242538A (ja) | マイクロプロセッサ | |
| JPH0266632A (ja) | 割込み制御方式 | |
| JPH09152978A (ja) | 情報処理装置の再開処理システム | |
| JPH02183342A (ja) | 割込み制御装置 | |
| JPH0962500A (ja) | 動的パッチ方法および動的パッチシステム | |
| JPH0394360A (ja) | マルチプロセッサシステムの入出力割込み制御方式 | |
| JPS6325736A (ja) | 仮想計算機システムにおける割込み制御方式 | |
| JPS63245736A (ja) | 排他制御コントロ−ラ引き継ぎ方式 | |
| JPH0370030A (ja) | 構成制御方式 | |
| JPH09282165A (ja) | 情報処理装置 | |
| JPH03141435A (ja) | プロセス切り換え方式 |