JPH06110707A - 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ - Google Patents

高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ

Info

Publication number
JPH06110707A
JPH06110707A JP25645692A JP25645692A JPH06110707A JP H06110707 A JPH06110707 A JP H06110707A JP 25645692 A JP25645692 A JP 25645692A JP 25645692 A JP25645692 A JP 25645692A JP H06110707 A JPH06110707 A JP H06110707A
Authority
JP
Japan
Prior art keywords
program counter
normal
interrupt
bit
processing
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
JP25645692A
Other languages
English (en)
Inventor
Yasuo Yamada
泰生 山田
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.)
JFE Steel Corp
Original Assignee
Kawasaki Steel Corp
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 Kawasaki Steel Corp filed Critical Kawasaki Steel Corp
Priority to JP25645692A priority Critical patent/JPH06110707A/ja
Publication of JPH06110707A publication Critical patent/JPH06110707A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 将来必要になるかもしれない新たな高優先度
割り込みにも対応できる大きな自由度を、非常に簡単な
機構により提供し、既存のマイクロプロセッサにも高優
先割り込み機能の追加を可能とする。 【構成】 高優先度の割り込み処理を行う場合には、プ
ログラムカウンタの最上位ビットから少なくとも1ビッ
トを、高優先度の追加割り込み処理中であることを示す
識別ビットの退避場所として用いる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、既存のマイクロプロセ
ッサに、新たな割り込みを追加して、デバッグ効率の向
上や、高度なオペレーティングシステムの導入などを可
能にするための高優先度割り込み方法及び該方法が採用
されたマイクロプロセッサに係わり、特に、多くの種類
の新たな割り込み機構に効率良く対応し、且つ、それら
割り込みの多重発生(多重割り込み)をも許容すること
ができる技術に関するものである。
【0002】
【従来の技術】既存のマイクロプロセッサでは、蓄積さ
れたソフトウェア資産が利用できる一方、それが開発さ
れた時代の制約により、デバッグ支援やオペレーティン
グシステム対応などの高度な機能は備わっていない。そ
こで、近代的なプログラミング環境を提供する必要があ
るため、従来のソフトウェア資産と整合を取りながら、
高度な機能を追加することが望まれる。
【0003】これら既存のマイクロプロセッサに、デバ
ッグ支援やオペレーティングシステムなどに対応した処
理(プログラム)を追加する場合、蓄積されたソフトウ
ェア資産の、ユーザのフログラムが使用している領域と
の競合を避けるため、新たなプログラム空間を割り当て
る必要がある。
【0004】又、デバッグ支援やオペレーティングシス
テム対応では、優先度の高い割り込みを使用することが
不可欠であるが、そのプロセッサが備えている割り込み
機構は、全てユーザが利用している可能性があり、又、
例え優先度が低いものが余っていても、役に立たないた
め、その一部を、デバッグ支援やオペレーティングシス
テムのために振り向けることができない。そこで、新た
な高優先度割り込み機能を追加する必要に迫られる。
【0005】これらの条件に合致した一般的な解決策
は、アドレス情報を1ビット増やし、通常の処理や、従
来から備えられている割り込み処理を実行する場合と、
新たに追加した割り込み処理を実行する場合をアドレス
空間で区別できるようにすることである。更に、図1に
示すように、高優先度の割り込み処理を実行している
か、通常の処理又は通常の割り込み処理を実行している
かを識別する識別ビット(以下Sビットと称する)を追
加し、通常の処理を行う場合には、図1に示す如く、プ
ログラムカウンタの全ビットを、実行すべき命令語のア
ドレス指定に用い、通常の割り込み処理を行う場合に
は、図2に示す如く、通常処理の再開アドレスをスタッ
クに退避し、一方、新たに追加した高優先度の割り込み
処理を実行する場合には、図3に示す如く、追加したS
ビットを1にすると共に、通常割り込みの再開アドレス
をスタックに退避するようにして、従来から備えられて
いたプログラム空間とは別のプログラム空間を使用すれ
ばよい。
【0006】ところが、このSビットに相当する情報
は、既存のマイクロプロセッサのアーキテクチャには含
まれていないため、割り込み時にスタックに退避/復帰
することができない。更に、そのような命令を備えてい
ないばかりでなく、スタック上にSビットに相当する情
報が退避/復帰されることを想定していないため、例え
新たな命令を追加して実現しても、様々な不都合の発生
が予想される。
【0007】そのため、追加した割り込み機構では、多
重割り込みを禁止し、唯一の割り込みにしか対処しない
のが通常の方法であった。即ち、図3の状態では、更な
る高優先度の割り込みは禁止される。
【0008】
【発明が解決しようとする問題点】しかしながら、上で
例に挙げただけでも、デバッグ支援とオペレーティング
システムという2つの要因があり、しかも、オペレーテ
ィングシステムのデバッグ時にデバッグ支援機能を利用
する都合上、高優先度においても多重割り込みへの対応
が強く望まれる。
【0009】一番単純な解決策としては、必要な多重度
分の識別機構(Sビット)を追加し、これら追加した識
別情報は、多重割り込み時にも、スタックなどへの退避
/復帰をしない、というものがある。
【0010】ところが、この方法は、予め設けられた識
別機構の数の割り込みにしか対処できず、スタックのた
めのメモリが許すだけ、自由に多重に割り込みを受け付
けることができる既存の割り込み機構と比べ、著しく自
由度が低くなる。
【0011】又、予め十分なだけ多くの識別機構を備え
ることは、それを必要としない用途にとって、過剰なコ
ストを要求することとなる等の問題点を有していた。
【0012】本発明は、前記従来の問題点を解消するべ
く成されたもので、将来必要になるかもしれない新たな
高優先度割り込みにも対応できる大きな自由度を、非常
に簡単な機構により提供することが可能な、高優先度割
り込み方法及び該方法が採用されたプロセッサを提供す
ることを目的とする。
【0013】
【課題を達成するための手段】本発明は、高優先度割り
込み機能を追加するに際して、高優先度の割り込み処理
を実行しているか、通常の処理又は通常の割り込み処理
を実行しているかを識別する識別ビットを設け、通常の
処理又は通常の割り込み処理を行う場合には、プログラ
ムカウンタの全ビットを、実行すべき命令語のアドレス
指定に用い、高優先度の割り込み処理を行う場合には、
プログラムカウンタの1部のビットを前記識別ビットの
退避場所として用いると共に、プログラムカウンタの残
りのビットを、実行すべき命令語のアドレス指定に用
い、通常の処理又は通常の割り込み又は高優先度の割り
込み処理の途中で、新たな割り込み処理に移行する際に
は、プログラムカウンタの一部を前記識別ビットの退避
場所として用いるか否かに拘らず、プログラムカウンタ
の全ビットをスタック機構に退避することにより、前記
目的を達成したものである。
【0014】又、高優先度割り込み方法が採用されたマ
イクロプロセッサを、プログラムカウンタと、スタック
機構と、高優先度の割り込み処理を実行しているか、通
常の処理又は通常の割り込み処理を実行しているかを識
別する識別ビットを有し、通常の処理又は通常の割り込
み処理を行う場合には、プログラムカウンタの全ビット
を、実行すべき命令語のアドレス指定に用い、高優先度
の割り込み処理を行う場合には、プログラムカウンタの
最上位ビットから少なくとも1ビットを前記識別ビット
の退避場所として用いると共に、プログラムカウンタの
残りのビットを、実行すべき命令語のアドレス指定に用
い、通常の処理又は通常の割り込み処理又は高優先度の
割り込み処理の途中で、新たな割り込み処理に移行する
際には、プログラムカウンタの一部を前記識別ビットの
退避場所として用いているか否かに拘らず、プログラム
カウンタの全ビットをスタック機構に退避するように制
御する割り込み制御部とを用いて構成したものである。
【0015】
【作用】本発明においては、新たに追加する割り込みの
識別情報(Sビット)を、例えば1ビットに限定すると
共に、それを既存の割り込み機構と同様、スタック機構
に退避/復帰することで、多重割り込みに対応し、又、
多くの種類の高優先度割り込みを可能とする。そのた
め、高優先度割り込み処理中のプログラムカウンタのビ
ット幅をSビットの分だけ削減し、そのビットを識別情
報の退避場所として使用する。
【0016】プログラムカウンタのビット幅がSビット
の分だけ減少することは、例えばSビットが1ビットの
場合、プログラム空間が半分になることを意味する。し
かし、デバッグ支援やオペレーティングシステムなどの
プログラムのみで、全プログラム空間を埋め尽くすこと
は考え難い。むしろ、デバッグ対象になるプログラム
や、そのオペレーティングシステム上で動作するプログ
ラムのコード量の方が大きいと考えるのが自然であり、
プログラム空間が半分になることは、さしたる問題点と
はならない。
【0017】例えば、既存の8ビットマイクロプロセッ
サの場合、プログラムカウンタは16ビット幅であるか
ら、64Kバイトのプログラム空間を有する。これが、
高優先度割り込み処理中に限り、プログラムカウンタが
15ビット幅になり、プログラム空間が32Kバイトに
制限されることになる。32Kバイトという広さは、8
ビットマイクロプロセッサの処理能力を考えた場合、
又、本来もっているところの64Kバイトのプログラム
空間と比較した場合、十分な広さであり、例えば1ビッ
ト削減されることは、全く問題とならない。
【0018】高優先度割り込みが多重に発生したとき、
Sビットは、プログラムカウンタから削減したビットに
退避されているため、通常の割り込み時にプログラムカ
ウンタの全ビットがスタックに退避されているのと同
様、何の支障もなくスタック機構に退避することができ
る。これにより、スタック機構(メモリ)の容量が許す
限り、多重に、又多種の高優先度割り込みに対応するこ
とができる。
【0019】本発明によれば、必要に応じてスタック機
構(メモリ)を追加増設すればよいことになり、用途に
応じて必要十分な機能を、それに見合うだけのコストで
実現することができる。
【0020】
【実施例】以下図面を参照して、本発明の実施例を詳細
に説明する。
【0021】本実施例のマイクロプロセッサは、図4に
示す如く、演算部20と、メモリ22と、命令実行制御
部24と、複数のレジスタ(図ではレジスタ1、2、3
の3個)31、32、33及びスタックポインタ36を
含んで構成されるスタック機構30と、プログラムカウ
ンタ40と、高優先度の割り込み処理を実行している
か、通常の処理又は通常の割り込み処理を実行している
かを識別するSビット52を有し、通常の処理又は通常
の割り込み処理を行う場合には、プログラムカウンタ4
0の全ビットを、実行すべき命令語のアドレス指定に用
い、高優先度の割り込み処理を行う場合には、プログラ
ムカウンタの最上位ビットを前記Sビットの退避場所と
して用いると共に、プログラムカウンタ40の残りのビ
ットを、実行すべき命令語のアドレス指定に用い、通常
の処理又は通常の割り込み又は高優先度の割り込み処理
の途中で、新たな割り込み処理に移行する際には、プロ
グラムカウンタ40の一部を、前記Sビット52の退避
場所として用いているか否かに拘らず、プログラムカウ
ンタ40の全ビットをスタック機構30に退避するよう
制御する割り込み制御部50と、を備えている。
【0022】前記Sビットは、通常の処理又は通常の割
り込み処理を実行している場合は、0であり、高優先度
の割り込み処理を実行している場合は、1となる。
【0023】以下実施例の動作を説明する。
【0024】まず、通常の処理(プログラム)を実行し
ている状態では、図5に示す如く、Sビットは0であ
り、スタック機構30には、ここで問題にしている割り
込み関係の情報は何も積まれていない。
【0025】ここで、通常の割り込みが発生すると、そ
の割り込み処理プログラムへ移行する。ここでの割り込
みは、通常の割り込みであるから、図6に示す如く、S
ビットは0のままであり、その割り込みが発生する前の
プログラムカウンタ40の値を、割り込み処理終了後の
再開アドレスとして、スタック機構30に積む。
【0026】この通常割り込みが多重に発生した場合で
も、Sビットは0のままであり、最新の割り込み処理終
了後の再開アドレスを、スタック機構30に順次積み増
すだけである。
【0027】次に、本発明が対象とする高優先度の割り
込みが発生すると、その割り込み処理プログラムへ移行
する。高優先度の割り込みであるから、図7に示す如
く、Sビットは1になるが、以前のSビットは、プログ
ラムカウンタ40の最上位ビットの位置に退避される。
【0028】この一連の処理は、図8に示す如く、ま
ず、プログラムカウンタをスタック機構に退避し(ステ
ップ100)、次いで、旧Sビットをプログラムカウン
タの最上位ビットに移すと共に、高優先度割り込み処理
プログラムの開始アドレスをプログラムカウンタの残り
のビットへ設定し(ステップ102)、次いで、Sビッ
トを1にする(ステップ104)という手順で行われ
る。 この一連の手順は、図9に示す如く、高優先度割
り込み処理中に、更に高優先度割り込みが多重に発生し
た場合でも、同じである。
【0029】高優先度割り込みの多重割り込みの場合、
プログラムカウンタをスタックに退避する際に、その最
上位ビット位置に保存されている旧Sビットも同時にス
タック機構に退避されるので、旧Sビットの情報が失わ
れることはない。又、Sビットを1にする処理は、それ
が既に1になっていたとしても、何等区別することなく
行って差し支えないのはいうまでもない。
【0030】このようにして、スタック容量が許す限
り、多重に高優先度割り込みを受け付けることができ
る。
【0031】一方、割り込みから復帰する際の手順は、
図10に示す如く、Sビットが1か否か判定し(ステッ
プ200)、判定結果が真である場合にのみ、プログラ
ムカウンタの最上位ビットに退避してあった旧Sビット
をSビットに復帰し(ステップ202)、次いで、スタ
ック機構からプログラムカウンタを回復する(ステップ
204)ということになる。
【0032】例えば、図11の場合、Sビットが1であ
るから、プログラムカウンタの最上位ビットに退避して
あった1がSビットに復帰され、割り込みから復帰した
後も、別の高優先度割り込み処理中であることを示して
いる。又、プログラムカウンタが、Sビット退避用の最
上位ビットを含めて、スタックから回復される。これに
より、図9の割り込みが発生する前の図7と同じ状態に
戻る。
【0033】更に、図11の状態でも、Sビットが1で
あるから、図12に示す如く、プログラムカウンタの最
上位ビットに退避してあった0がSビットに復帰され、
割り込みから復帰した後は、通常の処理、又は通常の割
り込み処理中であることが示されている。プログラムカ
ウンタがスタックから回復される様子は、図11と同様
である。
【0034】全ての割り込み処理が終了した復帰後の状
態を図13に示す。
【0035】新たに追加した高優先度割り込みは、その
性質上、高優先度割り込み処理中に従来の割り込みを許
可すべきものではない。従って、高優先度割り込み処理
中に通常割り込みが発生してSビットを0にしてしま
い、中断していた高優先度割り込み処理に復帰すること
ができないという問題は発生しない。
【0036】なお、高優先度割り込み処理中(Sビット
が1である間)は、プログラムカウンタの最上位ビット
を不用意に変更すべきではない。即ち、通常の分岐命令
やサブルーチンコール命令、サブルーチン戻り命令では
変更すべきではなく、割り込みからの戻り命令でスタッ
クから回復する場合に限り変更を許すべきである。この
区別は、Sビットが1の場合にプログラムカウンタの最
上位ビットへのロードを制限することで容易に実現で
き、特に制御が複雑になることはない。
【0037】高優先度割り込み処理中のプログラムカウ
ンタの値は、最初の高優先度割り込み処理中は最上位ビ
ットが0であり、多重に発生した高優先度割り込み処理
中は最上位ビットが1になる。このように、同じ高優先
度割り込みでも、発生した状況により異なったプログラ
ムカウンタを示すことは、好ましい場合も、又、好まし
くない場合も考えられる。従って、必要であれば、Sビ
ットが1である間は、プログラムカウンタの最上位ビッ
トを0又は1に固定して命令語をアクセスすることによ
り、最初の割り込みと多重に発生した割り込みとの相違
をなくすことができる。勿論、プログラムカウンタの最
上位ビットを固定せず、この区別を積極的に利用するこ
とも可能である。なお、このプログラムカウンタの相違
を利用するか否かは、プログラムカウンタによりアクセ
スされるメモリのアドレスをデコードするアドレスデコ
ーダにより選択できるため、ユーザの使い方次第で、非
常に多くの可能性を秘めている。
【0038】8ビットマイクロプロセッサの場合、割り
込み時にプログラムカウンタを退避するために2バイト
のスタックを処理する。実際は、割り込み処理で使用す
るレジスタを多数退避するために、1割り込み要因あた
り数十バイトのスタック領域を確保する。このとき、プ
ログラムカウンタと同時に退避されるSビットが消費す
る1ビットは、全く無視できる程僅かな量であるが、こ
れにSビットを退避する機構のために、スタックメモリ
の許す限り多重に、又、多種の高優先度割り込みに対応
することができる。メモリのコストを考えると、スタッ
クメモリに必要なコストは微々たるものである。
【0039】なお、Sビットのビット数は1に限定され
ず、プログラムカウンタへの退避位置も最上位ビットに
限定されない。
【0040】
【発明の効果】以上説明した通り、本発明によれば、将
来必要になるかもしれない新たな高優先度割り込みにも
対応できる大きな自由度を、非常に簡単な機構により提
供することができ、既存のマイクロプロセッサに対する
高優先度割り込み機能追加も容易に行えるという優れた
効果を有する。
【図面の簡単な説明】
【図1】従来の手法により追加した高優先度割り込みの
動作を説明するための、通常の処理を実行している状態
を示す線図
【図2】同じく通常の割り込み処理に移行した状態を示
す線図
【図3】同じく高優先度の割り込み処理に移行した状態
を示す線図
【図4】本発明に係るマイクロプロセッサの実施例の構
成を示すブロック線図
【図5】前記実施例で通常の処理を実行している状態を
示す線図
【図6】同じく通常の割り込み処理に移行した状態を示
す線図
【図7】同じく高優先度の割り込み処理に移行した状態
を示す線図
【図8】前記実施例における高優先度の割り込みが発生
したときの処理手順を示す流れ図
【図9】前記実施例で高優先度の割り込み処理が多重に
発生した状態を示す線図
【図10】前記実施例における割り込みからの復帰手順
を示す流れ図
【図11】前記実施例で高優先度の多重割り込み処理が
終了した状態を示す線図
【図12】同じく高優先度の割り込み処理が全て終了し
た状態を示す線図
【図13】同じく通常の割り込み処理が終了した状態を
示す線図
【符号の説明】
20…演算部 22…メモリ 24…命令実行制御部 30…スタック機構 31〜33…レジスタ 36…スタックポインタ 40…プログラムカウンタ 50…割り込み制御部 52…Sビット

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】高優先度の割り込み処理を実行している
    か、通常の処理又は通常の割り込み処理を実行している
    かを識別する識別ビットを設け、 通常の処理又は通常の割り込み処理を行う場合には、プ
    ログラムカウンタの全ビットを、実行すべき命令語のア
    ドレス指定に用い、 高優先度の割り込み処理を行う場合には、プログラムカ
    ウンタの1部のビットを前記識別ビットの退避場所とし
    て用いると共に、プログラムカウンタの残りのビット
    を、実行すべき命令語のアドレス指定に用い、 通常の処理又は通常の割り込み又は高優先度の割り込み
    処理の途中で、新たな割り込み処理に移行する際には、
    プログラムカウンタの一部を前記識別ビットの退避場所
    として用いるか否かに拘らず、プログラムカウンタの全
    ビットをスタック機構に退避することを特徴とする高優
    先度割り込み方法。
  2. 【請求項2】プログラムカウンタと、 スタック機構と、 高優先度の割り込み処理を実行しているか、通常の処理
    又は通常の割り込み処理を実行しているかを識別する識
    別ビットを有し、通常の処理又は通常の割り込み処理を
    行う場合には、プログラムカウンタの全ビットを、実行
    すべき命令語のアドレス指定に用い、高優先度の割り込
    み処理を行う場合には、プログラムカウンタの最上位ビ
    ットから少なくとも1ビットを前記識別ビットの退避場
    所として用いると共に、プログラムカウンタの残りのビ
    ットを、実行すべき命令語のアドレス指定に用い、通常
    の処理又は通常の割り込み処理又は高優先度の割り込み
    処理の途中で、新たな割り込み処理に移行する際には、
    プログラムカウンタの一部を前記識別ビットの退避場所
    として用いているか否かに拘らず、プログラムカウンタ
    の全ビットをスタック機構に退避するように制御する割
    り込み制御部と、 を備えたことを特徴とするマイクロプロセッサ。
