JPH04329442A - マイクロコンピュータにおける割込処理方法 - Google Patents

マイクロコンピュータにおける割込処理方法

Info

Publication number
JPH04329442A
JPH04329442A JP12861291A JP12861291A JPH04329442A JP H04329442 A JPH04329442 A JP H04329442A JP 12861291 A JP12861291 A JP 12861291A JP 12861291 A JP12861291 A JP 12861291A JP H04329442 A JPH04329442 A JP H04329442A
Authority
JP
Japan
Prior art keywords
interrupt
processing
priority
interrupt processing
interruption
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
JP12861291A
Other languages
English (en)
Inventor
Ryuichi Oki
沖 隆一
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.)
Sodick Co Ltd
Original Assignee
Sodick Co 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 Sodick Co Ltd filed Critical Sodick Co Ltd
Priority to JP12861291A priority Critical patent/JPH04329442A/ja
Publication of JPH04329442A publication Critical patent/JPH04329442A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
における割込処理方法に関する。
【0002】
【従来の技術】マイクロコンピュータにおいて、割込処
理を行なう場合、割込コントローラ(インテル社製の8
259等)を介して、ある割込信号がマイクロプロセッ
サに入ると、そのマイクロプロセッサは現在行なってい
る処理を一時中断し、上記割込処理を行なう。
【0003】ところが、割込処理中に、後発の同じ割込
信号(現在行なっている割込処理よりも遅く発生し、そ
の割込処理と同じ割込処理を命令する信号)を受付けて
制御を移行すると、最初の割込におけるデータが破壊さ
れ、予想外の動きをする。これを防止するには、割込処
理中は、後発の同じ割込信号を受付けないようにしなけ
ればならないが、割込処理全体にわたって同じ割込を受
付けないようにすると、割込を受付けない時間が長くな
り、その間に発生した事象を見逃す確率が高くなり、シ
ステムの性能低下をもたらす。
【0004】この性能低下を防ぐためには、割込処理の
中でも、処理を直ちに完了しなければならない部分(割
込をネスティングすると、データが破壊される部分)以
外は、割込処理中であっても同じ割込信号を受付けるよ
うにする。この方法として、従来、次の2つの方法が提
案されている。
【0005】(1) 割込のネスティングによって不都
合が発生する部分でマイクロプロセッサが割込を受付け
ないようにし、上記不都合発生部分の処理が終わったと
きに割込を受付けるようにする。
【0006】(2) 割込のネスティングによって不都
合が発生する部分では、割込コントローラがマイクロプ
ロセッサに割込信号を送らないようにし、上記不都合発
生部分の処理が終ったときに割込信号を送るようにする
【0007】
【発明が解決しようとする課題】ところが、上記(1)
 の方法では、全ての割込の受付けができないので、現
