(57)【要約】      （修正有）【課題】本発明は、ポーリング処理に基づく非リアルタイム処理中に割り込みが発生した際に直ちにその割り込み処理に移行するとともに、割り込み処理中の割り込みの欠落を防止することが可能なポーリング処理装置を提供する。【解決手段】ポーリング処理装置は、割り込み処理を行うＣＰＵ１０とＲＯＭ１１と割り込み信号を検知する割り込み検知部１３とを備える。ＣＰＵ１０は、イベントの種類ごとに用意されるとともにイベントが発生するごとに加算される割込制御カウンタを備える。ＲＯＭ１１には、各割込制御カウンタの値をＣＰＵ１０にチェックさせる機能を有するスケジューラ、割り込みの最も低いレベルに登録された割り込みを起動させて各イベントの優先順位に応じた割り込み処理をＣＰＵ１０に実行させる。【選択図】図１
2007201870.tif 000002
【特許請求の範囲】
【請求項１】
装置全体の動作を制御する中央処理装置と、所定の情報を記憶するためのメモリを備えるポーリング処理装置において、
多重割り込みを可能に構成されるとともに、割り込みの最も低いレベルに登録された割り込みを起動させるソフトウェアを備え、
非リアルタイム処理の実行中に第１のイベントが発生したことを前記中央処理装置が検知すると、当該中央処理装置が、該非リアルタイム処理の実行アドレスを前記メモリに退避させ、更に、前記第１のイベントに対して所定の処理を行った後に、前記ソフトウェアを用いて割り込みの最も低いレベルに登録された割り込み処理を起動させ、前記第１のイベントに対する割り込み処理を実行するとともに、
前記第１のイベントに対する割り込み処理の実行中に第２のイベントが発生したことを
前記中央処理装置が検知すると、当該中央処理装置が、前記第２のイベントに対して所定の処理を行った後に、前記第１のイベントに対する割り込み処理に復帰することを特徴とするポーリング処理装置。
【請求項２】
イベントの種類ごとに用意されるとともに前記中央処理装置が任意のイベントに対して所定の処理を行った後に加算される割込制御カウンタと、割り込み処理の開始時または終了時に前記割込制御カウンタの値を前記中央処理装置にチェックさせる機能を有するスケジューラ、とを備え、
前記中央処理装置が、前記スケジューラに基づき、前記割込制御カウンタの値をチェックすることにより、前記割込制御カウンタの値がゼロであることを確認したときに、非リアルタイム処理を再開し、
一方、前記中央処理装置が、前記スケジューラに基づき、前記割込制御カウンタの値をチェックすることにより、前記割込制御カウンタの値がゼロでないことを確認したときに、当該割込制御カウンタに応じたイベントに対する割り込み処理を実行することを特徴とする請求項１に記載のポーリング処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複写機やプリンタ等の画像形成装置等の電子機器を制御するために用いられるポーリング処理装置に関する。
【背景技術】
【０００２】
従来より、複写機やプリンタ等の画像形成装置の制御装置では、無限ループを構成して処理を実行するためのソフトフェアとしてポーリング処理を実装したポーリング処理装置が搭載されている。そのソフトフェアに従って中央処理装置（以下、ＣＰＵ［Central Processing Unit］と呼ぶ）はポーリング処理に基づく非リアルタイム処理の実行中に、外部割り込み要因が発生して外部装置からの割り込み信号がＣＰＵに入力されると割り込み処理にてメモリ内のカウンタを０から１にセットする。ＣＰＵは、その処理を中断することが可能な非リアルタイム処理内における所定の処理の完了後に、メモリ内のカウンタをチェックする。この時、カウンタの値がゼロで無ければ、その割り込み信号に対する処理を実行していた。
【０００３】
具体的に、従来のポーリング処理装置では、割り込み処理が以下のように実行されていた。図４は、従来のポーリング処理装置における割り込み処理の実行の流れを示すタイムチャートである。図４に示す第１〜第３イベントの発生は、外部割り込み要因が発生したことを示す。また、図４に示す処理Ａは、第１イベントに対する処理、処理Ｂは、第２イベントに対する処理、および処理Ｃは、第３イベントに対する処理である。
【０００４】
従来のポーリング処理装置では、図４に示すように、ポーリング処理に基づく非リアルタイム処理の実行中に、時刻Ｔ１で第１イベントが発生し、外部装置からの割り込み信号がＣＰＵに入力されると割り込み処理にてメモリの第１イベント用のカウンタが０から１にセットされる。そして、非リアルタイム処理内の所定の処理（例えば、ＥＥＰＲＯＭ［Electronically Erasable and Programmable Read Only Memory］からのデータの読み出し処理等）が時刻Ｔ２で完了すると、ＣＰＵは、第１イベント用のカウンタをチェックし、そのカウンタの値が１であることから、第１イベントに対する処理Ａを実行する。
【０００５】
そして、第１イベントに対する処理Ａの実行中に、時刻Ｔ３で第２イベントが発生し、外部装置から割り込み信号がＣＰＵに入力されると割り込み処理にてメモリの第２イベント用のカウンタが０から１にセットされる。また、第１イベントに対する処理Ａの実行中に、時刻Ｔ４で第３イベントが発生し、外部装置から割り込み信号がＣＰＵに入力されると割り込み処理にてメモリの第３イベント用のカウンタが０から１にセットされる。
【０００６】
そして、第１イベントに対する処理Ａが時刻Ｔ５で完了すると、ＣＰＵは、第１イベント用のカウンタを１から０にした後、更に、第２イベント用のカウンタをチェックし、そのカウンタの値が１であることから第２イベントに対する処理Ｂを実行する。そして、第２イベントに対する処理Ｂが時刻Ｔ６で完了すると、ＣＰＵは、第２イベント用のカウンタを１から０にした後に、更に、第３イベント用のカウンタをチェックし、そのカウンタの値が１であることから第３イベントに対する処理Ｃを実行する。そして、第３イベントに対する処理Ｃが時刻Ｔ７で完了すると、ＣＰＵは、第３イベント用のカウンタを１から０にした後、各カウンタをチェックする。このとき、各カウンタの値は０であることから、ＣＰＵは、中断していたポーリング処理に基づく非リアルタイム処理を再開する。
【０００７】
また、このような処理を行うポーリング処理装置の他に、予め定めるファンクションコール機能を有するオペレーティングシステムを搭載し、複数種類の応用プログラムを実行可能なコンピュータ装置において、監視すべきイベントおよび起動すべきプロセスを設定する設定手段と、オペレーティングシステムに対する応用プログラムからのファンクションコール動作を監視して、設定されたイベントの発生を検出する検出手段と、検出手段からの出力に応答し、設定されたイベントが発生したとき、設定されたプロセスを起動する起動手段とを含むことで、応用プログラムの汎用性を損なわずに特定のイベントに対応したプロセスを起動することが可能なイベント駆動形コンピュータ装置が開示・提案されている（特許文献１参照）。
【特許文献１】特開平０５−２１０５２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
確かに、上記の構成から成る従来のポーリング処理装置において、ポーリング処理を用いることにより少ないメモリの使用量で、割り込み処理を実行することが可能である。
【０００９】
しかしながら、従来のポーリング処理装置は、図４に示すように、非リアルタイム処理内の所定の処理（例えば、ＥＥＰＲＯＭからのデータの読み出し処理等）の実行中に、第１イベントが発生しても、非リアルタイム処理内の所定の処理が完了するまで、第１イベントに対する処理Ａが実行されない構成であったため、第１イベントが発生してから第１イベントに対する処理Ａが完了するまでの時間に遅れが発生していた。
【００１０】
また、従来のポーリング処理装置では、前述の時間の遅れを回避するために、イベント発生時（割込み発生時）に割込み処理で必要な処理を実行すれば、割込みに対して処理を実行することができる。しかし、通常、ＣＰＵは、多重割込みを使用しない場合、割り込み処理の実行中に、他の割り込みを検知できない状態になっているので、割り込みの欠落を発生させる可能性があった。例えば、第１イベントに対する割込み処理Ａの実行中に、第２イベントが２回発生した場合には、ＣＰＵは第１イベントの処理終了後に第２イベントを受け付けるが２度発生したことは認識できないので、第２イベントの割り込みを１回、欠落させる可能性があった。
【００１１】
また、従来のポーリング処理装置おいて、非リアルタイム処理中に、イベント（すなわち、割り込み）が発生した場合、イベントが発生してから非リアルタイム処理内の所定の処理が完了するまでの時間が一定でなく、ＣＰＵは、非リアルタイム処理内の所定の処理が完了するまで、そのイベント用のカウンタを確認して割り込みが発生したことを認識することができないため、ＣＰＵによるその割り込みに対する処理完了時間にばらつきが発生してしまう。そのため、ＣＰＵがそのイベントに対する処理を行うための時間が安定しない。非リアルタイム処理中に、イベントが発生した場合、直ちにＣＰＵがそのイベントに対する処理を実行できないため、割り込みに対するＣＰＵの反応時間を規定することができなかった。例えば、ＣＰＵが割り込みとしてＲＳ２３２Ｃ等の外部インタフェースから９６００ｂｐｓの通信速度でデータを受信する場合において、ＣＰＵは約１ｍｓ以内にそのデータを読み出す必要があり、またソフトウェアは１ｍｓ以内にそのデータを読み出すことを保障する必要があるが、これらの時間を規定することができなかった。
【００１２】
本発明は、上記の問題点に鑑み、ポーリング処理に基づく非リアルタイム処理中に割り込みが発生した際に直ちにその割り込み処理に移行するとともに、割り込み処理中の割り込みの欠落を防止することが可能なポーリング処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のポーリング処理装置は、装置全体の動作を制御する中央処理装置と、所定の情報を記憶するためのメモリを備えるポーリング処理装置において、多重割り込みを可能に構成されるとともに、割り込みの最も低いレベルに登録された割り込みを起動させるソフトウェアを備え、非リアルタイム処理の実行中に第１のイベントが発生したことを前記中央処理装置が検知すると、当該中央処理装置が、該非リアルタイム処理の実行アドレスを前記メモリに退避させ、更に、前記第１のイベントに対して所定の処理を行った後に、前記ソフトウェアを用いて割り込みの最も低いレベルに登録された割り込み処理を起動させ、前記第１のイベントに対する割り込み処理を実行するとともに、前記第１のイベントに対する割り込み処理の実行中に第２のイベントが発生したことを前記中央処理装置が検知すると、当該中央処理装置が、前記第２のイベントに対して所定の処理を行った後に、前記第１のイベントに対する割り込み処理に復帰する構成とされている。
【００１４】
なお、イベントとは、外部装置より入力される割り込み信号や内部タイマにより周期的に発生する割り込み信号、すなわち、割り込みを表す。また、所定の処理とは、割り込み要因のクリア等、各イベントに対して最低限の処理をリアルタイムに保障するために必要な処理を表す。
【００１５】
このような構成にすることにより、本発明のポーリング処理装置であれば、非リアルタイム処理の実行中に第１のイベントが発生すると、直ちに第１のイベントに対する割り込み処理に移行することが可能となる。このため、非リアルタイム処理の実行中に第１のイベントが発生してから、第１のイベントに対する割り込み処理の完了までの時間を短縮することが可能となる。また、割り込みの最も低いレベルに登録された割り込み処理を起動されているため、第１のイベントに対する割り込み処理の実行中における割り込みの欠落を防止することが可能となる。更に、非リアルタイム処理の実行中に第１のイベントが発生すると、中央処理装置が直ちに第１のイベントが発生したことを検知するため、中央処理装置による割り込みの認識時間が安定するとともに、第１のイベントに対する割り込み処理の時間を安定させることが可能となる。このため、割り込みに対する中央処理装置の反応時間を規定することが可能となる。
【００１６】
上記構成から成るポーリング処理装置は、イベントの種類ごとに用意されるとともに前記中央処理装置が任意のイベントに対して所定の処理を行った後に加算される割込制御カウンタと、割り込み処理の開始時または終了時に前記割込制御カウンタの値を前記中央処理装置にチェックさせる機能を有するスケジューラ、とを備え、前記中央処理装置が、前記スケジューラに基づき、前記割込制御カウンタの値をチェックすることにより、前記割込制御カウンタの値がゼロであることを確認したときに、非リアルタイム処理を再開し、
一方、前記中央処理装置が、前記スケジューラに基づき、前記割込制御カウンタの値をチェックすることにより、前記割込制御カウンタの値がゼロでないことを確認したときに、当該割込制御カウンタに応じたイベントに対する割り込み処理を実行する構成とされている。
【００１７】
このとき、中央処理装置は、スケジューラに基づき、優先順位の高いイベント用の割込制御カウンタから順に割込制御カウンタの値をチェックする。そして、このような構成とすることにより、割り込み処理の実行中にイベントが発生しても、現在実行中の割り込み処理を継続し、割り込み処理の終了時に割込制御カウンタの値をチェックすることにより、イベントの有無を判断することができる。
【発明の効果】
【００１８】
上記したように本発明に係るポーリング処理装置であれば、非リアルタイム処理の実行中に割り込みが発生した際に、直ちに割り込みに対する割り込み処理に移行することが可能となるとともに、割り込み処理中の割り込みの欠落を防止することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係るポーリング処理装置について図を参照して説明を行う。なお、本発明に係るポーリング処理装置は、複写機やプリンタ等の画像形成装置等を含む電子機器に搭載され、これらの機器を制御するために用いられる。
【００２０】
図１に示すように、本実施形態のポーリング処理装置１は、この装置全体の動作を制御するとともに外部装置より入力される割り込み信号や内部タイマにより周期的に発生する割り込み信号に基づく割り込み処理を行う中央処理装置１０（以下、ＣＰＵ［Central Processing Unit］１０と呼ぶ）と、各種制御プログラムや各種データ等が格納されるＲＯＭ［Read Only Memory］１１と、ＣＰＵ１０が各種制御を実行する際にワーク領域として使用されるＲＡＭ［Random Access Memory］１２と、外部装置より入力される割り込み信号を検知するとともに内部タイマにより周期的に発生する割り込み信号を検知する割り込み検知部１３と、を備えている。
【００２１】
このような構成のポーリング処理装置１において、図１に示すＣＰＵ１０は、外部装置より入力される割り込み信号や内部タイマにより周期的に発生する割り込み信号等のイベント（すなわち、割り込み）の種類ごとに用意されるとともにイベントが発生するごとに１だけ加算される割込制御カウンタ（不図示）を備えている。そして、割込制御カウンタの値は、ＲＡＭ１２のメモリ領域を使用することにより加算または減算される。また、ＣＰＵ１０には、当該ＣＰＵ１０による処理状態を保持するための各種レジスタ（不図示）が格納されている。
【００２２】
また、図１に示すＲＯＭ１１には、各イベントに対する割り込み処理を実行する必要があるか否かを判断するために、割り込み処理の開始時または終了時にＣＰＵ１０に各割込制御カウンタの値を優先順位の高いイベント用の割込制御カウンタから順にチェックさせる機能を有するスケジューラ、割り込みの最も低いレベルに登録された割り込みであるイベント実行ハンドラを起動させて各イベントの優先順位に応じた割り込み処理をＣＰＵ１０に実行させるソフトウェア、および割り込み処理の実行中に他のイベントが発生して割り込み信号が入力されたときに、他のイベントに対して必要最低限の処理を行ってから実行中の割り込み処理に復帰させるためのソフトウェアが格納されている。
【００２３】
そして、ＣＰＵ１０によるポーリング処理に基づく非リアルタイム処理の実行中にイベントが発生し、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことをＣＰＵ１０が確認すると、このＣＰＵ１０が割り込み処理を受け付け、現在実行中の非リアルタイム処理を一旦中断して割り込み処理に移行する。
【００２４】
このとき、非リアルタイム処理の実行アドレス（プログラムカウンタ）をＲＡＭ１２に退避させることにより、レジスタのセーブが行われる。なお、割り込み処理の終了後、中断されていた非リアルタイム処理を再開する際には、ＲＡＭ１２に退避された実行アドレス（プログラムカウンタ）に処理を戻すことにより、レジスタのリストアが行われる。
【００２５】
続いて、ＣＰＵ１０は、この割り込みに対して必要最低限の処理（例えば、割り込み要因クリア等）を行い、このイベントに対する割込制御カウンタの値を１だけ加算する。その後、ＣＰＵ１０は、ソフトウェアを用いて割り込みの最も低いレベルに登録された割り込みであるイベント実行ハンドラを起動し、このイベントに対する割り込み処理を実行する。そして、この割り込み処理が終了すると、ＣＰＵ１０は、割込制御カウンタの値を１だけ減算する。
【００２６】
また、割り込み処理の実行中にイベントが発生し、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことをＣＰＵ１０が確認すると、現在実行中の割り込み処理の実行アドレス（プログラムカウンタ）をＲＡＭ１２に退避させる。続いて、ＣＰＵ１０がこの割り込みに対して必要最低限の処理を行った後、イベントの種類に応じた割込制御カウンタの値を１だけ加算する。その後、ＲＡＭ１２に退避された実行アドレス（プログラムカウンタ）に処理を戻すことにより、中断されていた割り込み処理が再開される。
【００２７】
そして、再開された割り込み処理が終了すると、ＣＰＵ１０が、スケジューラに基づき、優先順位の高いイベント用の割込制御カウンタから順に割込制御カウンタの値をチェックしてイベントの有無を判断する。この判断結果より、値が０でない割込制御カウンタが存在する場合には、ＣＰＵ１０によって、イベントの種類に応じてソフトウェアを用いた割り込み処理が実行される。
【００２８】
このように、割り込み処理の実行中にイベントが発生すると、ＣＰＵ１０がこの割り込み処理に対して必要最低限の処理を行い、割込制御カウンタの値を１だけ加算した後、割り込み処理を継続して実行する。そして、割り込み処理が終了すると、ＣＰＵ１０が優先順位の高いイベント用の割込制御カウンタから順に割込制御カウンタの値をチェックすることにより、割り込み処理を実行する必要があるか否かを判断する。よって、本実施形態のポーリング処理装置１は、割込制御カウンタの種類ごとに、また、割込制御カウンタの値に応じた回数だけ割り込み処理を実行することができる。
【００２９】
また、多重割り込みを許可するとともに、ソフトウェアを用いて割り込みの最も低いレベルに登録された割り込みであるイベント実行ハンドラを起動して割り込み処理を実行することにより、どのようなレベルのイベントが発生しても、割り込み信号を検知することができ、割り込みの検知ミスを確実に防止することができる。
【００３０】
このように構成されたポーリング処理装置の動作について、図２に示すタイムチャートおよび図３に示すフローチャートを参照しながら説明を行う。
【００３１】
まず、ポーリング処理装置では、割り込み検知部１３が外部装置により入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知しない限り、ＣＰＵ１０によってポーリング処理での非リアルタイム処理が実行されている（Ｓ１１）。なお、この非リアルタイム処理とは、ＥＥＰＲＯＭ（不図示）に対するデータの読み出し等、データの処理に制限時間が設けられていない処理が該当する。
【００３２】
また、次に、ＣＰＵ１０によって、割り込みがあるか否かの判断が行われる（Ｓ１２）。このとき、時刻Ｔ１において第１イベントが発生し、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると（図２に示すハード認識）（Ｓ１２でＹＥＳ）、ＣＰＵ１０は、割り込み処理を受け付け、非リアルタイム処理の実行アドレス（プログラムカウンタ）をＲＡＭ１２に退避させることで、現在実行している非リアルタイム処理を一旦中断して第１イベントに対する割り込み処理に移行する（図２に示すソフト認識）（Ｓ１３）。そして、ＣＰＵ１０は、この割り込みに対して必要最低限の処理（例えば、割り込み要因のクリア等）を行い（Ｓ１４）、第１イベント用に設けられた割込制御カウンタの値を１だけ加算する（Ｓ１５）。
【００３３】
次に、ＣＰＵ１０がソフトウェアを用いて、最も低いレベルに登録された割り込みであるイベント実行ハンドラを起動して（Ｓ１６）、制御をイベント実行ハンドラに移行する。そして、イベント実行ハンドラは、第１イベントに対する割り込み処理Ａを実行する（Ｓ１７）。これにより、第１イベントに対する割り込み処理Ａの実行中にどのようなレベルのイベントが発生しても、ＣＰＵ１０は、割り込み検知部１３を介してこの割り込み検知信号を検知することができる。
【００３４】
そして、ＣＰＵ１０によって、割り込み処理Ａの実行中に割り込みがあるか否かの判断が行われる（Ｓ１８）。このとき、ＣＰＵ１０が、割り込み処理Ａの実行中に割り込みがあることを確認すると（Ｓ１８ＹＥＳ）、すなわち、図２に示すように、時刻Ｔ２において第２イベントが発生し、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると（図２に示すハード認識）、ＣＰＵ１０は、割り込み処理を受け付け、現在実行中の割り込み処理Ａを一旦中断して第２イベントに対する割り込み処理に移行する（図２に示すソフト認識）（Ｓ１９）。
【００３５】
続いて、ＣＰＵ１０が、この割り込みに対して必要最低限の処理（例えば、割り込み要因のクリア等）を行い（Ｓ２０）、第２イベント用に設けられた割込制御カウンタの値を１だけ加算する（Ｓ２１）。
【００３６】
そして、ステップＳ１８に戻り、ＣＰＵ１０によって、割り込み処理Ａの実行中に割り込みがあるか否かの判断が行われる。このとき、ＣＰＵ１０が、割り込み処理Ａの実行中に割り込みがあることを確認すると（Ｓ１８ＹＥＳ）、すなわち、図２に示すように、時刻Ｔ３において第３イベントが発生し、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると（図２に示すハード認識）、割り込み処理を受け付け、現在実行中の割り込み処理Ａを一旦中断して第３イベントに対する割り込み処理に移行する（図２に示すソフト認識、Ｓ１９）。
【００３７】
続いて、ＣＰＵ１０が、この割り込みに対して必要最低限の処理（例えば、割り込み要因のクリア等）を行い（Ｓ２０）、第３イベント用に設けられた割込制御カウンタの値を１だけ加算する（Ｓ２１）。
【００３８】
そして、ステップＳ１８に戻り、ＣＰＵ１０によって、割り込み処理Ａの実行中に割り込みがあるか否かの判断が行われる。このとき、ＣＰＵ１０が、割り込み処理Ａの実行中に割り込みがあることを確認すると（Ｓ１８ＹＥＳ）、すなわち、図２に示すように、時刻Ｔ４において第２イベントが発生し、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると（図２に示すハード認識）、割り込み処理を受け付け、現在実行中の割り込み処理Ａを一旦中断して第２イベントに対する割り込み処理に移行する（図２に示すソフト認識）（Ｓ１９）。
【００３９】
続いて、ＣＰＵ１０が、この割り込みに対して必要最低限の処理（例えば、割り込み要因のクリア等）を行い（Ｓ２０）、第２イベント用に設けられた割込制御カウンタの値を１だけ加算する（Ｓ２１）。
【００４０】
そして、ステップＳ１８に戻り、ＣＰＵ１０によって、割り込み処理Ａの実行中に割り込みがあるか否かの判断が行われる。よって、図２に示すように時刻Ｔ５の直前（処理Ａを実行中）では、第１イベント用の割込制御カウンタの値が１、第２イベント用の割込制御カウンタの値が２、第３イベント用の割込制御カウンタの値が１、となっている。
【００４１】
一方、ステップＳ１８において、ＣＰＵ１０が、割り込み処理Ａの実行中に割り込みがないことを確認すると（Ｓ１８ＮＯ）、次に、ＣＰＵ１０によって、割り込み処理Ａが終了したか否かの判断が行われる（Ｓ２２）。このとき、ＣＰＵ１０が、割り込み処理Ａが終了していないことを確認すると（Ｓ２２ＮＯ）、ステップＳ１８に戻り、このＣＰＵ１０によって割り込み処理Ａの実行中に割り込みがあるか否かの判断が行われる。一方、このとき、ＣＰＵ１０が、時刻Ｔ５において割り込み処理Ａが終了するときに（Ｓ２２ＹＥＳ）、第１イベント用の割込制御カウンタの値を１だけ減算する（ステップＳ２３）。よって、第１イベント用の割込制御カウンタの値が０となる。
【００４２】
その後、ＣＰＵ１０によって、起動されたスケジューラに基づき割込制御カウンタの値のチェックが行われる（Ｓ２４）。この時点で、第１イベント用の割込制御カウンタの値が０、第２イベント用の割込制御カウンタの値が２、第３イベント用の割込制御カウンタの値が１、となっている。なお、ＣＰＵ１０は、第３イベント用の割込制御カウンタの方が第２イベント用の割込制御カウンタよりも優先されること、すなわち、第３イベントに対して実行される割り込み処理Ｃの方が第２イベントに対して実行される割り込み処理Ｂよりも処理の優先順位が高いことを予めソフトウェアから把握している。
【００４３】
よって、ＣＰＵ１０が、未処理のイベントが存在することを確認すると（Ｓ２５ＹＥＳ）、ステップＳ１７に戻る。イベント実行ハンドラは、第３イベントに対する割り込み処理Ｃを実行する（Ｓ１７）。そして、ＣＰＵ１０は、時刻Ｔ６において割り込み処理Ｃが終了するときに（Ｓ２２ＹＥＳ）、第３イベント用の割込制御カウンタの値を１だけ減算する（Ｓ２３）。よって、第３イベント用の割込制御カウンタの値が０となる。
【００４４】
その後、ＣＰＵ１０は、起動されたスケジューラに基づき割込制御カウンタの値のチェックを行う（Ｓ２４）。この時点で、第１イベント用の割込制御カウンタの値が０、第２イベント用の割込制御カウンタの値が２、第３イベント用の割込制御カウンタの値が０、となっている。よって、ＣＰＵ１０が、未処理のイベントが存在することを確認すると（Ｓ２５ＹＥＳ）、ステップＳ１７に戻る。
【００４５】
そして、イベント実行ハンドラは、時刻Ｔ２で発生した第２イベントに対する割り込み処理Ｂを実行する（Ｓ１７）。そして、ＣＰＵ１０が、時刻Ｔ７においてその割り込み処理Ｂが終了するときに（Ｓ２２ＹＥＳ）、第２イベント用の割込制御カウンタの値を１だけ減算する（Ｓ２３）。
【００４６】
その後、ＣＰＵ１０によって、起動されたスケジューラに基づき割込制御カウンタの値のチェックが行われる（Ｓ２４）。この時点で、第１イベント用の割込制御カウンタの値が０、第２イベント用の割込制御カウンタの値が１、第３イベント用の割込制御カウンタの値が０、となっている。よって、ＣＰＵ１０が、未処理のイベントが存在することを確認すると（Ｓ２５ＹＥＳ）、ステップＳ１７に戻り、イベント実行ハンドラは、時刻Ｔ４で発生した第２イベントに対する割り込み処理Ｂを実行する（Ｓ１７）。そして、ＣＰＵ１０が、時刻Ｔ８においてその割り込み処理Ｂが終了するときに（Ｓ２２ＹＥＳ）、第２イベント用の割込制御カウンタの値を１だけ減算する（Ｓ２３）。
【００４７】
更に、ＣＰＵ１０によって、起動されたスケジューラに基づき割込制御カウンタの値のチェックが行われる（Ｓ２４）。この時点で、第１イベント用の割込制御カウンタの値が０、第２イベント用の割込制御カウンタの値が０、第３イベント用の割込制御カウンタの値が０、となっている。上記で説明したように、このため、ＣＰＵ１０が、未処理のイベントが存在しないことを確認すると（Ｓ２５ＮＯ）、ＣＰＵ１０によって、第１イベントから第３イベントに対する割り込み処理を実行するために中断されていた非リアルタイム処理が再開される（Ｓ２６）。
【００４８】
上記で説明した本実施形態のポーリング処理装置１であれば、ポーリング処理に基づく非リアルタイム処理の実行中にイベント（すなわち、割り込み）が発生した際に、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると、実行中の非リアルタイム処理を中断して非リアルタイム処理の実行アドレス（プログラムカウンタ）をＲＡＭ１２に退避させることにより、レジスタのセーブが行われるため、そのイベント（すなわち、割り込み）の発生に対して、リアルタイムにそのイベントに対する割り込み処理を実行することが可能となる。これにより、非リアルタイム処理の実行中にイベントが発生してから、イベントに対する割り込み処理の完了までの時間を短縮することが可能となる。また、非リアルタイム処理の実行中にイベントが発生すると、ＣＰＵ１０が割り込み検知部１３を介して割り込み信号を直ちに検知するため、ＣＰＵによる割り込みの認識時間が安定するとともに、そのイベントに対する割り込み処理の時間を安定させることができる。このため、割り込みに対するＣＰＵの反応時間を規定することができる。
【００４９】
また、任意のイベントに対する割り込み処理中に、ＣＰＵ１０がソフトウェアを用いて割り込みの最も低いレベルに登録された割り込みであるイベント実行ハンドラが起動されることで、異なるレベルのイベントおよび同レベルのイベントが発生しても、ＣＰＵ１０が割り込み検知部１３を介してこれらのイベントを検知することができるため、割り込みの欠落といった割り込みの検知ミスを防止することができる。
【００５０】
また、任意のイベントに対する割り込み処理の実行中にＣＰＵ１０によってハード認識で受け付けられた複数のイベントに対する割り込み処理が実行される際には、ＣＰＵ１０が、スケジューラに基づき、イベントの種類ごとに用意された割込制御カウンタを優先順位の高いイベント用の割込制御カウンタから順にチェックし、割込制御カウンタの値がゼロでないことを確認したときに、割込制御カウンタに応じた割り込み処理を実行する構成のため、複数のイベントに対する割り込み処理を優先順位の順に処理することが可能となる。
【００５１】
また、非リアルタイム処理の実行中にイベント（すなわち、割り込み）が発生した際に、ＣＰＵ１０が、割り込み検知部１３が外部装置より入力される割り込み信号または内部タイマにより周期的に発生する割り込み信号を検知したことを確認すると、イベントに対する割り込み処理の起動が行われるので、不必要なポーリングが不要となる。例えば、従来のポーリング処理装置１であれば、図４に示す時刻Ｔ２、Ｔ５、Ｔ６の各ポイントにおいて、毎回、第１イベント、第２イベントおよび第３イベントのいずれかが発生しているか、どうかを確認する必要がある。一方、本発明に係るポーリング処理装置１であれば、非リアルタイム処理とは別のタイミングでリアルタイムに処理を行えるので、図４に示す時刻Ｔ２、Ｔ５、Ｔ６の各ポイントでの不必要なポーリング処理が不要となる。
【００５２】
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。
【産業上の利用可能性】
【００５３】
本発明は、複写機やプリンタ等の画像形成装置等の電子機器を制御するために用いられるポーリング処理装置に関して有用な技術である。
【図面の簡単な説明】
【００５４】
【図１】は、実施形態に係るポーリング処理装置の構成を示すブロック図である。
【図２】は、実施形態に係るポーリング処理装置における割り込み処理の流れを示すタイムチャートである。
【図３】は、実施形態に係るポーリング処理装置におけるＣＰＵの動作を示すフローチャートである。
【図４】は、従来のポーリング処理装置における割り込み処理の流れを示すタイムチャートである。
【符号の説明】
【００５５】
１    ポーリング処理装置
１０    ＣＰＵ
１１    ＲＯＭ
１２    ＲＡＭ
１３    割り込み検知部
【図１】
2007201870.tif 000003
【図２】
2007201870.tif 000004
【図３】
2007201870.tif 000005
【図４】
2007201870.tif 000006