(57)【要約】【課題】多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができるイベント管理装置を提供する。【解決手段】ＣＰＵ８２が複数のイベントの中から実行時刻の早い順に２個のイベントを選択してイベント管理部７６に登録し、一致検出部７３が登録されたイベントのイベント時間と現在時刻とが一致したことを検出した場合、イベント管理部７６がイベントの識別子をＣＰＵ８２へ通知し、ＣＰＵ８２が通知されたイベントが要求するサービス関数をコールしてイベントを実行する。【選択図】  図３
2004258979.tif 000002
【特許請求の範囲】
【請求項１】
所定の実行時刻に実行されるべき複数のイベントの実行タイミングを管理するイベント管理装置であって、
所定のプログラムを実行することにより前記複数のイベントの中から実行時刻の早い順にｎ個（ｎは２以上の整数）のイベントを選択する演算処理手段と、
所定の周期でカウント動作を循環的に行うカウンタ手段と、
前記カウンタ手段のカウント値を参照して前記演算処理手段により選択された一のイベントの実行タイミングを検出するｎ個の検出手段とを備え、
前記演算処理手段は、前記検出手段により検出された実行タイミングに応じてイベントを実行させること特徴とするイベント管理装置。
【請求項２】
前記演算処理手段は、予め設定された前記イベントの最小検出間隔内の複数のイベントを縮退して一の縮退イベントを前記検出手段に設定することを特徴とする請求項１記載のイベント管理装置。
【請求項３】
前記検出手段の最小検出間隔は、前記イベントの最小検出間隔より短いことを特徴とする請求項２記載のイベント管理装置。
【請求項４】
前記演算処理手段は、前記複数のイベントの実行タイミングを絶対時間で管理し、
前記検出手段は、前記カウンタ手段のカウント値により特定される現在時刻から所定時間前までの検出範囲内に実行時刻を有するイベントに対して当該イベントの実行タイミングが到来したと判断することを特徴とする請求項１〜３のいずれかに記載のイベント管理装置。
【請求項５】
請求項１〜４記載のイベント管理装置を備え、前記イベント管理装置は、機器本体内で実行される複数のイベントの実行タイミングを管理する画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定の実行時刻に実行されるべき複数のイベントの実行タイミングを管理するイベント管理装置及び当該イベント管理装置を用いた、複写機、プリンタ、ファクシミリ、複合機等の画像形成装置に関するものである。
【０００２】
【従来の技術】
所定の実行時刻に実行されるべき複数のイベントの実行タイミングを管理するイベント管理装置として、プログラマブル・コントローラがある。一般に、プログラマブル・コントローラにおいては、数千個という非常に多数のタイマ機能を必要とするため、多数のタイマ機能をソフトウエアにより実現している。また、他のプログラマブル・コントローラでは、メモリ領域のデータを基準クロックに対応して書き替えることにより複数のタイマ機能を実現するため、基準クロックに同期するフリーランカウンタを設け、各タイマの経過時間の更新処理並びに各タイマの起動処理及び停止処理をフリーランカウンタのカウンタ値を用いた加減算により行うタイマ装置が提案されている（例えば、特許文献１参照。）。この場合、ユーザプログラムに左右されることなく、高精度のタイマ機能を多数実現することができる。
【０００３】
【特許文献１】
特開平９−２４４７１６号公報
【０００４】
【発明が解決しようとする課題】
一方、複写機の分野では、スキャナ機能、ファクシミリ機能、プリンタ機能、及びコピー機能等の複合機能を備えた複合機が開発され、種々のイベントを多数実行することが要求される。しかしながら、上記の従来のイベント管理装置では、タイマ機能の精度を上げれば上げるだけメモリ領域へのアクセスが頻繁に発生し、大容量メモリの一部を共用することが困難になり、高精度にイベントを処理することができない。また、専用のメモリを用いた場合、使用するタイマ機能の数に対応する充分なメモリ領域を確保しなければならず、タイマ機能の数が増減するシステムでは、メモリの利用効率が低下し、ハードウエア資源を効率よく使用することができない。
【０００５】
本発明の目的は、多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができるイベント管理装置及び画像形成装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明に係るイベント管理装置は、所定の実行時刻に実行されるべき複数のイベントの実行タイミングを管理するイベント管理装置であって、所定のプログラムを実行することにより複数のイベントの中から実行時刻の早い順にｎ個（ｎは２以上の整数）のイベントを選択する演算処理手段と、所定の周期でカウント動作を循環的に行うカウンタ手段と、カウンタ手段のカウント値を参照して演算処理手段により選択された一のイベントの実行タイミングを検出するｎ個の検出手段とを備え、演算処理手段は、検出手段により検出された実行タイミングに応じてイベントを実行させるものである。
【０００７】
本発明に係るイベント管理装置においては、演算処理手段が所定のプログラムを実行することにより複数のイベントの中から実行時刻の早い順にｎ個（ｎは２以上の整数）のイベントが選択され、所定の周期でカウント動作を循環的に行うカウンタ手段のカウント値を参照して、選択されたｎ個のイベントの実行タイミングをそれぞれ検出され、検出された実行タイミングに応じて演算処理手段によりイベントが実行される。
【０００８】
このように、ソフトウエアにより複数のイベントの中から選択されたｎ個のイベントが専用のハードウエアである検出手段に登録されるので、多数のイベントを管理することができるとともに、専用のハードウエアである検出手段の使用効率を向上することができ、また、ｎ個のイベントの実行タイミングは、専用のハードウエアである検出手段及びカウンタ手段を用いて決定されるため、高精度にイベントの実行タイミングを決定することができる。この結果、多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができる。
【０００９】
演算処理手段は、予め設定されたイベントの最小検出間隔内の複数のイベントを縮退して一の縮退イベントを検出手段に設定することが好ましい。この場合、イベントの最小検出間隔内の複数のイベントを縮退して一の縮退イベントを設定することができるので、より多くのイベントを高精度に処理することができる。
【００１０】
検出手段の最小検出間隔は、イベントの最小検出間隔より短いことが好ましい。この場合、イベントの実行タイミングを高精度に決定することができる。
【００１１】
演算処理手段は、複数のイベントの実行タイミングを絶対時間で管理し、検出手段は、カウンタ手段のカウント値により特定される現在時刻から所定時間前までの検出範囲内に実行時刻を有するイベントに対して当該イベントの実行タイミングが到来したと判断することが好ましい。
【００１２】
この場合、あるイベントが検出手段に設定された後に、検出手段が稼動し始めた場合でも、当該イベントの実行タイミングが到来したと判断することができるので、イベントを確実に処理することができる。
【００１３】
画像形成装置は、上記のイベント管理装置を備え、イベント管理装置は、機器本体内で実行される複数のイベントの実行タイミングを管理することが好ましい。この場合、複写機、プリンタ、ファクシミリ、複合機等の画像形成装置において、多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施の形態によるイベント管理装置を用いた画像形成装置の一例としてデジタル複合機について図面を参照しながら説明する。図１は、本発明の一実施の形態によるイベント管理装置を用いたデジタル複合機の機械的構成を主に示す側面概略図である。
【００１５】
デジタル複合機１は、スキャナ機能、ファクシミリ機能、プリンタ機能、及びコピー機能等の複合機能を備えたデジタル方式の複写機である。デジタル複合機１では、上記の各機能を組み合わせて種々の機能が実現される。
【００１６】
デジタル複合機１は、本体部２００と、本体部２００の左側に配設された用紙後処理部３００と、ユーザが種々の操作指令等を入力するための操作部４００と、本体部２００の上部に配設された原稿読み取り部５００と、原稿読み取り部５００の上方に配設された原稿給送部６００とから構成される。
【００１７】
操作部４００は、タッチパネル４０１、スタートキー４０２及びテンキー４０３等を備える。タッチパネル４０１は、種々の操作画面を表示するとともに、ユーザが種々の操作指令を入力するための種々の操作ボタン等を表示する。スタートキー４０２は、ユーザがコピー実行指令等を入力するために用いられ、テンキー４０３は、コピー部数等を入力するために用いられる。
【００１８】
原稿給送部６００は、原稿載置部６０１、原稿排出部６０２、給紙ローラ６０３及び原稿搬送部６０４等を備え、原稿読み取り部５００は、スキャナ５０１等を備える。給紙ローラ６０３は、原稿載置部６０１にセットされた原稿を繰り出し、原稿搬送部６０４は、繰り出される原稿を１枚ずつ順にスキャナ５０１上に搬送する。スキャナ５０１は搬送される原稿を順次読み取り、読み取られた原稿は原稿排出部６０２に排出される。
【００１９】
本体部２００は、複数の給紙カセット２０１、複数の給紙ローラ２０２、転写ローラ２０３、感光体ドラム２０４、露光装置２０５、現像装置２０６、定着ローラ２０７、排出口２０８、及び排出トレイ２０９等を備える。
【００２０】
感光体ドラム２０４は、矢印方向に回転しながら帯電装置（図示省略）によって一様に帯電される。露光装置２０５は、原稿読み取り部５００において読み取られた原稿の画像データに基づいて生成された変調信号をレーザ光に変換して出力し、感光体ドラム２０４に静電潜像を形成する。現像装置２０６は、所定の現像剤を感光体ドラム２０４に供給してトナー画像を形成する。
【００２１】
一方、給紙ローラ２０２は、用紙が収納された給紙カセット２０１から用紙を引き出し、転写ローラ２０３まで給送する。転写ローラ２０３は、搬送された用紙に感光体ドラム２０４上のトナー像を転写させ、定着ローラ２０７は、転写されたトナー像を加熱して用紙に定着させる。その後、用紙は、本体部２００の排出口２０８から用紙後処理部３００に搬入される。また、用紙は、必要に応じて排出トレイ２０９へも排出される。
【００２２】
用紙後処理部３００は、搬入口３０１、用紙搬送部３０２、搬出口３０３及びスタックトレイ３０４等を備える。用紙搬送部３０２は、排出口２０９から搬入口３０１に搬入された用紙を順次搬送し、最終的に搬出口３０３からスタックトレイ３０４へ用紙を排出する。スタックトレイ３０４は、搬出口３０３から搬出された用紙の集積枚数に応じて矢印方向に上下動可能に構成されている。
【００２３】
図２は、図１に示すデジタル複合機１の電気的構成を主に示すブロック図である。デジタル複合機１は、スキャナ部１１、画像処理部２１、プリンタ部３１、制御部４１、操作パネル部５１、ファクシミリ通信部６１、ネットワークＩ／Ｆ（インターフェース）部６２、パラレルＩ／Ｆ部６３、シリアルＩ／Ｆ部６４及びＨＤＤ（ハードディスクドライブ）６５を備える。
【００２４】
スキャナ部１１、画像処理部２１、制御部４１、操作パネル部５１及びネットワークＩ／Ｆ部６２は、図１に示す操作部４００、原稿読み取り部５００及び原稿給送部６００に相当し、これらの各部によりスキャナ機能が実現される。スキャナ部１１、画像処理部２１、プリンタ部３１、制御部４１、操作パネル部５１及びファクシミリ通信部６１は、図１に示す本体部２００、操作部４００、原稿読み取り部５００及び原稿給送部６００に相当し、これらの各部によりファクシミリ機能が実現される。画像処理部２１、プリンタ部３１、制御部４１、操作パネル部５１、ネットワークＩ／Ｆ部６２及びパラレルＩ／Ｆ部６３は、図１に示す本体部２００及び操作部４００に相当し、これらの各部によりプリンタ機能が実現される。スキャナ部１１、画像処理部２１、プリンタ部３１、制御部４１、操作パネル部５１及びネットワークＩ／Ｆ部６２は、図１に示す本体部２００、用紙後処理部３００、操作部４００、原稿読み取り部５００及び原稿給送部６００に相当し、これらの各部によりコピー機能が実現される。
【００２５】
操作パネル部５１は、図１に示すタッチパネル４０１等から構成されるタッチパネル部５２、及び図１に示すスタートキー４０２及びテンキー４０３等から構成される操作キー部５３を含む。操作パネル部５１は、ユーザがスキャナ機能、ファクシミリ機能、プリンタ機能、コピー機能等に関する操作を行うために使用され、ユーザによる操作指令等を制御部４１に与える。タッチパネル部５２は、タッチパネルとＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）とを組み合わせたタッチパネルユニット等から構成され、種々の操作画面、例えば、コピー機能実行時には、原稿サイズ、コピーサイズ、印刷部数等に関する情報を表示するとともに、ユーザが当該部分をタッチすることにより種々の操作指令を入力するための操作ボタン等を表示する。操作キー部５３は、ユーザがコピー実行指令等を入力するために用いられる。
【００２６】
制御部４１は、スキャナコントローラ４２、ファクシミリコントローラ４３、プリンタコントローラ４４及びコピーコントローラ４５として機能する。制御部４１は、マイクロコンピュータ及び専用のハードウエア回路等から構成され、装置全体の動作を制御する。スキャナコントローラ４２は、スキャナ機能を実現するために用いられる各部の動作を制御する。ファクシミリコントローラ４３は、ファクシミリ機能を実現するために用いられる各部の動作を制御する。プリンタコントローラ４４は、プリンタ機能を実現するために用いられる各部の動作を制御する。コピーコントローラ４５は、コピー機能を実現するために用いられる各部の動作を制御する。
【００２７】
スキャナ部１１は、図１に示すスキャナ５０１を構成する露光ランプ１２及びＣＣＤ（電荷結合素子）１３を含む。スキャナ部１１は、露光ランプ１２により原稿を照射し、その反射光をＣＣＤ１３で受光することにより、原稿から画像を読み取り、読み取った画像に対応する画像データを画像処理部２１へ出力する。
【００２８】
画像処理部２１は、補正部２２、画像加工部２３及び画像メモリ２４を含む。画像処理部２１は、読み取られた画像データを必要に応じて補正部２２及び画像加工部２３により処理し、処理された画像データを画像メモリ２４に記憶したり、プリンタ部３１、ファクシミリ通信部６１又はネットワークＩ／Ｆ部６２等へ出力する。補正部２２は、読み取られた画像データに対してレベル補正、γ補正等の所定の補正処理を行う。画像加工部２３は、画像データの圧縮又は伸張処理、及び拡大又は縮小処理等の種々の加工処理を行う。
【００２９】
プリンタ部３１は、図１に示す給紙カセット２０１及び給紙ローラ２０２等から構成される用紙搬送部３２、図１に示す感光体ドラム２０４、露光装置２０５、現像装置２０６等から構成される画像形成部３３、図１に示す転写ローラ２０３等から構成される転写部３４、及び図１に示す定着ローラ２０７等から構成される定着部３５を含む。プリンタ部３１は、スキャナ部１１により読み取られた原稿データ、ネットワークＩ／Ｆ部６２を介してＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）によりクライアントＰＣ（パーソナルコンピュータ）等から送信された印刷データ、ファクシミリ通信部６１を用いて外部のファクシミリ装置等から受信したファクスデータ等の画像データを用いて画像を用紙に印刷する。具体的には、用紙搬送部３２は用紙を画像形成部３３へ搬送し、画像形成部３３は上記の画像データに対応するトナー像を形成し、転写部３４はトナー像を用紙に転写し、定着部３５はトナー像を用紙に定着させて画像を形成する。
【００３０】
ファクシミリ通信部６１は、符号化／復号化部（図示省略）、変復調部（図示省略）及びＮＣＵ（Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）（図示省略）を含む。ファクシミリ通信部６１は、スキャナ部１１によって読み取られた原稿の画像データを電話回線を介してファクシミリ装置等へ送信したり、ファクシミリ装置等から送信された画像データを受信する。符号化／復号化部は、送信する画像データを圧縮・符号化し、受信した画像データを伸長・復号化する。変復調部は、圧縮・符号化された画像データを音声信号に変調したり、受信した信号（音声信号）を画像データに復調する。ＮＣＵは、送受信先となるファクシミリ装置等との電話回線による接続を制御する。
【００３１】
ネットワークＩ／Ｆ部６２は、ネットワークインタフェース（１０／１００Ｂａｓｅ−ＴＸ）等を用い、ＬＡＮを介して接続されたクライアントＰＣ等に対する種々のデータの送受信を制御し、例えば、クライアントＰＣ等から送信された印刷データ等を受信する。パラレルＩ／Ｆ部６３は、高速双方向パラレルインターフェイス（ＩＥＥＥ１２８４準拠）等を用い、複数の信号線を用いて複数ビット単位でデータを送信するパラレル伝送により外部機器等から印刷データ等を受信等する。シリアルＩ／Ｆ部６４は、シリアルインターフェイス（ＲＳ−２３２Ｃ）等を用い、単一の信号線を用いて１ビットずつ順次データを送るシリアル伝送により外部機器等から種々のデータ等を受信等する。
【００３２】
ＨＤＤ６５は、スキャナ部１１によって読み取られた画像データ及び当該画像データに設定されている出力形式等の種々のデータ等を記憶する。ＨＤＤ６５に記憶されている画像データは、デジタル複合機１内部で使用されるだけでなく、必要に応じて、ネットワークＩ／Ｆ部６２を介してクライアントＰＣ等から確認したり、クライアントＰＣ等の所定のフォルダへ転送される。
【００３３】
上記のように、デジタル複合機１においては、スキャナ機能、ファクシミリ機能、プリンタ機能、コピー機能等の種々の機能を実行するために種々のイベントを多数実行することが要求され、制御部４１は、所定の実行時刻に実行されるべき複数のタイマイベントの実行タイミングを管理するイベント管理装置として機能する。図３は、図２に示す制御部４１内のイベント管理装置のハードウエア構成を示すブロック図である。
【００３４】
図３に示すイベント管理装置は、クロック生成部７１、フリーラン時刻カウンタ７２、２個の一致検出部７３、２個のイベント時間保持部７４、２個の識別子保持部７５、イベント管理部７６、現在時刻読み出し部７７、ＲＯＭ（リードオンリメモリ）８１、ＣＰＵ（中央演算処理装置）８２、及びＲＡＭ（ランダムアクセスメモリ）８３を備える。
【００３５】
クロック生成部７１、フリーラン時刻カウンタ７２、２個の一致検出部７３、２個のイベント時間保持部７４、２個の識別子保持部７５、イベント管理部７６及び現在時刻読み出し部７７はそれぞれ専用のハードウエアにより構成され、これらの各部からハードウエアタイマ部が構成される。なお、図３では、図示及び説明を容易にするために、一致検出部７３、イベント時間保持部７４及び識別子保持部７５をそれぞれ２個設けた例を示している。
【００３６】
ここで、一致検出部７３、イベント時間保持部７４及び識別子保持部７５の数すなわちハードウエアタイマ部で処理可能なイベント数は、ＣＰＵ８２による最悪割り込み処理間隔すなわちソフトウエアが処理できない時間間隔を、デジタル複合機１が必要とする割り込み処理間隔すなわちハードウエアの割り込み処理間隔で割った数となる。例えば、ソフトウエアが処理できない時間間隔が１０ｍｓで、ハードウエアの割り込み処理間隔が１ｍｓの場合、一致検出部７３、イベント時間保持部７４及び識別子保持部７５の数はそれぞれ５個になる。
【００３７】
したがって、一致検出部７３、イベント時間保持部７４及び識別子保持部７５の数は、上記の例に特に限定されず、管理すべきイベントの数に応じて種々の数を用いることができ、例えば、３個以上の一致検出部、イベント時間保持部及び識別子保持部を設けてもよく、また、本実施の形態のようなデジタル複合機の場合、数十個の一致検出部、イベント時間保持部及び識別子保持部を設けることが好ましい。
【００３８】
ＲＯＭ８１には、所定のイベント管理プログラムが予め記憶されており、ＣＰＵ８２は、このイベント管理プログラムを実行することにより後述するタイマイベント登録処理及びタイマイベント発生処理を実行し、複数のイベントの中から実行時刻の早い順に２個のイベントを選択して、イベント管理部７６に登録する。ＲＡＭ８３は、ＣＰＵ８２の作業領域等として用いられる。
【００３９】
クロック生成部７１は、一定間隔のクロックパルスをフリーラン時刻カウンタ７２へ出力する。フリーラン時刻カウンタ７２は、充分に大きなフリーランの時刻カウンタであり、クロック生成部７１のクロックパルスに同期して所定の周期でカウント動作を循環的に行う。フリーラン時刻カウンタ７２として、本実施の形態では、例えば、１６ｂｉｔのカウンタを用いており、０から６５５３５まで１ずつカウントし、その後０に戻ってカウントを続ける。また、本実施の形態では、フリーラン時刻カウンタ７２により示される時刻を現在時刻ということとし、現在時刻読み出し部７７は、フリーラン時刻カウンタ７２の現在時刻を読み出してＣＰＵ８２へ通知する。
【００４０】
イベント管理部７６は、ＣＰＵ８２により選択された各イベントの実行時刻となるイベント時間及び当該イベントを特定するための識別子をイベント時間保持部７４及び識別子保持部７５に設定する。イベント時間保持部７４は、イベント管理部７６により設定されたイベント時間を保持する。識別子保持部７５は、イベント管理部７６により設定された識別子を保持する。
【００４１】
一致検出部７３は、イベント時間保持部７４に保持されているイベント時間とフリーラン時刻カウンタ７２の現在時刻とを比較する。イベント時間と現在時刻とが一致する場合、一致検出部７３は、イベント時間と現在時刻とが一致したことを識別子保持部７５に通知する。
【００４２】
図４は、図３に示す一致検出部７３の動作を説明するための模式図である。図４では、フリーラン時刻カウンタ７２のカウント値が循環するため、カウント値を円で示している。図４に示すイベントＡは既に経過したイベントであり、イベントＢは丁度発生しようとしているイベントであり、イベントＣは将来発生する未来のイベントである。ここで、両矢印ＤＲの範囲は、一致検出部７３により時刻が一致していると判断される範囲であり、本実施の形態では、フリーラン時刻カウンタ７２のカウント範囲の半分が、時刻が一致していると判断される範囲に設定されている。例えば、フリーラン時刻カウンタ７２のカウント周期すなわち時間管理精度（一致検出部７３の最小検出間隔）を０．１ｍｓとすると、フリーラン時刻カウンタ７２の一周期が６．５５３５秒となり、時刻が一致していると判断される範囲は３．２７６７秒となる。
【００４３】
このように、一致検出部７３において過去まで遡って一致判断を行っているのは、現在時刻から非常に近い時刻においてイベントの登録要求があった場合に、この登録作業中にもフリーラン時刻カウンタ７２が進んでいくので、一致検出部７３が稼動し始めたときには既にイベントの実行時刻を過ぎており、登録したイベントが永久に発生しないといった問題を回避するためである。
【００４４】
したがって、図４の例では、一致検出部７３により現在時刻とイベントＡ，Ｂの実行時刻とが一致したと判断され、イベント管理部７６がイベントＡ，Ｂの識別子をＣＰＵ８２へ通知する。ＣＰＵ８２は、イベントＡ，Ｂが要求するサービス関数をそれぞれコールしてイベントＡ，Ｂを実行する。なお、上記の処理において、イベントＡがイベントＢより優先されて処理される。
【００４５】
上記のように、一致検出部７３は、イベント時間と現在時刻とが一致すると判断した場合、イベント時間と現在時刻とが一致したことを識別子保持部７５に通知し、識別子保持部７５は、保持している識別子をイベント管理部７６に通知する。イベント管理部７６は、通知された識別子を割り込み処理によりＣＰＵ８２へ通知する。ＣＰＵ８２は、通知された識別子により特定されるイベントが要求するサービス関数をコールしてイベントを実行する。また、イベント管理部７６は、識別子を通知した後、識別子を通知した識別子保持部７５及びイベント時間保持部７４に設定されている識別子及びイベント時間をリセットする。
【００４６】
このようにして、ＣＰＵ８２は、現在時刻読み出し部７７から現在時刻をいつでも読み出すことができ、また、イベント管理部７６を用いてイベントの追加及び削除、イベントの割り込み通知及び識別子の取得を行うことができる。
【００４７】
図５は、図３に示すＣＰＵ８２がイベント管理プログラムを実行することにより実現されるソフトウエアタイマ部の機能的な構成を示すブロック図である。
【００４８】
図５に示すように、ＣＰＵ８２は、イベント実行部９１、時刻変換部９２、イベントリンクリスト部９３、管理登録部９４、イベント検索部９５及び時刻加算部９６として機能し、これらの各部によりソフトウエアタイマ部が構成される。
【００４９】
イベント実行部９１は、タイマ機能を利用して動作する要求元のアプリケーションプログラム等を実行し、現在時刻から所定時間後にイベントを発生して所定のジョブを行うため、タイマイベントを時刻変換部９２に発行する。
【００５０】
時刻変換部９２は、イベント実行部９１からの新規なタイマイベント登録を受け付ける。このとき、時刻変換部９２は、現在時刻読み出し部７７から現在時刻を読み出し、読み出した現在時刻にタイマイベント登録によって通知されたタイマ時間を加算し、イベントを発生させるべき絶対時刻であるイベント時間を算出してイベントリンクリスト部９３に登録する。なお、ソフトウエアタイマ部における時間表現は、この絶対時間を用いるものとする。
【００５１】
また、時刻変換部９２は、追加するイベントのサービス関数をイベントリンクリスト部９３に登録するともに、当該イベントが一定の時間間隔ごとに所定のジョブを実行する繰り返しイベントの場合、繰り返しマークを付加するようにイベントリンクリスト部９３に指示する。
【００５２】
イベントリンクリスト部９３は、記憶しているイベントリンクリストに時刻変換部９２から受け取ったイベントを追加する。なお、イベントリンクリストは、現在時刻から絶対時間順に各イベントを整列させており、追加されたイベントは、この時間順を乱さないように適切な場所に登録される。
【００５３】
登録管理部９４は、イベントリンクリスト部９３が記憶しているイベントリンクリストの中から実行時刻の早い順に２個のイベントを抽出してイベント管理部７６に登録する。
【００５４】
イベント検索部９５は、イベント管理部７６からイベント時間と現在時刻とが一致したイベントの識別子を受け付け、イベントリンクリスト部９３のイベントリンクリストから当該識別子を有するイベントを特定し、このイベントが要求するサービス関数をコールするようにイベント実行部９１に指示し、イベント実行部９１がサービス関数に応じた処理を実行する。なお、このサービスは関数であるため、終了すると戻ってくる。
【００５５】
また、イベント検索部９５は、イベントリンクリスト部９３のイベントリンクリストを参照して、イベント管理部７６から通知されたイベントが繰り返しイベントであるか否かを確認する。通知されたイベントが繰り返しイベントである場合、イベント検索部９５は、イベントが繰り返しイベントであることを時刻加算部９６に通知する。時刻加算部９６は、通知されたイベントのタイマ時間をイベント時間に加算し、イベントリンクリスト部９３のイベントリンクリストを更新する。
【００５６】
ここで、一致検出部７３、イベント時間保持部７４及び識別子保持部７５の数は２個であるため、これを超えるイベントは、ソフトウエアタイマ部において管理されることになり、割り込み処理間隔が短くなると、その反応時間と割り込み処理時間とからいくつかの割り込み処理が実行できず無視されることになる。このため、本実施の形態では、複数のイベントを縮退させてイベントリンクリスト部９３に登録している。図６は、イベントの縮退処理を説明するための模式図である。
【００５７】
例えば、図示のような実行時刻のイベントＡ〜Ｆがイベントリンクリスト部９３に登録されている場合、最小割り込み処理間隔（イベントの最小検出間隔）を例えば１ｍｓに設定し、１ｍｓ内の３個のイベントＡ〜Ｃが縮退されて最後のイベントＣの実行時刻に設定され、同様に、１ｍｓ内の３個のイベントＤ〜Ｆが縮退されて最後のイベントＦの実行時刻に設定される。この場合、イベントＣの実行時刻とイベントＦの実行時刻との間の時間Ｔが割り込み処理間隔となり、時間Ｔが最小割り込み処理間隔以上であれば、イベントＡ〜Ｆを管理することができる。
【００５８】
図７は、図５に示すイベントリンクリスト部９３に登録されたイベント例を示す図である。例えば、イベントリンクリスト部９３には、図７の（ａ）に示すイベント情報がイベントリンクリストとして登録される。
【００５９】
ここで、図７に示すノードは、イベントを特定するための識別子であり、イベント時間は、次にイベントが発生する時刻すなわち実行時刻を表している。縮退マークは、複数のイベントが縮退されたことを表すマークであり、この複数のイベントを一つのグループとすると、グループ内の最も遅いイベント以外のイベントに縮退マークが付加され、図７では、ｔｒｕｅが縮退されていることを示し、ｔｒｕｅの直後のｆａｌｓｅを除き、ｆａｌｓｅが縮退されていないことを示している。
【００６０】
サービス関数は、イベントが発生した場合に呼び出す関数（サブルーチン）のアドレスとその引数を保持しており、例えば、ノード１のイベントでは、サービス関数Ａ（）がコールされる。前ノードは、時間的に一つ前のイベントを指し示すポインタ（アドレス）またはインデックスであり、次ノードは、時間的に一つ後のイベントを指し示すポインタ（アドレス）またはインデックスであり、図７では、ノードが用いられ、指し示すものが無い場合は０が登録される。
【００６１】
登録マークは、識別子保持部７５に対してイベントが登録されているか否かを表すマークであり、図７では、ｔｒｕｅが登録されていることを示し、ｆａｌｓｅが登録されていないことを示している。繰り返しマークは、イベントが終了した後に繰り返し発生させる必要があることを示すマークであり、図７では、ｔｒｕｅが繰り返す必要があることを示し、ｆａｌｓｅが繰り返す必要がないことを示している。タイマ時間は、タイマイベント発生までの時間を表し、繰り返しマークが付いたイベントの繰り返し間隔を示している。イベントが終了したときに時刻加算部９６によりタイマ時間を用いて次のイベント時間が計算される。
【００６２】
例えば、図７の（ａ）に示すイベントリンクリストに、１５２．５ｍｓに発生すべきイベント（サービス関数Ｄ（））が追加されると、図７の（ｂ）に示すイベントリンクリストとなる。また、縮退するイベントの例として、１５３．５ｍｓに発生すべきイベント（サービス関数Ｅ（））が追加されると、図７の（ｃ）に示すイベントリンクリストとなる。この場合、イベント５の登録は、現在時刻が１０３．５ｍｓの時点で行なわれたことになる。また、イベント５が繰り返しイベントの場合、繰り返しマークがｔｒｕｅとなる。
【００６３】
本実施の形態では、制御部４１がイベント管理装置の一例に相当し、ＣＰＵ８２が演算処理手段の一例に相当し、フリーラン時刻カウンタ７２がカウント手段の一例に相当し、一致検出部７３、イベント時間保持部７４及び識別子保持部７５が検出手段の一例に相当する。
【００６４】
次に、上記のように構成されたソフトウエアタイマ部によるタイマイベント登録処理について説明する。図８は、図４に示すソフトウエアタイマ部によるタイマイベント登録処理の一例を説明するためのフローチャートである。
【００６５】
まず、ステップＳ１において、時刻変換部９２は、イベント実行部９１からの新規なタイマイベント登録を受け付け、タイマ時間、繰り返しの有無、サービス関数等のイベントに関数する付帯情報を取得する。次に、ステップＳ２において、時刻変換部９２は、現在時刻読み出し部７７から現在時刻を読み出し、読み出した現在時刻にタイマ時間を加算してイベント時間を算出する。
【００６６】
次に、ステップＳ３において、イベントリンクリスト部９３は、時刻変換部９２からイベント時間、タイマ時間、繰り返しの有無、サービス関数等のイベントに関数する付帯情報を受け取り、記憶しているイベントリンクリストに新たなイベントを追加する。次に、ステップＳ４において、イベントリンクリスト部９３は、縮退すべきイベントがあるか否かを判断し、縮退すべきイベントがある場合はステップＳ５へ処理を移行し、縮退すべきイベントがない場合はステップＳ６へ処理を移行する。
【００６７】
縮退すべきイベントがあるか否かの判断として、例えば、イベントリンクリスト部９３は、登録されているイベントのイベント時間の小数点以下を切り捨てた値を比較して同一時刻のイベントがある場合に縮退すべきイベントがあると判断し、同一時刻のイベントがない場合は縮退すべきイベントがないと判断する。
【００６８】
縮退すべきイベントがある場合、ステップＳ５において、イベントリンクリスト部９３は、同一時刻のイベントの中から最もイベント時間の遅いものを除いて全てのイベントに縮退マークを付加する。
【００６９】
次に、ステップＳ６において、登録管理部９４は、イベントリンクリスト部９３が記憶しているイベントリンクリストの中からイベント時間の早い順に２個のイベントを抽出してイベント管理部７６に２個のイベントのノード及びイベント時間を登録して処理を終了する。このとき、縮退しているイベントがある場合、登録管理部９４は、縮退しているイベントの中から１個のイベントを代表して登録する。
【００７０】
上記の処理が終了した後、イベント管理部７６は、２個のイベントのノード及びイベント時間をイベント時間保持部７４及び識別子保持部７５にそれぞれ設定する。その後、一致検出部７３は、イベント時間保持部７４に保持されているイベント時間とフリーラン時刻カウンタ７２の現在時刻とを比較し、イベント時間と現在時刻とが一致する場合、イベント時間と現在時刻とが一致したことを識別子保持部７５に通知し、識別子保持部７５は、保持しているノードをイベント管理部７６に通知する。
【００７１】
上記のようにして、イベント時間が現在時刻と一致したイベントのノードをイベント管理部７６から受け取り、通知されたノードのイベントを処理するタイマイベント発生処理について説明する。図９は、図４に示すソフトウエアタイマ部によるタイマイベント発生処理の一例を説明するためのフローチャートである。
【００７２】
まず、ステップＳ１１において、イベント検索部９５は、イベント管理部７６からイベント時間と現在時刻とが一致したイベントのノードを受け取ったか否かを判断し、ノードを受け取っていない場合はステップＳ１１を繰り返し、ノードを受け取った場合はステップＳ１２へ処理を移行する。また、ノードを通知したイベント管理部７６は、ノードを通知した識別子保持部７５及びイベント時間保持部７４に設定されているノード及びイベント時間をリセットして設定を無効にする。
【００７３】
次に、ステップＳ１２において、イベント検索部９５は、受け取ったノードのイベントをイベントリンクリスト部９３のイベントリンクリストの中から探索して、このイベントが要求するサービス関数をコールするようにイベント実行部９１に指示し、イベント実行部９１は、サービス関数に応じた処理を実行する。
【００７４】
次に、ステップＳ１３において、イベント検索部９５は、イベントリンクリスト部９３のイベントリンクリストを参照して、イベント管理部７６から通知されたイベントが繰り返しイベントであるか否かを判断し、イベントが繰り返しイベントでない場合はステップＳ１５へ処理を移行し、イベントが繰り返しイベントである場合はステップＳ１４へ処理を移行する。
【００７５】
イベントが繰り返しイベントである場合、ステップＳ１４において、イベント検索部９５は、イベントが繰り返しイベントであることを時刻加算部９６に通知し、時刻加算部９６は、通知されたイベントのタイマ時間をイベント時間に加算して繰り返しイベントを登録する。次に、ステップＳ１５において、イベント検索部９５は、通知されたイベントをイベントリンクリスト部９３のイベントリンクリストから削除する。
【００７６】
次に、ステップＳ１６において、イベント検索部９５は、削除したイベントに縮退マークが付加されていたか否かを判断し、縮退マークが付加されていた場合はステップＳ１２以降の処理を継続して縮退されている他のイベントを実行し、縮退マークが付加されていなかった場合は処理を終了する。
【００７７】
上記のように、本実施の形態では、ＣＰＵ８２によるタイマイベント登録処理すなわちソフトウエアにより、複数のイベントの中から選択された２個のイベントが専用のハードウエアであるイベント時間保持部７４及び識別子保持部７５に登録されるので、多数のイベントを管理することができるとともに、一致検出部７３、イベント時間保持部７４及び識別子保持部７５の使用効率を向上することができ、また、２個のイベントの実行タイミングは、専用のハードウエアであるフリーラン時刻カウンタ７２及び一致検出部７３を用いて決定されるため、高精度にイベントの実行タイミングを決定することができる。この結果、デジタル複合機１において発生する多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができる。
【００７８】
なお、上記の説明では、本発明のイベント管理装置をデジタル複合機に適用した場合について説明したが、この例に特に限定されず、複写機、プリンタ、ファクシミリ等の他の画像形成装置、又は他の種々の機器に同様に適用することができる。
【００７９】
【発明の効果】
本発明によれば、ソフトウエアにより複数のイベントの中から選択されたｎ個のイベントが専用のハードウエアである検出手段に登録されるので、多数のイベントを管理することができるとともに、専用のハードウエアである検出手段の使用効率を向上することができ、また、ｎ個のイベントの実行タイミングは、専用のハードウエアである検出手段及びカウンタ手段を用いて決定されるため、高精度にイベントの実行タイミングを決定することができ、この結果、多数のイベントを高精度に処理することができるとともに、ハードウエア資源を効率よく使用することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるイベント管理装置を用いたデジタル複合機の機械的構成を主に示す側面概略図である。
【図２】図１に示すデジタル複合機の電気的構成を主に示すブロック図である。
【図３】図２に示す制御部内のイベント管理装置のハードウエア構成を示すブロック図である。
【図４】図３に示す一致検出部の動作を説明するための模式図である。
【図５】図３に示すＣＰＵがイベント管理プログラムを実行することにより実現されるソフトウエアタイマ部の機能的な構成を示すブロック図である。
【図６】イベントの縮退処理を説明するための模式図である。
【図７】図５に示すイベントリンクリスト部に登録されたイベント例を示す図である。
【図８】図８は、図４に示すソフトウエアタイマ部によるタイマイベント登録処理の一例を説明するためのフローチャートである。
【図９】図９は、図４に示すソフトウエアタイマ部によるタイマイベント発生処理の一例を説明するためのフローチャートである。
【符号の説明】
１  デジタル複合機
４１  制御部
７１  クロック生成部
７２  フリーラン時刻カウンタ
７３  一致検出部
７４  イベント時間保持部
７５  識別子保持部
７６  イベント管理部
７７  現在時刻読み出し部
８１  ＲＯＭ
８２  ＣＰＵ
８３  ＲＡＭ
９１  イベント実行部
９２  時刻変換部
９３  イベントリンクリスト部
９４  管理登録部
９５  イベント検索部
９６  時刻加算部
【図１】
2004258979.tif 000003
【図２】
2004258979.tif 000004
【図３】
2004258979.tif 000005
【図４】
2004258979.tif 000006
【図５】
2004258979.tif 000007
【図６】
2004258979.tif 000008
【図７】
2004258979.tif 000009
【図８】
2004258979.tif 000010
【図９】
2004258979.tif 000011