在実行中の割込処理よりも優先度が高い割込が発生して
も、その処理へ直ちに移行することができないという問
題がある。
【0008】一方、上記(2) の方法では、ネスティ
ングによって不都合が発生しない部分において、同じ事
象が発生した場合、割込によってそこへ再度、制御移行
を行なうと、後発の割込の全ての処理が終了した後に、
初めて、先発割込の残りの処理を行なうことになる。し
たがって、上記の場合には、処理の順序に矛盾が生じる
という問題がある。
【0009】つまり、上記(2) の方法において、割
込コントローラが8259である場合、まず、8259
を一般EOIモードにセットしておく。このようにセッ
トしておけば、マイクロプロセッサが8259からの割
込を受取り、その処理へ制御移行しても、8259は自
動的にはEOI処理をしないので、ソフトウェアによっ
てマイクロプロセッサから8259へEOIが送られる
まで、同じレベルまたはそれ以下の優先度の割込をマイ
クロプロセッサへ送らない。しかし、現在処理中の優先
度よりも高い優先度の割込はマイクロプロセッサに送る
。 ここで、マイクロプロセッサが割込受付け可能状態であ
れば、現在処理中の優先度よりも高い優先度の割込のみ
が受付けられることになり、上記(1) の方法におけ
る問題がなくなる。
【0010】ところが、上記(2) において、割込の
ネスティングによって不都合が発生する部分の実行が終
ると、ソフトウェアによって、EOIをマイクロプロセ
ッサから8259へ送れば、8259は割込処理が全て
完了したものとして、事象が発生次第、全ての優先度の
割込信号をマイクロプロセッサへ送る。したがって、上
記(2) の方法においては、ネスティングによって不
都合が発生しない部分で同じ事象が発生し割込によって
そこへ再度、制御移行を行なうと、第6図に示すように
、後発の割込の全ての処理が終了してから、先に発生し
た割込の残りの処理を行なうことになり、割込の処理順
序に矛盾が生じる。
【0011】つまり、第6図において、■、■、■、■
は処理の順序を示す符号であり、メイン処理の途中で、
先発の(先に発生した)割込を受付けると、この先発割
込処理のうち■部分を処理し、次に後発(後で発生した
)割込を受付け、その■部分を処理した後に、その■部
分を処理し、その後に、先発割込における後半(■部分
)を処理する。このように処理すると、先発割込の優先
順位が高いにもかかわらず、割込優先順位が低い後発割
込を必ず終了してから、優先順位の高い先発割込処理が
終了することになり、処理の順序に矛盾が生じる。
【0012】なお、上記割込の処理順序の矛盾は、上記
(1) の方法であっても同様に発生する。
【0013】本発明は、ネスティングによって不都合が
発生しない部分で同じ事象が発生し割込によってそこへ
再度、制御移行を行なったときに、割込の処理順序に矛
盾が生じない割込処理方法を提供することを目的とする
ものである。
【0014】
【課題を解決するための手段】本発明は、1つの割込処
理を前半と後半とに分け、上記割込処理の後半の優先度
を、上記割込処理の前半の優先度よりも下げるとともに
外的事象の割込の優先度の最も低いものよりも下げ、割
込のネスティングによって不都合を生じる不都合発生部
分と上記不都合を生じない不都合不発生部分とに、割込
処理を分割し、上記不都合発生部分においては後発の割
込処理のうち、現在実行中の処理よりも優先度の高い処
理を実行し、現在実行中の処理と優先度が同じかまたは
低い処理を実行せず、上記不都合不発生部分においては
外的事象によって発生した信号を全て受けるものである
【0015】
【実施例】第1図は、本発明の一実施例を示すブロック
図である。
【0016】この実施例において、マイクロプロセッサ
10としてインテル社製の80386を使用し、割込コ
ントローラ20としてインテル社製の8259を使用し
ている。コントローラ20の入力端子IR0〜IR7の
うち、優先度が高い上位4本IR0、IR1、IR2、
IR3は、外部で発生する事象と接続されている(外部
割込要求を受ける)。そして優先度の下位4本IR4、
IR5、IR6、IR7は、マイクロプロセッサ10が
出力命令を実行することによって発生する事象に接続さ
れている。なお、アドレスデコーダ11は、マイクロプ
ロセッサ10からのアドレスをデコードするものであり
、アドレスデコーダ11とコントローラ20との間に、
D−フリップフロップ14、15、16、17が設けら
れている。
【0017】なお、コントローラ20における入力端子
の優先度は、IR0、IR1、IR2、IR3、IR4
、IR5、IR6、IR7の順に低く、IR0とIR4
とが組になり、IR1とIR5とが組になり、IR2と
IR6とが組になり、IR3とIR7とが組になってい
る。つまり、割込のネスティングによって不都合を生じ
る不都合発生部分と上記不都合を生じない不都合不発生
部分とに割込処理を分割し、上記不都合発生部分に対応
する入力端子がIR0〜IR3であり、上記不都合不発
生部分に対応する入力端子がIR4〜IR7である。
【0018】そして、上記不都合発生部分においては後
発の割込処理を行なわず、不都合不発生部分においては
後発の割込処理のうち、現在実行中の割込処理よりも優
先度の高いものを受付けるようにしている。
【0019】次に、上記実施例の動作について説明する
【0020】第2図は、上記実施例の動作説明図である
【0021】まず、メイン処理を行ない、この最初の部
分において変数Aを0にしてイニシャライズし、コント
ローラ20を一般EOIモードにセットする。そして、
上記メイン処理を行ない、その途中で割込処理が入ると
、次の動作を行なう。
【0022】まず、マイクロプロセッサ10を割込可能
にセットし、マイクロプロセッサ10が割込みを受けつ
けるが、コントローラ20にEOIを送出していないの
で、現在実行中の信号よりも優先度が高い割込信号のみ
をコントローラ20がマイクロプロセッサ10へ送る。 これによって、同じ割込を受付けないようにしている。
【0023】上記不都合発生部分を実行した後に、変数
Aを1インクリメントし、変数Aが「1」ならば、出力
命令OUTを実行し、予め決められたアドレスに「1」
を出力する。
【0024】すなわち、変数Aが「1」であれば、同じ
割込がネスティングしておらず、予め決められたアドレ
スに「1」を出力する。これによって、ネスティングに
よって不都合を発生しない処理を要求する割込信号がコ
ントローラ20へ送られるが、現在処理中の優先度より
も低い優先度の要求であるために、コントローラ20は
マイクロプロセッサ10へ割込信号を送らない。
【0025】そして、EOI(エンドオブインターラプ
トのコマンド)を送出し、リターンする。以上で割込処
理の前半が終了する。その後、割込処理の後半の実行が
開始される。まず、出力命令OUTを実行し、予め決め
られたアドレスに「0」を出力することによって、出力
命令の発生を停止する。そして、マイクロプロセッサ1
0を割込可能にセットし、ネスティングによって不都合
が発生しない不都合不発生部分を実行する。そして、変
数Aが「1」より大きければ、割込がネスティングして
おり、予め決められたアドレスに「1」を出力し、変数
Aを1ディクリメントし、EOIを送出し、リターンす
る。これによって割込処理の後半が終了する。
【0026】なお、出力命令OUTを実行することによ
って予め決められたアドレスに「1」を出力し、割込要
求が出てからEOIを送出した後に、コントローラ20
がその割込要求をマイクロプロセッサ10に送り、マイ
クロプロセッサ10がこれによって制御を移行する。厳
密にいえば、EOI送出後、メインルーチンへ戻る前に
制御移行する場合もあるが、そうだとしても特に問題と
なることはない。
【0027】第2図に示す場合は、上記実施例において
割込のネスティングが生じない場合であるが、第3図は
、上記実施例において割込のネスティングが発生した場
合の説明図であって、先発割込処理(先に発生した割込
処理)の優先度と、後発割込処理(先発割込処理の後に
発生した割込処理)の優先度とが同じ場合を示す説明図
である。
【0028】この場合には、メイン処理の途中で、先発
割込処理が発生すると、その先発割込処理の前半が処理
され(■)、後発割込処理の前半が実行され(■)、そ
の後に先発割込処理の後半が処理され(■)、最後に、
後発割込処理の後半が処理される(■)。したがって、
処理の順序に矛盾が生じることがなく、外部で発生した
事象を見逃す確率が低下する。
【0029】第4図、第5図は、上記実施例において割
込のネスティングが発生した場合の動作説明図であって
、後発割込処理の優先度が先発割込処理の優先度よりも
高い場合を示す説明図である。
【0030】なお、図中、[  ]内の数字は割込処理
の優先度を示し(その数が少ない程、優先度が高い)、
丸印内の数字は処理順序を示してある。
【0031】第4図においては、先発割込処理の前半を
実行中に後発割込処理を受けた場合であり、先発割込処
理の優先度よりも後発割込処理の優先度が高いので、先
発割込処理の前半を実行中に、後発割込処理の前半を実
行し(■)、先発割込処理の前半の残りを実行する(■
)。この後は、先発割込処理の後半の優先度よりも後発
割込処理の後半の優先度が高いので、後発割込処理の後
半を実行し(■)た後に、先発割込処理の後半を実行す
る(■)。
【0032】第5図においては、先発割込処理の後半を
実行中に後発割込処理を受けた場合であり、まず先発割
込処理の前半を実行し(■)、その先発割込処理の後半
を実行中に、後発割込処理を受け、後発割込処理の前半
の優先度が先発割込処理の後半の優先度よりも高いので
、先発割込処理の後半を実行中に後発割込処理の前半を
実行する(■)。そして、先発割込処理の後半の優先度
よりも後発割込処理の後半の優先度が高いので、後発割
込処理の後半を実行し(■)た後に、先発割込処理の後
半の残りを実行する(■)。
【0033】したがって、第4図、第5図の場合にも、
処理の順序に矛盾が生じることがなく、外部で発生した
事象を見逃す確率が低下する。
【0034】上記実施例は、割込処理を最初から最後ま
で同一の優先度のもとで行なうのではなく、1つの割込
処理を分割し、途中でコントローラ20の力を借りて、
残りの処理の優先度を下げ、これによって、外部で発生
した事象の割込を受付けない時間を短くし、しかも、処
理の順序に矛盾が生じないようにしている。
【0035】上記実施例においてマイクロプロセッサ1
0として80386を使用し、割込コントローラ20と
して8259を使用しているが、他のマイクロプロセッ
サ、割込コントローラを使用するようにしてもよい。ま
た、マイクロプロセッサ10から割込コントローラ20
へ送る割込要求としてI/O命令を使用するようにして
いるが、メモリマップドI/Oであってもよい。
【0036】
【発明の効果】本発明によれば、ネスティングによって
不都合を発生しない部分で同じ事象が発生し、割込によ
ってそこへ再度、制御移行を行なったときに、割込の処
理順序に矛盾が生じないという効果を有する。
【図面の簡単な説明】
【図1】本発明の一実施例を示すブロック図である。
【図2】上記実施例において割込のネスティングが生じ
ない場合の動作説明図である。
【図3】上記実施例において割込のネスティングが発生
した場合の動作説明図であって、後発割込処理の優先度
と先発割込処理の優先度とが同じ場合を示す説明図であ
る。
【図4】上記実施例において割込のネスティングが発生
した場合の動作説明図であって、後発割込処理の優先度
が先発割込処理の優先度よりも高い場合を示す説明図で
ある。
【図5】上記実施例において割込のネスティングが発生
した場合の動作説明図であって、後発割込処理の優先度
が先発割込処理の優先度よりも高い場合を示す説明図で
ある。
【図6】従来例の動作説明図である。
【符号の説明】
10…マイクロプロセッサ、 20…割込コントローラ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  1つの割込処理を前半と後半とに分け
    、上記割込処理の後半の優先度を、上記割込処理の前半
    の優先度よりも下げるとともに外的事象の割込の優先度
    の最も低いものよりも下げ、割込のネスティングによっ
    て不都合を生じる不都合発生部分と上記不都合を生じな
    い不都合不発生部分とに、割込処理を分割し、上記不都
    合発生部分においては後発の割込処理のうち、現在実行
    中の処理よりも優先度の高い処理を実行し、現在実行中
    の処理と優先度が同じかまたは低い処理を実行せず、上
    記不都合不発生部分においては外的事象によって発生し
    た信号を全て受けることを特徴とするマイクロコンピュ
    ータにおける割込処理方法。
