(57)【要約】【課題】  ソフトウエアでのフラグ・チェックによる分岐処理を行う必要が無く、割り込み発生に対して応答が速い割り込み制御を実現することを目的とする。【解決手段】  複数の割り込み発生情報信号を保持するレジスタと、その発生情報信号の論理和の信号をＣＰＵに送信する送信手段と、割り込み発生により読み出すベクタアドレスと、割り込み発生情報ごとに異なる値を持つオフセットアドレス・テーブルと、割り込み発生情報に対応するオフセットアドレス・テーブルの値を前記所定の割り込みアドレスに加算する加算器を有し、ベクタアドレスと割り込み発生情報に対応するオフセットアドレス・テーブルの値を加算したアドレス値をＣＰＵに送信することによって応答が速い割り込み制御を実現する。【選択図】        図１
2005085115.tif 000002
【特許請求の範囲】
【請求項１】
割り込み制御可能なＣＰＵと、
少なくともひとつの割り込み発生情報を保持する情報保持手段と、
前記割り込み発生情報に基づいて割り込み信号を前記ＣＰＵに送信する送信手段と、
前記ＣＰＵが前記割り込み信号を受信した際に実行する所定の割り込みアドレスを読み取る動作を検知する検知手段と、
前記割り込み発生情報ごとに異なる値を持つオフセットアドレス・テーブルと、
前記情報保持手段に保持された割り込み発生情報に対応するオフセットアドレス・テーブルの値を前記所定の割り込みアドレスに加算する加算器を有し、
前記検知手段が前記所定の割り込みアドレスの読み取り動作を検知すると、
前記加算器によって前記所定の割り込みアドレス値と前記割り込み発生情報に対応するオフセットアドレス・テーブルの値を加算したアドレス値を前記ＣＰＵに送信することを特徴とする割り込み制御回路。
【請求項２】
前記検知手段は、
２つのアドレスの値を比較する比較器を有し、
前記比較器が前記所定の割り込みアドレスとＣＰＵが読み取るアドレスの値とを比較することによって、前記ＣＰＵの割り込みアドレスの読み取り動作を検知することを特徴とする請求項１記載の割り込み制御回路。
【請求項３】
前記検知手段は、
さらに、ＣＰＵが規定する複数の割り込みアドレスの上限値と下限値を記憶する記憶部を有し、
前記ＣＰＵが読み取るアドレスの値が前記記憶部の上限値以下であり、かつ下限値以上であるかを前記比較器で比較することによって、前記ＣＰＵの割り込みアドレス読み取り動作を検知することを特徴とする請求項２記載の割り込み制御回路。
【請求項４】
前記検知手段による所定の割り込みアドレスを読み取る動作および前記加算器でオフセットアドレスを加算する動作を、有効あるいは無効にするフラグを有することを特徴とする請求項１乃至３いずれか記載の割り込み制御回路。
【請求項５】
複数の割り込みが発生した場合、処理中の割込みに対応する前記フラグが解除されると、予め設定された割込み処理の優先順位ルールに従い、次の優先順位の割込みを決定し、対応する割り込みのオフセットアドレス・テーブルの値を加算器に渡すことを特徴とする請求項１乃至４いずれか記載の割り込み制御回路。
【請求項６】
処理中の割り込みに対応する前記フラグが解除されると、予め設定された割り込み処理の優先順位ルールに従って次の優先順位の割込みを決定する際、他に処理すべき割込みが無い場合には、割り込み処理終了フラグを立てるか、または、所定のダミー・アドレスをＣＰＵに送信することによって、処理の終了の情報を伝達することを特徴とする請求項５記載の割り込み制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル複写機である複合機器などにおけるリアルタイムの駆動制御を必要とする組み込み制御の技術に関する。
【背景技術】
【０００２】
ディジタル複写機などの機能が複合化されたシステムでは、モーターその他の駆動制御を１つのＣＰＵで扱う場合、制御対象、監視対象は単機能機に比べ、増大する。汎用的なＣＰＵでは、パッケージのピン数の制限により、割込み入力に限りがあり、例えば８ｂｉｔ程度の前後である。また、ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）に導入されるＣＰＵも、同程度の本数に固定されている事が多い。
【０００３】
機能が複合化されたシステムでは、数十もの割込み入力を必要とする。そこで、ＣＰＵの外部で数十の割込み発生情報をフラグとして保持し、これらのフラグをまとめてレジスタとしてＣＰＵからアクセスする手段と、レジスタ中のフラグに対応する割込み信号の論理和を取ってＣＰＵに通知する手段を備えることにより、多くの割り込み要求に対応できる割り込み制御方式が提案されている（例えば、特許文献１を参照）。
【０００４】
このような割り込み制御方式を利用した割り込み動作の一例を示す。図５は、従来の割り込み動作の一例を示す概略図である。割込み信号として、Ｉｎｔ＿Ａ、Ｉｎｔ＿Ｂと他に１４本（計１６本）の割込み入力を、フラグとして保持し、フラグ・レジスタとしてまとめている。また、これらの割込み信号は、論理和を取って、ＣＰＵに通知される（［１］）。ＣＰＵは、Ｉｎｔｅｒｒｕｐｔへの入力により、Ｖｅｃｔｏｒアドレスを取得して（［２］）、Ｖｅｃｔｏｒアドレスの示す割り込みルーチンにジャンプする（［３］）。割込みルーチンでは、割込みコントローラーのフラグ・レジスタを読み取り（［４］）、その値を変数ＩｎｔｅｒｒｕｐｔＦｌａｇに格納して、割込み先の判定フローに入る。
【０００５】
以下は、プログラミング言語（ｃ言語）で書かれたフローである。
【０００６】
2005085115.tif 000003
【０００７】
例えば、Ｉｎｔ＿Ａの割込みが発生して、対応するｂｉｔ０のフラグが、アクティブになった場合を想定する。
【０００８】
2005085115.tif 000004
【０００９】
１つ目のｉｆ文で、Ａｃｔｉｖｅが検出され、Ｐｒｏｃｅｓｓ１（）が、コールされる（［５］）。以上の回路を８系統設けて、計１６＊８＝１２８本の割込み要因を受け付けるように入力本数の拡張を実現していた。また、上記制御は、リアルタイム制御なので、割込みの応答速度が重視される。割込みの応答速度のオーバーヘッドとして、ＣＰＵレジスタのスタック退避が占める割合が大きい。このため、レジスタをページ切り替えする機能を設けて、ＣＰＵとしての割込み応答の高速化が図られている。
【特許文献１】特開平０６−１８７１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来例において、Ｉｎｔ＿Ｂの割込みが発生して、対応するフラグがｂｉｔ１５であったとすると、ｂｉｔ０からｂｉｔ１５まで１６回のフラグ・チェックの後、Ｐｒｏｃｅｓｓ１６がコールされる。従来例において、フラグ・チェックのフローが、オーバーヘッドとなり、割込みに対する応答速度の低下の原因になった。
【００１１】
フラグ・チェックのフローを以下の様に、一度にチェックする方法に変更する事で、割込みの応答速度を平均的に向上する事ができるが、Ｐｒｏｃｅｓｓ１（）に対する応答速度は、２重チェックの分だけ低下する。
【００１２】
2005085115.tif 000005
【００１３】
以上述べたように、フラグ・チェックのフローで、各割り込み要因に対する応答速度をコントロールできるが、平均化する方法と優先順位に対応させて差を付ける方法とのトレード・オフとなり、ソフト設計の段階では根本的な高速化は出来なかった。
【００１４】
本発明は、以上の点に着目して成されたもので、ソフトウエアでのフラグ・チェックによる分岐処理を行う必要が無く、割り込み発生に対して応答が速い割り込み制御を実現する割り込み制御回路を提供することを目的とする。
【課題を解決するための手段】
【００１５】
この発明は下記の構成を備えることにより上記課題を解決できるものである。
【００１６】
（１）割り込み制御可能なＣＰＵと、少なくともひとつの割り込み発生情報を保持する情報保持手段と、前記割り込み発生情報に基づいて割り込み信号を前記ＣＰＵに送信する送信手段と、前記ＣＰＵが前記割り込み信号を受信した際に実行する所定の割り込みアドレスを読み取る動作を検知する検知手段と、前記割り込み発生情報ごとに異なる値を持つオフセットアドレス・テーブルと、前記情報保持手段に保持された割り込み発生情報に対応するオフセットアドレス・テーブルの値を前記所定の割り込みアドレスに加算する加算器を有し、前記検知手段が前記所定の割り込みアドレスの読み取り動作を検知すると、前記加算器によって前記所定の割り込みアドレス値と前記割り込み発生情報に対応するオフセットアドレス・テーブルの値を加算したアドレス値を前記ＣＰＵに送信することを特徴とする割り込み制御回路。
【００１７】
（２）前記検知手段は、２つのアドレスの値を比較する比較器を有し、前記比較器が前記所定の割り込みアドレスとＣＰＵが読み取るアドレスの値とを比較することによって、前記ＣＰＵの割り込みアドレスの読み取り動作を検知することを特徴とする前記（１）記載の割り込み制御回路。
【００１８】
（３）前記検知手段は、さらに、ＣＰＵが規定する複数の割り込みアドレスの上限値と下限値を記憶する記憶部を有し、前記ＣＰＵが読み取るアドレスの値が前記記憶部の上限値以下であり、かつ下限値以上であるかを前記比較器で比較することによって、前記ＣＰＵの割り込みアドレス読み取り動作を検知することを特徴とする前記（２）記載の割り込み制御回路。
【００１９】
（４）前記検知手段による所定の割り込みアドレスを読み取る動作および前記加算器でオフセットアドレスを加算する動作を、有効あるいは無効にするフラグを有することを特徴とする前記（１）乃至（３）いずれか記載の割り込み制御回路。
【００２０】
（５）複数の割り込みが発生した場合、処理中の割込みに対応する前記フラグが解除されると、予め設定された割込み処理の優先順位ルールに従い、次の優先順位の割込みを決定し、対応する割り込みのオフセットアドレス・テーブルの値を加算器に渡すことを特徴とする前記（１）乃至（４）いずれか記載の割り込み制御回路。
【００２１】
（６）処理中の割り込みに対応する前記フラグが解除されると、予め設定された割り込み処理の優先順位ルールに従って次の優先順位の割込みを決定する際、他に処理すべき割込みが無い場合には、割り込み処理終了フラグを立てるか、または、所定のダミー・アドレスをＣＰＵに送信することによって、処理の終了の情報を伝達することを特徴とする前記（５）記載の割り込み制御回路。
【発明の効果】
【００２２】
以上、説明したように、割込みが発生した割り込みのベクタを、ハードウェア的にＣＰＵに伝達する手段を設けた事で、ソフトウエアでフラグによる分岐処理を行う必要が無く、割込み発生に対して応答が速い割込み制御が得られる。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明の実施の一形態について図面を用いて説明する。
【実施例】
【００２４】
図２は、割込み処理部の１つのグループの概略動作を示す図で、以下、図に沿って説明する。割込み処理部の１つのグループに対して、Ｉｎｔ＿Ａ、Ｉｎｔ＿Ｂなど計１６の割込み信号を入力する。割込みＩｎｔ＿Ａが発生すると、他の割込み信号との論理和によりＣＰＵに伝達する（［１］）。
【００２５】
割込み発生により、ＣＰＵは、レジスタ退避処理などの前処理と共に、ＣＰＵの割込み入力に対応するベクタを読み出すために規定のベクタアドレスに割り込みルーチンの先頭アドレスの読み取り動作を行う。このアドレスと予め設定したアドレス（Ｖｅｃｔｏｒ＿Ｍ）をアドレス比較器によって割込みアドレス読み取り動作が検出される（［２］）。
【００２６】
割り込みアドレス読み取り動作が検出されると対応する割り込みのオフセットアドレス・テーブルからオフセット値Ｏｆｆｓｅｔ＿Ａをアドレス加算器に出力し（［３］）、ＣＰＵが所望するアドレスにオフセットアドレス分進んだアドレスの内容を返す（［４］）。このアドレスに割り込みに対応する割り込みの先頭アドレス（Ａ）を設定しておくことによって、ＣＰＵはＩｎｔ＿Ａに対応する割込み処理（Ａ）を直接コールする（［５］）。
【００２７】
図１は、割込み処理部の１つのグループの構成で、図４は、図１のシーケンサーの状態遷移図を示す。以下、図４に沿って、図１及び図４を説明する。図１において、本実施例では、Ｎ＝１６としている。システムのリセットにより、シーケンサーは、Ｉｄｌｅ状態に遷移する。以降、割込みが入るまで、Ｉｄｌｅ状態が維持される（１）。割込み発生を示すフラグＦ０１〜Ｆ１６は、０に初期化される。ＣＰＵは、この時点で、割込み禁止状態である。その後、ＣＰＵは、割込み入力に対応したオフセットアドレスを、オフセットアドレス・テーブルＯｆｆｓｅｔ０１〜１６に設定する。また、割込みアドレス読み取り動作を検出するため、ＣＰＵ規定の割り込みベクタアドレスの範囲を最大値最小値で設定する（ＶｅｃｔｏｒＭｉｎ，ＶｅｃｔｏｒＭａｘ）。また、それぞれの優先順位を優先順位テーブルＰｒｉｏｒｉｔｙ０１〜１６に設定する。一連の設定終了後、安全のためＦ０１〜Ｆ１６をソフト的に再度、０に初期化してから、割込みを許可状態にする。
【００２８】
例えば、同時に複数の割込み入力Ｉｎｔ＿Ｊ、Ｉｎｔ＿Ｋ（Ｊ，Ｋ＝１〜１６、Ｊ≠Ｋ）が入ると、シーケンサーは、Ｌｏａｄ状態に遷移する（２）。また割込み入力により、対応するフラグＦＪ、ＦＫが１にセットされる。Ｆ０１〜Ｆ１６の割り込みフラグで示される割り込み状態の論理和の信号として１本にまとめ、ＣＰＵの８本の割り込み入力の１つに入力して、割り込み発生を伝達している。割込み発生が複数なので、シーケンサーは、優先順位テーブルの設定に基づいて、優先度の高い割込みに対応するオフセットアドレスが選択されるようなセレクト信号を出力する。例えば、優先順位の設定が、次の場合を想定する。
【００２９】
ＰｒｉｏｒｉｔｙＪ＝５、ＰｒｉｏｒｉｔｙＫ＝４
この時、Ｉｎｔ＿Ｊと、Ｉｎｔ＿Ｋが同時発生すると、ＰｒｉｏｒｉｔｙＪ＞ＰｒｉｏｒｉｔｙＫであるから、ＣＰＵの割り込みアドレス読み取り動作を検知すると、オフセットアドレス・テーブルから、セレクタを介して、ベクタ（Ｏｆｆｓｅｔ＿Ｊ）の値が、アドレス加算器にロードされる。また、ロード完了時点で、対応する割込みのフラグ（この場合ＦＪ）を自動的にリセットする。ロードが完了すると、シーケンサーは、Ｐｒｏｃｅｓｓ状態に遷移する（３）。以降、ＣＰＵが割り込みアドレス読み取り動作を行うまで、Ｐｒｏｃｅｓｓ状態が維持される（４）。
【００３０】
ＣＰＵは本来の割り込みアドレス（ベクタ）にオフセット値を加算したアドレス値を、割り込みルーチンの先頭番地アドレスとして実行する。また、読み出した時点で、セットされている割込みフラグ（この場合ＦＫ）が存在すると、シーケンサーは、Ｌｏａｄ状態に遷移する（５）。割込み発生フラグが１つなので、シーケンサーは、発生した割込みに対応するベクタ（この場合ＶｅｃｔｏｒＫ）を、アドレス加算器にロードする。また、ロード完了時点で、対応する割込みのフラグ（この場合ＦＫ）を自動的にリセットする。
【００３１】
ロードが完了すると、シーケンサーは、Ｐｒｏｃｅｓｓ状態に再び遷移する（３）。以降、ＣＰＵが割り込みアドレス読み取り動作を行うまで、Ｐｒｏｃｅｓｓ状態が維持される（４）。ＣＰＵは、前回のコールから復帰すると、再度、アドレス読み取り動作を行い、ＣＰＵは本来の割り込みアドレス（ベクタ）にオフセット値を加算したアドレス値を、割り込みルーチンの先頭番地アドレスとして実行する。また、この時点で、セットされている割込みフラグが存在しない場合、シーケンサーは、ＲｅｇｉｓｔｅｒＲｅｓｅｔ状態に遷移する（６）。この時、アドレス加算器へ出力される値は、０にリセットされ、シーケンサーは、Ｉｄｌｅ状態に遷移して（７）、次の割込み発生まで待つ。
【００３２】
図３に、実施例のシステム構成を示す。図中の画像読み取り部は、原稿画像をスキャンして光電変換する。得られたアナログ信号をＡＤ変換して、ディジタル画像信号として、画像処理部に転送する。
【００３３】
画像処理部は、画像処理部からの画像信号以外に、ネットワークを介した端末からの印刷要求を受けて、画像情報を受信して、画像データとしてメモリに展開する手段を持つ。また、ファクシミリ受信による圧縮画像情報をメモリに展開する手段を持つ。
【００３４】
画像処理部は、図示せぬＣＰＵを持ち、上記の各種の画像の特徴と、図示せぬ操作部からのユーザーの指示要求から判断して、好適な画像処理を行う。画像処理部は、画像データの準備が整うと、画像印刷部に対して、画像印刷要求の割り込みを発生する。画像印刷部のＣＰＵは、画像印刷要求の割り込み信号を割込み制御部を介して受け取り、画像印刷の準備を開始する。
【００３５】
割込み制御部は、画像印刷部の内外の４本の予備信号を含む、１２８本の割込み信号を受け取る。内訳は、タイマー、ドア開閉センサー、画像同期部、通信制御、定着制御部、温度センサー、ＤＭＡＣ、モーター制御などの各種制御部からの出力であり、予備信号は、システムの拡張に備えるもので、通常、プル・アップ、またはプル・ダウンにより、固定している。
【００３６】
タイマーは、用途別に複数、並列に動作して、それぞれのタイマー毎に、割り込みを発生する。各タイマーは、紙搬送時の紙位置把握のための一定周期ごとの紙位置センサーの観測や、各ステッピング・モーターのパルス周期変更のためのタイミング検出などに用いられる。
【００３７】
ドア開閉センサーは、開閉時に割り込みを発生する。ドア開閉に伴う動作モードの変更や、安全対策のためのモーターなど駆動系の停止、高電圧供給の切断などの緊急処理が行われる。
【００３８】
画像同期部は、１画像の先端や、１ラインの先端のタイミングで割り込みを発生する。画像信号を印刷するため、図示せぬレーザー素子により、図示せぬドラム上に静電潜像するが、レーザー素子制御のモード切替（画像出力モード、光量調整モード、アイドル・モード）のタイミングを検出するために用いられる。
【００３９】
通信制御は、システム内の通信や、開発デバッグ用の外部との通信などに使用されるが、送信データ・バッファのエンプティーや、受信データ・バッファのフル、通信エラーの発生に関する割り込みを発生する。
【００４０】
定着制御部は、通常、設定値に応じた温度制御を自動で行うが、制御状態の変更のタイミングを得るためや、異常検知ための割り込みを発生する。温度センサーは、定着のヒーターの温度を監視のためや、異常温度の検知に関する割り込みを発生する。
【００４１】
ＤＭＡＣ（Ｄｙｎａｍｉｃ−Ｍｅｍｏｒｙ−Ａｃｃｅｓｓ−Ｃｏｎｔｒｏｌｌｅｒ）は、設定情報に従い、自動でバス権を要求、取得、開放してデータ転送を行うが、転送動作や、転送終了に関する割り込みを発生する。
【００４２】
モーター制御は、サーボ機構を備え、サーボのロックや、ロック解除、その他の異常状態に関する割り込みを発生する。
【００４３】
割込み制御部は、１２８本の割込み入力信号を、１６本ｘ８グループに分割して扱う。各割込み処理グループは独立した構成で、それぞれ１本ずつ、割込み処理部全体として、合計８本の割込み信号をＣＰＵに出力する。
【図面の簡単な説明】
【００４４】
【図１】割込み処理部の１つのグループの構成を示す図
【図２】割込み処理部の１つのグループの概略動作を示す図
【図３】システム構成図
【図４】図１のシーケンサーの状態遷移図
【図５】従来の技術による割り込み動作の一例を示す概略図
【図３】
2005085115.tif 000006
【図４】
2005085115.tif 000007
【図５】
2005085115.tif 000008
【図１】
2005085115.tif 000009
【図２】
2005085115.tif 000010