JP25645692A 1992-09-25 1992-09-25 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ Pending JPH06110707A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25645692A JPH06110707A (ja) 1992-09-25 1992-09-25 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25645692A JPH06110707A (ja) 1992-09-25 1992-09-25 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH06110707A true JPH06110707A (ja) 1994-04-22

Family

ID=17292897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25645692A Pending JPH06110707A (ja) 1992-09-25 1992-09-25 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH06110707A (ja)

Similar Documents

Publication Publication Date Title
CA1260149A (en) Computer system for controlling virtual machines
FI78993C (fi) Oevervakare av driftsystem.
US5459682A (en) Microcomputer with plural registers and function for selecting them
US4274138A (en) Stored program control system with switching between instruction word systems
US7802252B2 (en) Method and apparatus for selecting the architecture level to which a processor appears to conform
EP0735488B1 (en) Multi-program execution controlling apparatus
JPH02267634A (ja) 割込み処理装置
JPS646488B2 (ja)
EP0330226B1 (en) Apparatus of and method for executing subprogram in bank switching data processing system
EP0104840B1 (en) Multiprocessor system including firmware
EP0074479A2 (en) Data processing apparatus with intersegment call
US5600807A (en) Programmable controller capable of updating a user program during operation by switching between user program memories
US4095268A (en) System for stopping and restarting the operation of a data processor
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
JPH06110707A (ja) 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ
US20010052068A1 (en) Method of transferring program to internal memory from external memory and microcomputer using the same
JP2826309B2 (ja) 情報処理装置
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JP2001022413A (ja) プログラマブルコントローラ
JP2005275703A (ja) プロセッサ及びコンテキスト切り替え方法
JP2004287618A (ja) オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置
JPS59218569A (ja) マイクロ・コンピユ−タ
US20020129229A1 (en) Microinstruction sequencer stack
JPH08272757A (ja) マルチプロセッサシステム及びプログラム起動方法
JPS62151942A (ja) タスク切換え方式