JP12861291A 1991-05-01 1991-05-01 マイクロコンピュータにおける割込処理方法 Pending JPH04329442A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12861291A JPH04329442A (ja) 1991-05-01 1991-05-01 マイクロコンピュータにおける割込処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12861291A JPH04329442A (ja) 1991-05-01 1991-05-01 マイクロコンピュータにおける割込処理方法

Publications (1)

Publication Number Publication Date
JPH04329442A true JPH04329442A (ja) 1992-11-18

Family

ID=14989095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12861291A Pending JPH04329442A (ja) 1991-05-01 1991-05-01 マイクロコンピュータにおける割込処理方法

Country Status (1)

Country Link
JP (1) JPH04329442A (ja)

Similar Documents

Publication Publication Date Title
US5659759A (en) Data processing device having improved interrupt controller to process interrupts of different priority levels
JPH0454255B2 (ja)
US6581119B1 (en) Interrupt controller and a microcomputer incorporating this controller
US5070447A (en) Interrupt circuit and interrupt processing method for microcomputer
JPH04329442A (ja) マイクロコンピュータにおける割込処理方法
EP0614148B1 (en) Data processing apparatus
JPH0414376B2 (ja)
JP3105554B2 (ja) 割込みコントローラ
KR100257071B1 (ko) 디앰에이 컨트롤러 및 이를 이용한 디앰에이 요구신호 우선순위 변경방법
JPS59144955A (ja) 情報処理装置
JPS6336443A (ja) 割り込み処理方式
JP3452656B2 (ja) Dmaコントローラ
JPH0736820A (ja) I/o制御装置
JP2871171B2 (ja) マイクロコンピュータ
JPH10133997A (ja) Dma制御装置
JPS63153635A (ja) デ−タ転送速度指定方式
JPH01154234A (ja) 割込み制御装置
JPS6393062A (ja) 情報処理システム
JPH0375859A (ja) ダイレクト・メモリ・アクセス制御装置
JPH01123357A (ja) 割り込み制御方式
JPH07287608A (ja) プログラマブルコントローラの二重化同期制御装置
JPH04270441A (ja) データ処理装置
JPS62190544A (ja) プログラマブル・コントロ−ラの上位リンクユニツト
JPH01184546A (ja) シングルチップマイクロコンピュータ
JPH01213722A (ja) 例外処理方式