(57)【要約】      （修正有）【課題】プロセッサが多重で割込処理を実行することを防止する。【解決手段】プロセッサ１０５と、NMI信号を生成するNMI生成回路１１０と、プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路１１５と、NMI生成回路からNMI信号を受け、さらに、検出回路からプロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るNMI制御回路１２０と、を備える。【選択図】図１
2015072624.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
NMI信号を生成するNMI生成回路と、
前記プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路と、
前記NMI生成回路からNMI信号を受け、さらに、前記検出回路から前記プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号を前記プロセッサに送るNMI制御回路と、
を備えた装置。
【請求項２】
前記NMI制御回路をイネーブルにするためのフラグを少なくとも有する記憶装置をさらに備えた、請求項１に記載の装置。
【請求項３】
前記NMI制御回路は、AND回路である、請求項１又は２に記載の装置。
【請求項４】
NMI信号を生成するステップと、
プロセッサがNMIによる割込処理を実行しているか否かを検出するステップと、
前記NMI信号を受け、さらに、前記プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号を前記プロセッサに送るステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアからマスク不可能な割り込み(Non-Maskable Interrupt, NMI)の制御に関する。
【背景技術】
【０００２】
プロセッサは、NMI受け付けると、その時に実行していたアプリケーション処理のプログラムカウンタなどのレジスタの情報やアドレスなどの復帰情報をスタックに保存し、アプリケーション処理を中止する。そして、プロセッサは、割込み処理を実行し、割込み処理終了後にスタックに保存されている復帰情報に基づいて、アプリケーション処理を再開させる。
【０００３】
ここで、NMIはソフトウエアではマスク不可能であるため、プロセッサがNMIを受け付けた後、再度NMIを受け付けた場合、多重に割込処理が実行されていた。プロセッサが複数のNMIを受け付けた場合、各NMIの割込処理に関連する復帰情報がスタックに保存されていた。スタックの領域は有限であるため、プロセッサが想定以上のNMIを受け付けた場合、復帰情報がスタックに保存されない、スタックに保存されていた復帰情報を喪失するなどの問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施例は、プロセッサが多重で割込処理を実行することを防止する。
【課題を解決するための手段】
【０００５】
本発明の実施例は、プロセッサが割込処理を実行しているか否かを検出し、検出結果に基づいてプロセッサにNMI信号を送ることを制御する。
【０００６】
本発明の実施例による装置は、プロセッサと、NMI信号を生成するNMI生成回路と、プロセッサがNMIによる割込処理を実行しているか否かを検出する検出回路と、NMI生成回路からNMI信号を受け、さらに、検出回路からプロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るNMI制御回路と、を備えることができる。
【０００７】
本発明の実施例による装置は、NMI制御回路をイネーブルにするためのフラグを少なくとも有する記憶装置をさらに備えることができる。
【０００８】
本発明の実施例による装置は、NMI制御回路をAND回路とすることができる。
【０００９】
本発明の実施例による方法は、NMI信号を生成するステップと、プロセッサがNMIによる割込処理を実行しているか否かを検出するステップと、NMI信号を受け、さらに、プロセッサが割込処理を実行していないことを表す信号を受けた場合、当該NMI信号をプロセッサに送るステップと、を含むことできる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施例に係る装置を示した図である。
【図２】図２は、図１に示した装置の動作を示したフロー図である。
【発明を実施するための形態】
【００１１】
図１は、本発明の実施例に係る装置１００を示した図である。装置１００は、プロセッサ１０５、NMI生成回路１１０、検出回路１１５、NMI制御回路１２０及び記憶装置１２５を含む。NMI生成回路１１０は、NMI信号をNMI制御回路１２０に送る。
【００１２】
プロセッサ１０５は、NMI制御回路１２０からNMI信号を受けると、割込処理を実行する。割込処理において、プロセッサ１０５は、割込処理を実行する前に実行していたアプリケーション処理のプログラムカウンタなどのレジスタの情報やアドレスなどを含む復帰情報をスタック（図示せず）に保存し、そして、アプリケーション処理を中断し、割込処理を実行する。プロセッサ１０５は、割込処理終了後、スタックに保存されている復帰情報に基づいて、アプリケーション処理を再開させる。この割込処理は、通常用いられている処理である。
【００１３】
検出回路１１５は、プロセッサ１０５が割込処理を実行していることを検出する。例えば、検出回路１１５は、NMIのack信号及びNMIのリターン信号を検出し、ack信号を検出してからリターン信号を検出するまでの間をプロセッサ１０５が割込処理を実行中であると判断する。検出回路１１５は、プロセッサ１０５が割込処理を実行していない（割込処理が実行中ではない）場合、割込処理を実行していないこと表す信号をNMI制御回路１２０に送り、プロセッサ１０５が割込処理を実行している（割込処理が実行中である）場合、割込処理を実行していること表す信号をNMI制御回路１２０に送る。検出回路１１５は、例えば、割込処理が実行中である場合、Low信号を送り、割込処理が実行中である場合、High信号を送る。
【００１４】
NMI制御回路１２０は、検出回路１１５から割込処理を実行してないことを表す信号及びNMI生成回路１１０からNMI信号を受けると、NMI信号をプロセッサ１０５に送る。プロセッサ１０５は、NMI信号を受け、割込処理を実行する。NMI制御回路１２０は、検出回路１１５から割込処理を実行していることを表す信号を受けると、NMI信号を受けたとしても、NMI信号をプロセッサ１０５に送らない。これにより、プロセッサ１０５が割込処理を実行している間、NMI信号は送られてこないことから、プロセッサ１０５は、再度の割込処理の実行を防止することができる。
【００１５】
NMI制御回路１２０は例えば、AND回路とすることができる。この場合、NMI制御回路１２０は、NMI信号（High信号）及び検出回路１１５よりHigh信号（すなわち、割込処理が実行中ではない）を受信すると、NMI信号をプロセッサ１０５に送る。一方、NMI制御回路１２０は、NMI信号（High信号）を受けたとしても、検出回路１１５よりLow信号（すなわち、割込処理が実行中）を受信すると、NMI信号をプロセッサ１０５に送らない。
【００１６】
装置１００は、記憶装置１２５を有しており、記憶装置１２５は、NMI制御フラグを少なくとも有する。記憶装置１２５は、例えば、ROMや、不揮発性記憶装置などの電源の供給がなくても記憶を保持できる装置とすることができる。NMI制御回路１２０及び／又はプロセッサ１０５は、NMI制御フラグを参照することができる。
【００１７】
NMI制御フラグがオフである場合、NMI制御回路１２０はディセイブル（無効）となる。この場合、NMI制御回路１２０は、検出回路１１５から割込処理を実行していることを表す信号（Low信号）を受けている間であっても、NMI信号を受けると、プロセッサ１０５にNMI信号を送る。すなわち、割込処理が多重で実行される。
【００１８】
NMI制御フラグがオンである場合、NMI制御回路１２０はイネイブル（有効）となる。この場合、NMI制御回路１２０は、検出回路１１５から割込処理を実行していることを表す信号（Low信号）を受けている間、NMI信号を受けると、プロセッサ１０５にNMI信号を送らない。すなわち、割込処理が多重で実行されない。したがって、NMI制御回路１２０及び／又はプロセッサ１０５は、NMI制御フラグを用いることによって、割込処理が多重実行されるか否かを制御することができる。
【００１９】
図２は、図１に示した装置の動作１００を示したフロー図である。NMI生成回路１１０は、NMI信号を生成し、NMI制御回路１２０に送る（ステップ２０５）。検出回路１１５は、プロセッサ１０５が割込処理を実行しているか否かを検出する（ステップ２１０）。検出回路１１５は、検出結果（割込処理が実行されていない又は実行中）をNMI制御回路１２０に送る（ステップ２１５）。
【００２０】
NMI制御回路１２０は、制御フラグがオンであるかオフであるかを判定する。制御フラグがオフである場合、NMI制御回路１２０は、NMI信号を受けた後、NMI信号を常にプロセッサ１０５に送り、プロセッサ１０５は、割込処理を実行する（ステップ２３５）。制御フラグがオンである場合、NMI制御回路１２０は、検出結果に基づいて割込処理が実行されていない又は実行中であるか判定する。割込処理が実行されていない場合、NMI制御回路１２０は、NMI信号をプロセッサ１０５に送り、プロセッサ１０５は、割込処理を実行する（ステップ２３５）。割込処理が実行されている場合、NMI制御回路１２０は、NMI信号をプロセッサ１０５に送らない。すなわち、プロセッサ１０５は、割込処理を実行中の場合、NMI信号を受けないため、割込処理を多重で実行することはない（ステップ２３０）。
【００２１】
本実施例によって、プロセッサ１０５が多重で割込処理を実行することを防止することができる。これにより、メモリ領域の情報の喪失を防ぐことができる。
【００２２】
メカトロニクス、ロボット、パチンコ及びパチスロなどを含む遊技機、アーケードゲームなどを含むゲーム機器、エンジンのコントロール、車両ブレーキのコントロール、エレベーターのコントロールなどの分野において、装置１００を用いることができる。
【００２３】
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウェアで実現することができ、そして、ソフトウェアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
【００２４】
上記の実施例は、装置１００を遊技機に用いるとさらに有効である。遊技機の分野では、抽選で用いられる媒体（メダルやパチンコ玉など）は金属であるため、かなりの頻度及び強度で静電気などの電気ノイズが発生する。この電気ノイズによって、NMI信号が誤って発生することがある。このような場合に、割込信号を多重で実行させないことは、リソースの利用率の改善、装置の誤動作防止に寄与する。
【００２５】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。
【００２６】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００２７】
１００  装置
１０５  プロセッサ
１１０  NMI生成回路
１１５  検出回路
１２０  NMI制御回路
１２５  記憶装置
【図１】
2015072624.tif 000003
【図２】
2015072624.tif 000004