(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-72624(P2015-72624A)
(43)【公開日】2015年4月16日
(54)【発明の名称】NMI制御
(51)【国際特許分類】
G06F 9/48 20060101AFI20150320BHJP
【FI】
G06F9/46 311C
【審査請求】未請求
【請求項の数】4
【出願形態】OL
【全頁数】6
(21)【出願番号】特願2013-208381(P2013-208381)
(22)【出願日】2013年10月3日
(71)【出願人】
【識別番号】591107481
【氏名又は名称】株式会社エルイーテック
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100082005
【弁理士】
【氏名又は名称】熊倉 禎男
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100158551
【弁理士】
【氏名又は名称】山崎 貴明
(72)【発明者】
【氏名】井之川 晋一
(57)【要約】 (修正有)
【課題】プロセッサが多重で割込処理を実行することを防止する。
【解決手段】プロセッサ105と、NMI信号を生成するNMI生成回路110と、プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路115と、NMI生成回路からNMI信号を受け、さらに、検出回路からプロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るNMI制御回路120と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサと、
NMI信号を生成するNMI生成回路と、
前記プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路と、
前記NMI生成回路からNMI信号を受け、さらに、前記検出回路から前記プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号を前記プロセッサに送るNMI制御回路と、
を備えた装置。
【請求項2】
前記NMI制御回路をイネーブルにするためのフラグを少なくとも有する記憶装置をさらに備えた、請求項1に記載の装置。
【請求項3】
前記NMI制御回路は、AND回路である、請求項1又は2に記載の装置。
【請求項4】
NMI信号を生成するステップと、
プロセッサがNMIによる割込処理を実行しているか否かを検出するステップと、
前記NMI信号を受け、さらに、前記プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号を前記プロセッサに送るステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアからマスク不可能な割り込み(Non-Maskable Interrupt, NMI)の制御に関する。
【背景技術】
【0002】
プロセッサは、NMI受け付けると、その時に実行していたアプリケーション処理のプログラムカウンタなどのレジスタの情報やアドレスなどの復帰情報をスタックに保存し、アプリケーション処理を中止する。そして、プロセッサは、割込み処理を実行し、割込み処理終了後にスタックに保存されている復帰情報に基づいて、アプリケーション処理を再開させる。
【0003】
ここで、NMIはソフトウエアではマスク不可能であるため、プロセッサがNMIを受け付けた後、再度NMIを受け付けた場合、多重に割込処理が実行されていた。プロセッサが複数のNMIを受け付けた場合、各NMIの割込処理に関連する復帰情報がスタックに保存されていた。スタックの領域は有限であるため、プロセッサが想定以上のNMIを受け付けた場合、復帰情報がスタックに保存されない、スタックに保存されていた復帰情報を喪失するなどの問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施例は、プロセッサが多重で割込処理を実行することを防止する。
【課題を解決するための手段】
【0005】
本発明の実施例は、プロセッサが割込処理を実行しているか否かを検出し、検出結果に基づいてプロセッサにNMI信号を送ることを制御する。
【0006】
本発明の実施例による装置は、プロセッサと、NMI信号を生成するNMI生成回路と、プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路と、NMI生成回路からNMI信号を受け、さらに、検出回路からプロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るNMI制御回路と、を備えることができる。
【0007】
本発明の実施例による装置は、NMI制御回路をイネーブルにするためのフラグを少なくとも有する記憶装置をさらに備えることができる。
【0008】
本発明の実施例による装置は、NMI制御回路をAND回路とすることができる。
【0009】
本発明の実施例による方法は、NMI信号を生成するステップと、プロセッサがNMIによる割込処理を実行しているか否かを検出するステップと、NMI信号を受け、さらに、プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るステップと、を含むことできる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本発明の実施例に係る装置を示した図である。
【
図2】
図2は、
図1に示した装置の動作を示したフロー図である。
【発明を実施するための形態】
【0011】
図1は、本発明の実施例に係る装置100を示した図である。装置100は、プロセッサ105、NMI生成回路110、検出回路115、NMI制御回路120及び記憶装置125を含む。NMI生成回路110は、NMI信号をNMI制御回路120に送る。
【0012】
プロセッサ105は、NMI制御回路120からNMI信号を受けると、割込処理を実行する。割込処理において、プロセッサ105は、割込処理を実行する前に実行していたアプリケーション処理のプログラムカウンタなどのレジスタの情報やアドレスなどを含む復帰情報をスタック(図示せず)に保存し、そして、アプリケーション処理を中断し、割込処理を実行する。プロセッサ105は、割込処理終了後、スタックに保存されている復帰情報に基づいて、アプリケーション処理を再開させる。この割込処理は、通常用いられている処理である。
【0013】
検出回路115は、プロセッサ105が割込処理を実行していることを検出する。例えば、検出回路115は、NMIのack信号及びNMIのリターン信号を検出し、ack信号を検出してからリターン信号を検出するまでの間をプロセッサ105が割込処理を実行中であると判断する。検出回路115は、プロセッサ105が割込処理を実行していない(割込処理が実行中ではない)場合、割込処理を実行していないこと表す信号をNMI制御回路120に送り、プロセッサ105が割込処理を実行している(割込処理が実行中である)場合、割込処理を実行していること表す信号をNMI制御回路120に送る。検出回路115は、例えば、割込処理が実行中である場合、Low信号を送り、割込処理が実行中である場合、High信号を送る。
【0014】
NMI制御回路120は、検出回路115から割込処理を実行してないことを表す信号及びNMI生成回路110からNMI信号を受けると、NMI信号をプロセッサ105に送る。プロセッサ105は、NMI信号を受け、割込処理を実行する。NMI制御回路120は、検出回路115から割込処理を実行していることを表す信号を受けると、NMI信号を受けたとしても、NMI信号をプロセッサ105に送らない。これにより、プロセッサ105が割込処理を実行している間、NMI信号は送られてこないことから、プロセッサ105は、再度の割込処理の実行を防止することができる。
【0015】
NMI制御回路120は例えば、AND回路とすることができる。この場合、NMI制御回路120は、NMI信号(High信号)及び検出回路115よりHigh信号(すなわち、割込処理が実行中ではない)を受信すると、NMI信号をプロセッサ105に送る。一方、NMI制御回路120は、NMI信号(High信号)を受けたとしても、検出回路115よりLow信号(すなわち、割込処理が実行中)を受信すると、NMI信号をプロセッサ105に送らない。
【0016】
装置100は、記憶装置125を有しており、記憶装置125は、NMI制御フラグを少なくとも有する。記憶装置125は、例えば、ROMや、不揮発性記憶装置などの電源の供給がなくても記憶を保持できる装置とすることができる。NMI制御回路120及び/又はプロセッサ105は、NMI制御フラグを参照することができる。
【0017】
NMI制御フラグがオフである場合、NMI制御回路120はディセイブル(無効)となる。この場合、NMI制御回路120は、検出回路115から割込処理を実行していることを表す信号(Low信号)を受けている間であっても、NMI信号を受けると、プロセッサ105にNMI信号を送る。すなわち、割込処理が多重で実行される。
【0018】
NMI制御フラグがオンである場合、NMI制御回路120はイネイブル(有効)となる。この場合、NMI制御回路120は、検出回路115から割込処理を実行していることを表す信号(Low信号)を受けている間、NMI信号を受けると、プロセッサ105にNMI信号を送らない。すなわち、割込処理が多重で実行されない。したがって、NMI制御回路120及び/又はプロセッサ105は、NMI制御フラグを用いることによって、割込処理が多重実行されるか否かを制御することができる。
【0019】
図2は、
図1に示した装置の動作100を示したフロー図である。NMI生成回路110は、NMI信号を生成し、NMI制御回路120に送る(ステップ205)。検出回路115は、プロセッサ105が割込処理を実行しているか否かを検出する(ステップ210)。検出回路115は、検出結果(割込処理が実行されていない又は実行中)をNMI制御回路120に送る(ステップ215)。
【0020】
NMI制御回路120は、制御フラグがオンであるかオフであるかを判定する。制御フラグがオフである場合、NMI制御回路120は、NMI信号を受けた後、NMI信号を常にプロセッサ105に送り、プロセッサ105は、割込処理を実行する(ステップ235)。制御フラグがオンである場合、NMI制御回路120は、検出結果に基づいて割込処理が実行されていない又は実行中であるか判定する。割込処理が実行されていない場合、NMI制御回路120は、NMI信号をプロセッサ105に送り、プロセッサ105は、割込処理を実行する(ステップ235)。割込処理が実行されている場合、NMI制御回路120は、NMI信号をプロセッサ105に送らない。すなわち、プロセッサ105は、割込処理を実行中の場合、NMI信号を受けないため、割込処理を多重で実行することはない(ステップ230)。
【0021】
本実施例によって、プロセッサ105が多重で割込処理を実行することを防止することができる。これにより、メモリ領域の情報の喪失を防ぐことができる。
【0022】
メカトロニクス、ロボット、パチンコ及びパチスロなどを含む遊技機、アーケードゲームなどを含むゲーム機器、エンジンのコントロール、車両ブレーキのコントロール、エレベーターのコントロールなどの分野において、装置100を用いることができる。
【0023】
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウェアで実現することができ、そして、ソフトウェアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
【0024】
上記の実施例は、装置100を遊技機に用いるとさらに有効である。遊技機の分野では、抽選で用いられる媒体(メダルやパチンコ玉など)は金属であるため、かなりの頻度及び強度で静電気などの電気ノイズが発生する。この電気ノイズによって、NMI信号が誤って発生することがある。このような場合に、割込信号を多重で実行させないことは、リソースの利用率の改善、装置の誤動作防止に寄与する。
【0025】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。
【0026】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【0027】
100 装置
105 プロセッサ
110 NMI生成回路
115 検出回路
120 NMI制御回路
125 記憶装置