(57)【要約】【課題】自由度の高い多重割り込みを容易に実現でき、デバイス構成によらずに各デバイスの割り込みの優先度を設定できる割り込み制御コントローラ，割り込み制御方法，割り込み制御コントローラを備えた装置，割り込み制御プログラムおよび記録媒体を提供することを目的とする。【解決手段】多重割り込みを許す割り込み制御コントローラであって、現在の割り込みレベルを保存する保存手段（Ｓ１）と、レベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段（Ｓ２，Ｓ３）と、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段（Ｓ４）と、割り込みプログラムの起動により処理した割り込み要因をクリアして、保存手段に保存した割り込みレベルに戻す復帰手段（Ｓ５，Ｓ６）とを有することにより、上記課題を解決する。【選択図】          図６
2004287838.tif 000002
【特許請求の範囲】
【請求項１】
優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラであって、
割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、
前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、
前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、
前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段と
を有する割り込み制御コントローラ。
【請求項２】
前記レベルハンドラは、割り込みレベル，前記割り込みレベルに登録されている割り込みハンドラのポインタ，前記割り込みレベルに登録されている割り込みハンドラの割り込み要因ビットの論理和を前記割り込み制御機能を有するデバイス毎に有することを特徴とする請求項１記載の割り込み制御コントローラ。
【請求項３】
前記割り込みハンドラは、割り込み要因ビット，同じ割り込みレベルに登録されている次の割り込みハンドラへのポインタ，割り込みプログラムへのポインタおよび割り込みプログラムへの引数を有することを特徴とする請求項２記載の割り込み制御コントローラ。
【請求項４】
前記特定手段は、発生した割り込み要因と前記レベルハンドラが有する前記割り込みレベルに登録されている割り込みハンドラの割り込み要因ビットの論理和との論理積を行って前記レベルハンドラを選択することを特徴とする請求項３記載の割り込み制御コントローラ。
【請求項５】
前記特定手段は、選択したレベルハンドラが有する割り込みハンドラのポインタおよび割り込みハンドラが有する次の割り込みハンドラへのポインタを用いて、前記選択したレベルハンドラに登録されている１つ以上の割り込みハンドラを辿り、発生した割り込み要因と前記割り込みハンドラが有する割り込み要因ビットとの論理積を行って割り込みハンドラを特定することを特徴とする請求項３又は４記載の割り込み制御コントローラ。
【請求項６】
前記特定手段は、割り込み制御機能を有する１つ以上のデバイスに対応する同一割り込みレベルのレベルハンドラについてレベルハンドラの選択処理を行い、その選択処理によりレベルハンドラが選択できない場合に優先順位の高い割り込みレベルから優先順位の低い割り込みレベルに順次変化させてレベルハンドラの選択処理を行うことを特徴とする請求項１記載の割り込み制御コントローラ。
【請求項７】
前記割り込み制御コントローラは、ＣＰＵと，前記ＣＰＵと接続された割り込み制御機能を有する第１のデバイスと，割り込み制御機能を有しており、前記第１のデバイスを介してＣＰＵと接続される第２のデバイスとを含むように構成されることを特徴とする請求項１乃至６何れか一項記載の割り込み制御コントローラ。
【請求項８】
優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御方法であって、
割り込み要因の発生により、現在の割り込みレベルを保存する保存段階と、
前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定段階と、
特定した割り込みハンドラに対応する割り込みプログラムを起動する起動段階と、
前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰段階と
を有する割り込み制御方法。
【請求項９】
前記特定段階は、割り込み制御機能を有する１つ以上のデバイスに対応する同一割り込みレベルのレベルハンドラについてレベルハンドラの選択処理を行い、その選択処理によりレベルハンドラが選択できない場合に優先順位の高い割り込みレベルから優先順位の低い割り込みレベルに順次変化させてレベルハンドラの選択処理を行うことを特徴とする請求項８記載の割り込み制御方法。
【請求項１０】
優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラを備えた装置であって、
前記割り込み制御コントローラは、割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、
前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、
前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、
前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段と
を有する装置。
【請求項１１】
前記レベルハンドラは、割り込みレベル，前記割り込みレベルに登録されている割り込みハンドラのポインタ，前記割り込みレベルに登録されている割り込みハンドラの割り込み要因ビットの論理和を前記割り込み制御機能を有するデバイス毎に有することを特徴とする請求項１０記載の装置。
【請求項１２】
前記割り込みハンドラは、割り込み要因ビット，同じ割り込みレベルに登録されている次の割り込みハンドラへのポインタ，割り込みプログラムへのポインタおよび割り込みプログラムへの引数を有することを特徴とする請求項１１記載の装置。
【請求項１３】
前記特定手段は、発生した割り込み要因と前記レベルハンドラが有する前記割り込みレベルに登録されている割り込みハンドラの割り込み要因ビットの論理和との論理積を行って前記レベルハンドラを選択することを特徴とする請求項１２記載の装置。
【請求項１４】
前記特定手段は、選択したレベルハンドラが有する割り込みハンドラのポインタおよび割り込みハンドラが有する次の割り込みハンドラへのポインタを用いて、前記選択したレベルハンドラに登録されている１つ以上の割り込みハンドラを辿り、発生した割り込み要因と前記割り込みハンドラが有する割り込み要因ビットとの論理積を行って割り込みハンドラを特定することを特徴とする請求項１２又は１３記載の装置。
【請求項１５】
前記特定手段は、割り込み制御機能を有する１つ以上のデバイスに対応する同一割り込みレベルのレベルハンドラについてレベルハンドラの選択処理を行い、その選択処理によりレベルハンドラが選択できない場合に優先順位の高い割り込みレベルから優先順位の低い割り込みレベルに順次変化させてレベルハンドラの選択処理を行うことを特徴とする請求項１０記載の装置。
【請求項１６】
前記割り込み制御コントローラは、ＣＰＵと，前記ＣＰＵと接続された割り込み制御機能を有する第１のデバイスと，割り込み制御機能を有しており、前記第１のデバイスを介してＣＰＵと接続される第２のデバイスとを含むように構成されることを特徴とする請求項１０乃至１５何れか一項記載の装置。
【請求項１７】
前記割り込み制御コントローラを備えた装置は、画像形成装置であることを特徴とする請求項１０乃至１６何れか一項記載の装置。
【請求項１８】
コンピュータを、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラとして機能させるための割り込み制御プログラムであって、
前記コンピュータを、
割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、
前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、
前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、
前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段と
して機能させるための割り込み制御プログラム。
【請求項１９】
コンピュータを、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラとして機能させるための割り込み制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータを、
割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、
前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、
前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、
前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段と
して機能させるための割り込み制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、割り込み制御コントローラ，割り込み制御方法，割り込み制御コントローラを備えた装置，割り込み制御プログラムおよび記録媒体に係り、特に多重割り込みを利用する割り込み制御コントローラ，割り込み制御方法，割り込み制御コントローラを備えた装置，割り込み制御プログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
多数のプログラムを実行する装置では、入出力装置などの周辺装置からの処理要求等、何らかの要因が契機となって実行中のプログラムを一時中断して別のプログラムを実行する割り込みが行われている。割り込みが発生すると、割り込みハンドラと呼ばれる割り込み処理プログラムが実行される。
【０００３】
ところで、多くの割り込み要因がある装置では、優先度の低い割り込みが発生して割り込み処理および割り込み禁止処理を行っているときに、優先度の高い割り込みが発生すると、後から発生した優先度の高い割り込みが優先度の低い割り込みの割り込み処理および割り込み禁止処理が終了するまで待たされていた。
【０００４】
このような問題に対処する割り込みとして、優先度の低い割り込みが発生して割り込み処理および割り込み禁止処理を行っているときに、優先度の高い割り込みが発生すると、優先度の高い割り込みが優先度の低い割り込みに対して割り込むことのできる多重割り込みがある。
【０００５】
多重割り込みを利用する装置では、多くの割り込み要因があっても、割り込み処理および割り込み禁止処理などの割り込み区間の時間制限について自由度を増すことができた。
【０００６】
【発明が解決しようとする課題】
しかしながら、多重割り込みを利用する装置では、そのデバイス構成によって複数の要因を見に行かねばならず、割り込みが発生したときの割り込み制御の判断が複雑化するという問題があった。
【０００７】
一の系統のＣＰＵを利用した場合の割り込み制御方法では、割り込みに７レベルの優先順位（２つのソフトウェア割り込みと５つのデバイス割り込み）を設けている。デバイス割り込みは、例えばＡＳＩＣなど周辺機器の割り込み制御機能を有するデバイスの割り込みコントローラが、各要因を５つのレベルに振り分けることで行われている。
【０００８】
また、他の系統のＣＰＵを利用した場合の割り込み制御方法では、例えばサウスブリッジ（Ｓｏｕｔｈ  Ｂｒｉｄｇｅ）など周辺機器の割り込み制御機能を有するデバイスのプログラマブル割り込みコントローラ（ＡＰＩＣ）で優先順位処理されているが、多重割り込みを行わずに、受付順でデバイス割り込みを処理している。
【０００９】
例えばサウスブリッジなどの周辺機器の割り込み制御機能を有するデバイスには、ＡＳＩＣなどの周辺機器の割り込み制御機能を有するデバイスが１つ以上接続されていることがある。このようなデバイス構成の場合、割り込み要因を判別するためのレジスタが、サウスブリッジのＡＰＩＣの他にＡＳＩＣの割り込みコントローラにもあることになり、サウスブリッジにＡＳＩＣを介して接続されているような末端のデバイスを平等に扱うためには、割り込みレベルの操作に工夫が必要であった。
【００１０】
より具体的には、上記のサウスブリッジ及びＡＳＩＣの夫々にハードディスク装置（以下、ＨＤＤという）が接続されていて、両方のＨＤＤの優先度を平等に扱いたい場合、サウスブリッジ及びＡＳＩＣの要因レジスタを見てデバイス全体の割り込み制御が必要となるという問題があった。
【００１１】
本発明は、上記の点に鑑みなされたもので、割り込み制御機能を有するデバイスが複数あるデバイス構成であっても、単純な割り込み制御の判断で自由度の高い多重割り込みを実現でき、デバイス構成によらずに各デバイスの割り込みの優先度を設定できる割り込み制御コントローラ，割り込み制御方法，割り込み制御コントローラを備えた装置，割り込み制御プログラムおよび記録媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
そこで、上記課題を解決するため、本発明は、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラであって、割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段とを有することを特徴とする。
【００１３】
また、本発明は、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御方法であって、割り込み要因の発生により、現在の割り込みレベルを保存する保存段階と、前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定段階と、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動段階と、前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰段階とを有することを特徴とする。
【００１４】
また、本発明は、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラを備えた装置であって、前記割り込み制御コントローラは、割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段とを有することを特徴とする。
【００１５】
また、本発明は、コンピュータを、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラとして機能させるための割り込み制御プログラムであって、前記コンピュータを、割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段として機能させることを特徴とする。
【００１６】
また、本発明は、コンピュータを、優先度の高い割り込みが優先度の低い割り込みに対して割り込む多重割り込みを許す割り込み制御コントローラとして機能させるための割り込み制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記コンピュータを、割り込み要因の発生により、現在の割り込みレベルを保存する保存手段と、前記割り込み要因に応じて、複数の割り込みレベル及び割り込み制御機能を有するデバイスに対応するレベルハンドラを選択し、そのレベルハンドラおよび割り込み要因を用いて割り込みハンドラを特定する特定手段と、前記特定手段が、特定した割り込みハンドラに対応する割り込みプログラムを起動する起動手段と、前記割り込みプログラムの起動により処理した割り込み要因をクリアして前記保存した割り込みレベルに戻す復帰手段として機能させるための割り込み制御プログラムを記録したことを特徴とする。
【００１７】
なお、割り込み制御プログラムを記録する記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク（ＭＯ）等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１８】
本発明によれば、割り込み制御機能を有するデバイスが複数あるデバイス構成であっても、単純な割り込み制御の判断で自由度の高い多重割り込みを実現することができ、デバイス構成によらずに各デバイスの割り込みの優先度を設定することができる。
【００１９】
【発明の実施の形態】
次に、本発明の実施の形態について図面に基づいて説明する。
【００２０】
まず、本発明の理解を容易とするために、本発明で利用するレベルハンドラおよび割り込みハンドラについて説明する。図１は、レベルハンドラおよび割り込みハンドラの一例の説明図である。図１の説明図は、レベルハンドラ１，割り込みハンドラ２，３を表している。
【００２１】
レベルハンドラ１は、レベル，要因マスク（Ｍａｓｋ）値，ハンドラへのポインタを含むように構成される。レベルハンドラ１のレベルは、割り込み内で多重割り込みを許す際の割り込みレベルを表している。レベルハンドラ１の要因マスク値は、この割り込みレベルに登録されている全ての割り込みハンドラ２，３の割り込み要因ビット（Ｂｉｔ  ）のオア（ＯＲ）値を表している。
【００２２】
レベルハンドラ１のハンドラへのポインタは、この割り込みレベルに登録されている割り込みハンドラ群のリストの先頭アドレスを表している。図１では、レベルハンドラ１のハンドラへのポインタは、割り込みハンドラ２の先頭アドレスを表している。
【００２３】
割り込みハンドラ２は、割り込み要因ビット，次ハンドラへのポインタ，割り込みプログラムへのポインタ，割り込みプログラムへの引数を含むように構成される。割り込みハンドラ２の割り込み要因ビットは、ある機能について割り込みが発生したときに割り込みコントローラが要因としてレジスタにセットするビット位置を表している。
【００２４】
割り込みハンドラ２の次ハンドラへのポインタは、同レベルに登録されている次の割り込みハンドラの先頭アドレスを表している。図１では、割り込みハンドラ２の次ハンドラへのポインタは、割り込みハンドラ３の先頭アドレスを表している。
【００２５】
割り込みハンドラ２の割り込みプログラムへのポインタは、ある機能について割り込みが発生したときにデバイスドライバが動作させたい割り込みプログラムの先頭アドレスを表している。また、割り込みハンドラ２の割り込みプログラムへの引数は、割り込みプログラムが使用するデータ群を表している。
【００２６】
割り込みハンドラ３は、割り込み要因ビット，次ハンドラへのポインタ，割り込みプログラムへのポインタ，割り込みプログラムへの引数を含むように構成されている。割り込みハンドラ３は、割り込みハンドラ２と同様であるので説明を省略する。
【００２７】
図１では、説明を容易化するために、割り込みレベルが１のレベルハンドラ１と、その割り込みレベル１に登録されている割り込みハンドラ２，３とを抜き出して表している。実際のレベルハンドラおよび割り込みハンドラは、図２及び図３のように構成される。
【００２８】
図２は、複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとの一例の説明図である。図２の説明図では、割り込みレベル１〜３のレベルハンドラ１１〜１３と、割り込みレベル１に登録されている割り込みハンドラ１４，１５と、割り込みレベル２に登録されている割り込みハンドラ１８，１９と、割り込みレベル３に登録されている割り込みハンドラ２２と、割り込みハンドラ１４，１５，１８，１９および２２に登録されている割り込みプログラム１６，１７，２０，２１および２３とを表している。
【００２９】
図３は、割り込み制御機能を有するデバイス毎に登録された複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとの一例の説明図である。
【００３０】
図３の説明図では、割り込み制御機能を有するデバイスの一例としてのＡＳＩＣ１〜３毎に、図２を用いて説明した複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとが登録されていることを表している。
【００３１】
次に、デバイスドライバプログラムがオペレーティングシステム（以下、ＯＳという）に割り込みハンドラを登録する処理について説明する。まず、デバイスドライバプログラムが、割り込み時に動作させたい割り込みプログラムおよびその割り込みプログラムのための引数を予め用意する。
【００３２】
次に、デバイスプログラムが、新しい割り込みハンドラの登録手続をコールする。このコールの際、デバイスプログラムは割り込み時に動作させたい割り込みプログラムへのポインタ，割り込みプログラムへの引数，割り込みレベルおよび割り込み要因ビットを引数とする。
【００３３】
次に、登録手続をコールされたＯＳは、新たに割り込みハンドラ構造体のＲＡＭ領域を確保する。ＯＳは、割り込みハンドラ構造体にコールの引数として取得した割り込みプログラムへのポインタ，割り込みプログラムへの引数および割り込み要因ビットを割り込みハンドラ構造体にセットする。
【００３４】
次に、ＯＳはコールの引数として取得した割り込みレベルを見て、レベルハンドラのハンドラへのポインタ，割り込みハンドラの次ハンドラへのポインタから割り込みハンドラ群のリストの終端アドレスを探し出す。そして、ＯＳは探し出した終端アドレスに割り込みハンドラ構造体をセットすることで割り込みハンドラを追加する。
【００３５】
上記のように、デバイスドライバプログラムがＯＳに割り込みハンドラを繰り返し登録することで、図２または図３のような複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとを構成することができる。
【００３６】
図４は、ＭＩＰＳ型ＣＰＵで複数のＡＳＩＣを利用したデバイス構成の一例の構成図である。また、図５はｘ８６型ＣＰＵで複数のＡＳＩＣを利用したデバイス構成の一例の構成図である。
【００３７】
図４の構成図では、ＣＰＵ４１とＡＳＩＣ４２とが接続され、ＣＰＵ４１とＡＳＩＣ４３，４３とがＡＳＩＣ４２を介して接続されている。ＡＳＩＣ４２の割り込みコントローラは、ＨＤＤコントローラ，ローカルバス，ネットワーク，ビデオ出力，ＰＣＩコントローラなどの割り込み要因を発生するデバイスと接続されている。
【００３８】
ＡＳＩＣ４３の割り込みコントローラは、シリアル，セントロ，ＳＤなどの割り込み要因を発生するデバイスと接続されている。ＡＳＩＣ４４の割り込みコントローラは、ＨＤＤコントローラ，ローカルバス，ネットワークなどの割り込み要因を発生するデバイスと接続されている。なお、ＡＳＩＣ４３及びＡＳＩＣ４４の割り込みコントローラは、ＡＳＩＣ４２のＰＣＩコントローラと接続されている。
【００３９】
ＡＳＩＣ４３又はＡＳＩＣ４４の割り込みコントローラは、割り込みが発生すると、割り込み要因を判別するためのレジスタに割り込み要因ビットをセットすると共に、ＡＳＩＣ４２のＰＣＩコントローラ等を介してＡＳＩＣ４２の割り込みコントローラに割り込み発生を通知する。
【００４０】
ＡＳＩＣ４２の割り込みコントローラは、割り込みが発生すると、割り込み要因を判別するためのレジスタに割り込み要因ビットをセットすると共に、各要因を５つのレベルに振り分けてＣＰＵ４１に割り込み発生を通知する。
【００４１】
図５の構成図では、ＣＰＵ５１とサウスブリッジ５２とが接続され、サウスブリッジ５２とＳｏｕｔｈＡＳＩＣ（以下、単にＡＳＩＣという）５３，ＮｏｒｔｈＡＳＩＣ（以下、単にＡＳＩＣという）５４とがサウスブリッジ５２を介して接続されている。サウスブリッジ５２のＡＰＩＣは、シリアル，ＨＤＤなどの割り込み要因を発生するデバイスと接続されている。
【００４２】
ＡＳＩＣ５３の割り込みコントローラは、ＵＳＢ，シリアル，ネットワークなどの割り込み要因を発生するデバイスと接続されている。ＡＳＩＣ５４の割り込みコントローラは、ＨＤＤ，エンジン通信，ビデオ入力，ビデオ出力などの割り込み要因を発生するデバイスと接続されている。なお、ＡＳＩＣ５３及びＡＳＩＣ５４の割り込みコントローラは、サウスブリッジ５２のＡＰＩＣと接続されている。
【００４３】
ＡＳＩＣ５３又はＡＳＩＣ５４の割り込みコントローラは、割り込みが発生すると、割り込み要因を判別するためのレジスタに割り込み要因ビットをセットすると共に、サウスブリッジ５２のＡＰＩＣに割り込み発生を通知する。
【００４４】
ＡＳＩＣ４２のＡＰＩＣは、割り込みが発生すると、割り込み要因を判別するためのレジスタに割り込み要因ビットをセットすると共に、各要因を５つのレベルに振り分けてＣＰＵ５１に割り込み発生を通知する。
【００４５】
図４又は図５のＣＰＵ４１又は５１は、割り込み発生を通知されると、後述するような割り込み制御を行う。以下、レベルハンドラおよび割り込みハンドラを用いて行う割り込み制御について説明していく。
【００４６】
図６は、本発明による割り込み制御の一例のフローチャートである。ステップＳ１では、ＣＰＵが、割り込みが発生する前の割り込みレベルをセーブする。ステップＳ２に進み、ＣＰＵは図７のようなレベル優先要因チェックを行う。
【００４７】
図７は、レベル優先要因チェックの一例のフローチャートである。ステップＳ１２では、ＣＰＵが、割り込みレベルｉとマスクされた割り込みレベルとを比較することで、割り込みレベルｉがマスクされた割り込みレベルより下か否かを判定する。
【００４８】
なお、マスクされた割り込みレベルは、図８のようにＡＳＩＣなど周辺機器の割り込み制御機能を有するデバイスごとに設定されたマスクレジスタから取得できる。図８は、周辺機器の割り込み制御機能を有するデバイスごとに設定されたレベル設定レジスタ，要因レジスタ，マスクレジスタの一例の説明図である。
【００４９】
図８のＡＳＩＣ８１は、図示されないＣＰＵに接続されており、レベル設定レジスタ，要因レジスタ，マスクレジスタを有する。また、ＡＳＩＣ８２はＡＳＩＣ１８に接続されており、要因レジスタ，マスクレジスタを有する。
【００５０】
レベル設定レジスタは、割り込み要因と割り込みレベルとの関係を設定したレジスタである。要因レジスタは、割り込み要因と割り込みを行ったデバイスとの関係を設定したレジスタである。また、マスクレジスタは割り込み要因とマスクする割り込みレベルとの関係を設定したレジスタである。
【００５１】
図７に戻り、割り込みレベルｉがマスクされた割り込みレベルより下でないと判定すると（Ｓ１２においてＮＯ）、ＣＰＵはステップＳ１３に進み、図９のような対象ＡＳＩＣテーブルから対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラを取り出す。
【００５２】
図９は、対象ＡＳＩＣテーブルの一例の説明図である。対象ＡＳＩＣテーブルは、対象ＡＳＩＣ毎にレベルハンドラおよび割り込みハンドラの群と、次の対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラの群へのポインタとを含むように構成されている。
【００５３】
図７に戻り、ステップＳ１４では、ＣＰＵが、ステップＳ１３で読み出した対象ＡＳＩＣの割り込みレベルｉのレベルハンドラを用いて、割り込み要因を判別するためのレジスタにセットされている割り込み要因ビット（以下、第１の割り込み要因ビットという）と、レベルハンドラの要因マスク値とをアンド（ａｎｄ）して、要因が立っているか否かを判定する。具体的には、ＣＰＵは図２のようなレベルハンドラの要因マスク値を、第１の割り込み要因ビットとアンド（ａｎｄ）していく。
【００５４】
要因が立っていると判定すると（Ｓ１４においてＹＥＳ）、ＣＰＵはステップＳ８に進み、割り込みレベルｉのレベルハンドラのハンドラへのポインタ及び割り込みハンドラの次ハンドラへのポインタをたどり、第１の割り込み要因ビットと一致する割り込み要因ビットを有する割り込みハンドラを検索する。
【００５５】
ステップＳ１９に進み、ＣＰＵはステップＳ１８の検索結果から、第１の割り込み要因ビットと一致する割り込み要因ビットを有する割り込みハンドラがないか否かを判定する。第１の割り込み要因ビットと一致する割り込み要因ビットを有する割り込みハンドラがあると判定すると（Ｓ１９においてＮＯ）、ＣＰＵはステップＳ２０に進み、その割り込みハンドラの割り込みプログラムへのポインタおよび割り込みプログラムへの引数を記録してレベル優先要因チェックを終了する。
【００５６】
なお、要因が立っていないと判定すると（Ｓ１４においてＮＯ）、ＣＰＵはステップＳ１５に進み、対象ＡＳＩＣテーブルから全ての対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラを取り出したか否かを判定する。
【００５７】
対象ＡＳＩＣテーブルから全ての対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラを取り出していないと判定すると（Ｓ１５においてＮＯ）、ＣＰＵはステップＳ１３に戻る。対象ＡＳＩＣテーブルから全ての対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラを取り出したと判定すると（Ｓ１５においてＮＯ）、ＣＰＵはステップＳ１６に進み、割り込みレベルｉのレベルを１つ増やしてステップＳ１２に戻る。
【００５８】
なお、割り込みレベルｉがマスクされた割り込みレベルより下であると判定した場合（Ｓ１２においてＮＯ）、又は、第１の割り込み要因ビットと一致する割り込み要因ビットを有する割り込みハンドラがないと判定した場合（Ｓ１９においてＮＯ）、ＣＰＵはステップＳ１７に進む。ステップＳ１７では、割り込み要因不明の割り込みエラー処理を行った後、レベル優先要因チェックを終了する。
【００５９】
図６に戻り、ステップＳ３では、ＣＰＵが、図１０のようなレベル要因マスク処理を行う。図１０は、レベル要因マスク処理の一例のフローチャートである。
【００６０】
ステップＳ３１では、ＣＰＵが、対象ＡＳＩＣテーブルから対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラを取り出す。ステップＳ３２に進み、ＣＰＵは対象ＡＳＩＣのレベルハンドラおよび割り込みハンドラがあるか否かを判定する。
【００６１】
対象ＡＳＩＣのレベルハンドラ及び割り込みハンドラがあると判定すると（ステップＳ３２においてＹＥＳ）、ＣＰＵはステップＳ３３に進み、所定の機能レベル対応表を参照して割り込みレベル以下の割り込みをマスクするようにマスクレジスタを設定する。なお、対象ＡＳＩＣのレベルハンドラ及び割り込みハンドラがあると判定すると（ステップＳ３２においてＮＯ）、ＣＰＵはレベル要因マスク処理を終了する。
【００６２】
図６に戻り、ステップＳ４では、ＣＰＵが、ステップＳ２０で記録した割り込みプログラムへのポインタおよび割り込みプログラムへの引数を用いて、割り込み要因に対する割り込みプログラムを起動する。
【００６３】
ステップＳ５に進み、ＣＰＵは割り込みプログラムを起動することで処理した割り込み要因の第１の割り込み要因ビットをクリアする。そして、ステップＳ６に進み、ＣＰＵはステップＳ１でセーブした割り込みレベルで図１０のような処理を行うレベル要因アンマスク処理を行って処理を終了する。
【００６４】
図１１は、本発明による割り込み制御方法を利用する装置の一例としての融合機の構成図である。融合機１００は、ソフトウェア群１０１と，ハードウェア資源１０２とを含むように構成される。
【００６５】
ソフトウェア群１０１は、ＵＮＩＸ（登録商標）などの汎用ＯＳ１０２上に起動されているアプリケーション層１０３とプラットフォーム１０４とを含む。また、ハードウェア資源１０２は白黒レーザプリンタ（Ｂ＆Ｗ  ＬＰ）１０５と，カラーレーザプリンタ（Ｃｏｌｏｒ  ＬＰ）１０６と，スキャナやファクシミリなどのその他のハードウェアリソース１０７とを含む。
【００６６】
アプリケーション層１０３は、プリンタ，コピー，ファックスおよびスキャナなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプリンタアプリ１０８と，コピーアプリ１０９と，ファックスアプリ１１０と，スキャナアプリ１１１と，ネットファイルアプリ１１２とを含む。
【００６７】
また、プラットフォーム１０４は、アプリケーション層１０３からの処理要求を解釈してハードウェア資源１０２の獲得要求を発生するコントロールサービス層と、ハードウェア資源１０２の管理を行ってコントロールサービス層からの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１１３とを含む。
【００６８】
コントロールサービス層は、エンジンコントロールサービス（ＥＣＳ）１１４と，メモリコントロールサービス（ＭＣＳ）１１５と，オペレーションパネルコントロールサービス（ＯＣＳ）１１６と，ファックスコントロールサービス（ＦＣＳ）１１７と，ネットワークコントロールサービス（ＮＣＳ）１１８と，システムコントロールサービス（ＳＣＳ）１１９とを含むように構成されている。
【００６９】
なお、プラットフォーム１０４はＡＰＩを有するように構成されている。汎用ＯＳ１０２は、アプリケーション層１０３およびプラットフォーム１０４の各ソフトウェアをプロセスとして並列実行する。
【００７０】
ＥＣＳ１１４のプロセスは、白黒レーザプリンタ１０５，カラーレーザプリンタ１０６，ハードウェアリソース１０７などのエンジン部の制御を行う。ＭＣＳ１１５のプロセスは、メモリの取得および解放，ＨＤＤの利用，画像データの圧縮および伸張などのメモリ制御を行う。
【００７１】
ＯＣＳ１１６のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。ＦＣＳ１１７のプロセスは、アプリケーション層１０３からＰＳＴＮまたはＩＳＤＮ網を利用したファックス送受信，バックアップ用のメモリで管理されている各種ファックスデータの登録／引用，ファックス読み取り，ファックス受信印刷などを行うためのＡＰＩを提供する。
【００７２】
ＮＣＳ１１８のプロセスは、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。例えばＮＣＳ１１８は、融合機１００にネットワークを介して接続されるクライアントとのデータ通信を制御する。ＳＣＳ１１９のプロセスは、アプリケーション管理，操作部制御，システム画面表示，ＬＥＤ表示，ハードウェア資源管理，割り込みアプリケーション制御などの処理を行う。
【００７３】
ＳＲＭ１１３のプロセスは、ＳＣＳ１１９と共にシステムの制御およびハードウェア資源１０２の管理を行うものである。例えばＳＲＭ１１３のプロセスは、ハードウェア資源１０２を利用する上位層からの獲得要求に従って調停を行い、実行制御する。具体的に、ＳＲＭ１１３のプロセスは獲得要求されたハードウェア資源１０２が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源１０２が利用可能である旨を上位層に通知する。
【００７４】
また、ＳＲＭ１１３のプロセスは上位層からの獲得要求に対してハードウェア資源１０２を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作，メモリ確保，ファイル生成など）を直接実施している。ＳＲＭ１１３は、エンジンＩ／Ｆを利用して、ハードウェア資源１０２に対する処理要求を行う。図１１の構成により、融合機１００は各アプリケーションで共通的に必要な処理をプラットフォーム１０４で一元的に処理することができる。
【００７５】
ＯＳ１０２には、ＯＳ例外ハンドラ１２０，ＡＳＩＣドライバ１２１に含まれるＡＳＩＣ割り込みハンドラ１２２，複数のＡＳＩＣ内機能ドライバ１２３に夫々含まれる割り込みプログラム１２４が含まれる。ＯＳ例外ハンドラ１２０が割り込みを発生すると、本発明による割り込み制御方法によりＡＳＩＣドライバ１２１内のＡＳＩＣ割り込みハンドラ１２２が選択され、そのＡＳＩＣ割り込みハンドラの割り込みプログラムへのポインタに登録されているＡＳＩＣ内機能ドライバ１２３内の割り込みプログラム１２４が起動される。
【００７６】
次に、融合機１００のハードウェア構成について説明する。図１２は、本発明による割り込み制御方法を利用する装置の一例としての融合機のハードウェア構成図である。
【００７７】
融合機１００は、コントローラ２００と，オペレーションパネル２０１と，ＦＣＵ２０２と，エンジン２０３と，プロッタ２０４とを含む。コントローラ２００は、ＣＰＵ２１０と，システムメモリ２１１と，ノースブリッジ（ＮＢ）２１２と，サウスブリッジ（ＳＢ）２１３と，ＮｏｒｔｈＡＳＩＣ２１４と，ＳｏｕｔｈＡＳＩＣ２１５と，ローカルメモリ２１６と，ＨＤＤ２１７とを含む。
【００７８】
オペレーションパネル２０１は、コントローラ２００のＮｏｒｔｈＡＳＩＣ２１４に接続されている。また、ＦＣＵ２０２およびエンジン２０３およびプロッタ２０４は、コントローラ２００のＮｏｒｔｈＡＳＩＣ２１４にＰＣＩバス２１８で接続されている。
【００７９】
コントローラ２００はＮｏｒｔｈＡＳＩＣ２１４にローカルメモリ２１６，ＨＤＤ２１７などが接続されると共に、ＣＰＵ２１０とＮｏｒｔｈＡＳＩＣ２１２とがＣＰＵチップセットのＮＢ２１２を介して接続されている。また、コントローラ２００はＣＰＵ２１０とＮｏｒｔｈＡＳＩＣ２１４及びＳｏｕｔｈＡＳＩＣ２１５とがＣＰＵチップセットのＳＢ２１３を介して接続されている。なお、ＮｏｒｔｈＡＳＩＣ２１４とＮＢ２１２とはＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ  ）１０５を介して接続されている。
【００８０】
ＣＰＵ２１０は、融合機１００の全体制御を行うものである。例えばＣＰＵ２１０は、ＳＲＭ１１３，ＥＣＳ１１４，ＭＣＳ１１５，ＯＣＳ１１６，ＦＣＳ１１７，ＮＣＳ１１８を汎用ＯＳ上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層１０３を形成するプリンタアプリ１０８，コピーアプリ１０９，ファックスアプリ１１０，スキャナアプリ１１１，ネットファイルアプリ１１２を起動して実行させる。
【００８１】
ＮＢ２１２は、ＣＰＵ２１０，システムメモリ２１２，ＳＢ２１３，ＮｏｒｔｈＡＳＩＣ２１４を接続するためのブリッジである。また、ＳＢ２１３は、ＣＰＵ２１０，ＮＢ２１２，ＮｏｒｔｈＡＳＩＣ２１４，ＳｏｕｔｈＡＳＩＣ２１５を接続するためのブリッジである。
【００８２】
システムメモリ２１１は、融合機１００の描画用メモリなどとして用いるメモリである。ローカルメモリ２１６はコピー用画像バッファ，符号バッファとして用いるメモリである。
【００８３】
ＮｏｒｔｈＡＳＩＣ２１４およびＳｏｕｔｈＡＳＩＣ２１５は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ１０８は、画像データの蓄積，文書データの蓄積，プログラムの蓄積，フォントデータの蓄積，フォームの蓄積などを行うストレージ（補助記憶装置）の一例である。
【００８４】
また、オペレーションパネル２０１は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。なお、ＦＣＵ２０２はメモリを有している。ＦＣＵ２０２が有するメモリは、例えば融合機１００の電源がＯＦＦのときに受信したファクシミリデータを一時的に格納するために利用される。
【００８５】
以上、本発明による割り込み制御方法によれば、図１３（ｂ）のように１つの割り込みプログラムＡの処理中に、割り込みプログラムＡより優先度の高い割り込みプログラムＢを行う多重割り込みを、割り込み制御機能を有するデバイスが複数あるデバイス構成であっても、単純な割り込み制御の判断で実現できる。
【００８６】
なお、図１３（ａ）は多重割り込みを利用しない割り込み制御の例であり、１つの割り込みプログラムＡの処理中に、割り込みプログラムＡより優先度の高い割り込みＢが発生したとしても、割り込みプログラムＡの処理が終了したあとでしか割り込みプログラムＢを処理できない。
【００８７】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求のの範囲から逸脱することなく、種々の変形や変更が可能である。
【００８８】
【発明の効果】
上述の如く、本発明によれば、割り込み制御機能を有するデバイスが複数あるデバイス構成であっても、単純な割り込み制御の判断で自由度の高い多重割り込みを実現でき、デバイス構成によらずに各デバイスの割り込みの優先度を設定できる。
【００８９】
【図面の簡単な説明】
【図１】レベルハンドラおよび割り込みハンドラの一例の説明図である。
【図２】複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとの一例の説明図である。
【図３】割り込み制御機能を有するデバイス毎に登録された複数の割り込みレベルに対応するレベルハンドラと、その割り込みレベルに登録されている割り込みハンドラとの一例の説明図である。
【図４】ＭＩＰＳ型ＣＰＵで複数のＡＳＩＣを利用したデバイス構成の一例の構成図である。
【図５】ｘ８６型ＣＰＵで複数のＡＳＩＣを利用したデバイス構成の一例の構成図である。
【図６】本発明による割り込み制御の一例のフローチャートである。
【図７】レベル優先要因チェックの一例のフローチャートである。
【図８】周辺機器の割り込み制御機能を有するデバイスごとに設定されたレベル設定レジスタ，要因レジスタ，マスクレジスタの一例の説明図である。
【図９】対象ＡＳＩＣテーブルの一例の説明図である。
【図１０】レベル要因マスク処理の一例のフローチャートである。
【図１１】本発明による割り込み制御方法を利用する装置の一例としての融合機の構成図である。
【図１２】本発明による割り込み制御方法を利用する装置の一例としての融合機のハードウェア構成図である。
【図１３】多重割り込みについて説明する説明図である。
【符号の説明】
１，１１〜１３    レベルハンドラ
２，３，１４，１５，１８，１９，２２    割り込みハンドラ
１６，１７，２０，２１，２３，１２４    割り込みプログラム
４１，５１，２１０    ＣＰＵ
４２〜４４，８１，８２    ＡＳＩＣ
５２，２１３    サウスブリッジ
５３，２１５    ＳｏｕｔｈＡＳＩＣ
５４，２１４    ＮｏｒｔｈＡＳＩＣ
１００    融合機
１０２    汎用ＯＳ
１２０    ＯＳ例外ハンドラ
１２１    ＡＳＩＣドライバ
１２２    ＡＳＩＣ割り込みハンドラ
１２３    ＡＳＩＣ内機能ドライバ
【図１】
2004287838.tif 000003
【図２】
2004287838.tif 000004
【図３】
2004287838.tif 000005
【図４】
2004287838.tif 000006
【図５】
2004287838.tif 000007
【図６】
2004287838.tif 000008
【図７】
2004287838.tif 000009
【図８】
2004287838.tif 000010
【図９】
2004287838.tif 000011
【図１０】
2004287838.tif 000012
【図１１】
2004287838.tif 000013
【図１２】
2004287838.tif 000014
【図１３】
2004287838.tif 000015