(57)【要約】【課題】割込原因を割込発生元にアクセスして探索していたため、ＣＰＵのスループットが低下していた。【解決手段】割込発生元データおよび割込原因データを割込補助コントローラ２１のレジスタ２１ａに格納させることによって、インターフェース１１ａ〜１１ｃにて割込要因が発生した場合、ＣＰＵ１４は割込補助コントローラ２１のレジスタ２１ａにアクセスし、この格納された割込発生元データおよび割込原因データを取得し、この割込発生元データおよび割込原因データに基づいた所定の制御処理を実行する。従って、同ＣＰＵ１４は、割込原因を探索するためにＩ／Ｏコントローラ１２を介してホストインターフェース１１にアクセスする必要がなくなるので、ＣＰＵ１４のスループットを向上させることが可能になる。【選択図】　図１
2004030171.tif 000002
【特許請求の範囲】
【請求項１】
通知された割込信号に対応する割込原因を取得するとともに、同取得した割込原因に基づいた所定の制御処理を実行可能なＣＰＵと、
所定の記憶領域を有し、上記割込原因を上記ＣＰＵが取得可能に格納する割込原因記憶回路と、
上記割込原因の発生元より割込要求信号を入力可能であるとともに、同割込要求信号を入力すると、同発生元から割込原因を取得し、同取得した割込原因を上記割込原因記憶回路の記憶領域に格納しつつ、同ＣＰＵに割込信号を出力して割込の発生を通知する割込制御回路とを具備することを特徴とするコントローラ。
【請求項２】
上記割込制御回路は、上記割込原因の発生元より割込要求信号を入力する第一割込制御回路と、同第一割込制御回路と接続し同第一割込制御回路が割込要求信号を入力した場合に上記発生元から割込原因を取得して上記割込原因記憶回路の記憶領域に格納し上記ＣＰＵに割込信号を出力する第二割込制御回路とを有することを特徴とする上記請求項１に記載のコントローラ。
【請求項３】
上記割込原因記憶回路は、上記第二割込制御回路内に形成されることを特徴とする上記請求項２に記載のコントローラ。
【請求項４】
上記第一割込制御回路は、物理的に上記割込原因の発生元の近くに配設されるとともに、上記第二割込制御回路は、物理的に上記ＣＰＵの近くに配設されることを特徴とする上記請求項２または請求項３のいずれかに記載のコントローラ。
【請求項５】
外部に接続されるホストコンピュータと相互に通信可能な入出力回路を有するとともに、上記第一割込制御回路は、同入出力回路と同一基板上に形成されることを特徴とする上記請求項２〜請求項４のいずれかに記載のコントローラ。
【請求項６】
データを格納するメモリに対する同データの入出力を制御するメモリ制御回路を有するとともに、上記第二割込制御回路は、同メモリ制御回路と同一基板上に形成されることを特徴とする上記請求項２〜請求項５のいずれかに記載のコントローラ。
【請求項７】
上記第二割込制御回路は、上記ＣＰＵに所定の割込信号が出力されないように同所定の割込信号をマスクする割込信号を設定する割込マスク設定回路を有することを特徴とする上記請求項２〜請求項６のいずれかに記載のコントローラ。
【請求項８】
上記割込制御回路は、上記割込原因の発生元より割込要求信号を入力した場合に、同発生元から割込原因を取得し、同取得した割込原因を上記割込原因記憶回路の記憶領域に格納しつつ、同ＣＰＵに割込信号を出力して割込の発生を通知する第一モードと、直に上記ＣＰＵに割込信号を出力して割込の発生を通知する第二モードとを切り換え可能なことを特徴とする上記請求項１〜請求項７のいずれかに記載のコントローラ。
【請求項９】
上記請求項１〜請求項８のいずれかに記載のコントローラを具備することを特徴とする印刷装置。
【請求項１０】
通知された割込信号に対応する割込原因を取得するとともに、ＣＰＵにて同取得した割込原因に基づいた所定の制御処理を実行する割込コントロール方法であって、
上記割込原因の発生元より割込要求信号を入力する割込要求信号入力工程と、上記割込要求信号入力工程にて割込要求信号が入力された場合に上記発生元から割込原因を取得する割込原因取得工程と、
上記取得した割込原因を所定の記憶領域に格納させる割込原因格納工程と、
上記割込原因格納工程にて上記割込原因が上記記憶領域に格納されると、上記ＣＰＵに割込信号を出力して割込の発生を通知する割込通知工程と、
上記通知を入力したＣＰＵに上記記憶領域に格納された割込原因を取得させつつ、同ＣＰＵに同割込原因に基づいた所定の制御処理を実行させる割込制御工程とを具備することを特徴とする割込コントロール方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コントローラ、印刷装置および割込コントロール方法に関し、特に、割込信号の処理を行うコントローラ、印刷装置および割込コントロール方法に関する。
【０００２】
【従来の技術】
従来、この種のコントローラを備える電子機器、例えば、印刷装置は、機能ブロックとして、ＣＰＵと、メモリコントローラと、メモリと、プリンタエンジンと、画像処理回路と、ＩＯコントローラと、ホストＩ／Ｆとから構成されている。ここで、接続するホストＰＣから送られてきた印刷データは、ＬＡＮ、ＵＳＢ、ＩＥＥＥ１２８４等のホストＩ／Ｆから接続するＩ／Ｏコントローラに入力されるとともに、メモリコントローラを介してメモりに送られる。そして、ＣＰＵや画像処理回路は、メモリコントローラを介してメモリにアクセスし、この印刷データに対して一連のデータ処理を行う。この一連のデータ処理の途中経路において、印刷データはハードウェアまたはソフトウェア的に圧縮されている場合もあれば、伸張されて元のデータの形式を取っている場合もある。
【０００３】
ホストＩ／Ｆから受信された印刷データは、ＣＰＵや画像処理回路等にてデータ処理が実行されると、最終的にプリンタエンジンに送られて印刷される。このような印刷装置に備えられるＣＰＵは、各機能ブロックからの割込要求に基づいて対応するイベントを処理したり、割込処理を実行する。一般的に、ＬＡＮ、ＵＳＢ、ＩＥＥＥ１１２８４等のホストＩ／Ｆから受信した印刷データ（直接、ホストＩ／Ｆから受信した印刷データや、その印刷データを一時バッファに蓄えたもの）をメモリにセーブしたり、メモリ上のデータをホストＩ／Ｆから送信したりする場合は、ＣＰＵのリードライトでなく、ＤＭＡを利用する場合が多い。このとき、ＣＰＵには、ホストＩ／Ｆによる割込以外にも各機能ブロックからの通信手段やタイマー割込等による割込要求が多数発生する。
【０００４】
このような割込が発生した場合は、割込要求信号として割込コントローラに入力される。割込コントローラは、各割込要求信号をまとめてＣＰＵに割込信号を出力する。一般的に、ＣＰＵが入力できる割込信号の数は、コントローラにて必要とされる割込要求信号より少ない。結果として、ＣＰＵは割込信号を入力した場合、その割込信号がどこで発生したものか、また、その割込信号が発生した割込原因を割込コントローラにアクセスすることで識別する。多くの場合、ＣＰＵが割込コントローラにアクセスするだけは割込信号が発生した全ての割込原因を認識することはできない。従って、ＣＰＵは割込コントローラに割込要求信号を入力する各ホストＩ／Ｆおよび各機能ブロックにアクセスしてその詳細な割込原因を認識する。
【０００５】
【発明が解決しようとする課題】
上述した従来のコントローラにおいて、メモリコントローラは、ＣＰＵに位置的に近く、ＣＰＵから高速にアクセスすることができるが、ホストＩ／Ｆに接続するＩ／Ｏコントローラは、位置的に遠く、また、物理的にアクセスタイムが多くかかるデバイスが多い。Ｉ／Ｏコントローラをメモリコントローラと一体に形成することによって、ＣＰＵからＩ／Ｏコントローラへのアクセスを高速化することも可能であるが、かかる場合、Ｉ／Ｏコントローラでは多数のＩ／Ｏ信号線が必要である場合が多く、高コストとなるという問題があった。一方、割込コントローラをメモリコントローラに内蔵することによって、ＣＰＵから割込コントローラに対するアクセスを高速化することができるが、割込コントローラに入力されるホストＩ／Ｆおよび各機能ブロックからの割込要求信号は数が多い。
【０００６】
従って、かかる場合、メモリコントローラはＩ／Ｏ信号線数の増大によって、高コストとなるという問題があった。従って、低コストを実現するために、割込コントローラをＩ／Ｏコントローラに内蔵、または、その近くに配置し、割込コントローラからＣＰＵに対して割込要求信号を発生させる構成をとる場合が多い。しかし、このときＣＰＵの割込処理時間が増大し、アクセス時間の長くかかる割込コントローラにＣＰＵがアクセスしている間は、ＣＰＵからのＲＡＭへのアクセスが待機した状態となり、トータルスループットが低下してしまうという問題があった。
【０００７】
本発明は、上記課題にかんがみてなされたもので、低コストでＣＰＵトータルスループットの高速化を図ることが可能なコントローラ、印刷装置および割込コントロール方法の提供を目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、通知された割込信号に対応する割込原因を取得するとともに、同取得した割込原因に基づいた所定の制御処理を実行可能なＣＰＵと、所定の記憶領域を有し、上記割込原因を上記ＣＰＵが取得可能に格納する割込原因記憶回路と、上記割込原因の発生元より割込要求信号を入力可能であるとともに、同割込要求信号を入力すると、同発生元から割込原因を取得し、同取得した割込原因を上記割込原因記憶回路の記憶領域に格納しつつ、同ＣＰＵに割込信号を出力して割込の発生を通知する割込制御回路とを具備する構成としてある。
【０００９】
上記のように構成した請求項１にかかる発明においては、割込に対する制御処理を実行するコントローラを提供する。このとき、コントローラにＣＰＵと、割込原因記憶回路と、割込制御回路とを備えさせる。割込が発生すると、発生元は割込制御回路に割込要求信号を入力する。割込制御回路は、この割込要求信号を入力すると、発生元から割込原因を取得し、この割込原因を割込原因記憶回路の所定の記憶領域に格納する。そして、同割込制御回路はＣＰＵに対して割込信号を出力し、割込が発生していることを通知する。かかる通知を入力したＣＰＵは、割込が発生していることを認識し、割込原因記憶回路の記憶領域にアクセスし、割込原因を取得する。そして、この取得した割込原因に基づいて割込に関する所定の制御処理を実行する。
【００１０】
割込制御回路は実現可能な機能を鑑みた場合、割込の発生元から割込要求信号を入力する機能と、割込原因記憶回路の所定の記憶領域に割込原因を格納する機能とに分けられる。かかる場合、各機能毎に回路を分割すれば、機能に適した回路配置を行うことが可能になって好適である。そこで、請求項２にかかる発明は、上記請求項１に記載のコントローラにおいて、上記割込制御回路は、上記割込原因の発生元より割込要求信号を入力する第一割込制御回路と、同第一割込制御回路と接続し同第一割込制御回路が割込要求信号を入力した場合に上記発生元から割込原因を取得して上記割込原因記憶回路の記憶領域に格納し上記ＣＰＵに割込信号を出力する第二割込制御回路とを有する構成としてある。
【００１１】
上記のように構成した請求項２にかかる発明においては、割込制御回路を第一割込制御回路と、第二割込制御回路とに回路分割する。かかる場合、第二割込制御回路は第一割込制御回路と接続する。そして、第一割込制御回路では、割込原因の発生元が出力する割込要求信号を入力可能にする。一方、第二割込制御回路は第一割込制御回路が発生元から割込要求信号を入力した場合、この発生元から割込原因を取得し、取得した割込原因を割込原因記憶回路の記憶領域に格納する。そして、ＣＰＵに割込信号を出力して割込の発生を通知する。
【００１２】
一方、各回路が実現する機能の内容を鑑みた場合、回路を機能に応じて分割した方が好適な場合もあるし、回路の機能に応じて統合した方が好適な場合がある。そこで、請求項３にかかる発明は、上記請求項２に記載のコントローラにおいて、上記割込原因記憶回路は、上記第二割込制御回路内に形成される構成としてある。
上記のように構成した請求項３にかかる発明においては、割込原因記憶回路を第二割込制御回路内に形成する。従って、第二割込制御回路は、同一回路内に配置された割込原因記憶回路の所定の記憶領域に対して割込原因を格納する。
【００１３】
上述したように、割込制御回路を第一割込制御回路と第二割込制御回路とに分割するとともに、第二割込制御回路内に割込原因記憶回路を形成した場合、第一割込制御回路には発生元からの割込要求信号が入力され、ＣＰＵは第二割込制御回路内に配置された割込原因記憶回路の所定の記憶領域にアクセスして割込原因を取得する。かかる場合、この第一割込制御回路と第二割込制御回路とを配置する際の好適な配置位置の一例として、請求項４にかかる発明は、上記請求項３に記載のコントローラにおいて、上記第一割込制御回路は、物理的に上記割込原因の発生元の近くに配設されるとともに、上記第二割込制御回路は、物理的に上記ＣＰＵの近くに配設される構成としてある。
上記のように構成した請求項４にかかる発明においては、第一割込制御回路を物理的に割込原因の発生元の近くに配設する。また、第二割込制御回路を物理的にＣＰＵの近くに配設する。
【００１４】
割込は外部のホストコンピュータから入力される場合が多く、このホストコンピュータからの入力は入出力回路にて受け付けられる。そこで、コントローラに入出回路を備えさせ、この入出力回路に割込の発生元から割込要求信号を入力する第一割込制御回路を形成すれば、外部から入力される割込を高速に受け付けることが可能になって好適である。そこで、請求項５にかかる発明は、上記請求項２〜請求項４のいずれかに記載のコントローラにおいて、外部に接続されるホストコンピュータと相互に通信可能な入出力回路を有するとともに、上記第一割込制御回路は、同入出力回路と同一基板上に形成される構成としてある。
上記のように構成した請求項５にかかる発明においては、コントローラに外部に接続されるホストコンピュータと相互に通信可能な入出力回路を備えさせる。そして、第一割込制御回路をこの入出力回路と同一基板上に形成する。
【００１５】
ＣＰＵはその機能を実現する性質上、メモリにアクセスすることが多い。すなわち、ＣＰＵはプログラムや処理対象のデータ等を処理するため、メモリにアクセスする頻度が高い。従って、メモリへのアクセスを制御するメモリ制御回路はＣＰＵの近くに配置される。このとき、本発明にかかるコントローラにこのメモリ制御回路を備えさせるととも、この割込時にＣＰＵが割込原因を取得するためにアクセスする第二割込制御回路をこのメモリ制御回路と同一基板上に配置すれば、ＣＰＵによるアクセスを高速化することができる。そこで、請求項６にかかる発明は、上記請求項２〜請求項５のいずれかに記載のコントローラにおいて、データを格納するメモリに対する同データの入出力を制御するメモリ制御回路を有するとともに、上記第二割込制御回路は、同メモリ制御回路と同一基板上に形成される構成としてある。
【００１６】
上記のように構成した請求項６にかかる発明においては、コントローラにデータを格納するメモリに対する同データの入出力を制御するメモリ制御回路を備えさせる。そして、第二割込制御回路をこのメモリ制御回路と同一基板上に形成する。上述してきたように割込時においては、割込原因の取得のため、ＣＰＵは第二割込制御回路にアクセスする頻度が多くなる。割込の処理においては、ＣＰＵによる割込信号のマスク処理が含まれる。従って、このマスク処理を行う回路を第二割込制御回路に配置すれば、ＣＰＵは高速にマスク処理を実行することが可能となり好適である。
【００１７】
そこで、請求項７にかかる発明は、上記請求項２〜請求項６のいずれかに記載のコントローラにおいて、上記第二割込制御回路は、上記ＣＰＵに所定の割込信号が出力されないように同所定の割込信号をマスクする割込信号を設定する割込マスク設定回路を有する構成としてある。
上記のように構成した請求項７にかかる発明においては、第二割込制御回路にＣＰＵに所定の割込信号が出力されないように同所定の割込信号をマスクする割込信号を設定する割込マスク設定回路を備えさせる。
【００１８】
さらに、請求項８にかかる発明は、上記請求項１〜請求項７のいずれかに記載のコントローラにおいて、上記割込制御回路は、上記割込原因の発生元より割込要求信号を入力した場合に、同発生元から割込原因を取得し、同取得した割込原因を上記割込原因記憶回路の記憶領域に格納しつつ、同ＣＰＵに割込信号を出力して割込の発生を通知する第一モードと、直に上記ＣＰＵに割込信号を出力して割込の発生を通知する第二モードとを切り換え可能な構成としてある。
上記のように構成した請求項８にかかる発明においては、割込制御回路にて割込原因の発生元より割込要求信号を入力した場合に、この発生元から割込原因を取得し、同取得した割込原因を割込原因記憶回路の記憶領域に格納しつつ、同ＣＰＵに割込信号を出力して割込の発生を通知する第一モードと、直にＣＰＵに割込信号を出力して割込の発生を通知する第二モードとを切り換え可能にする。
【００１９】
上述してきたコントローラは個別具体的な装置に搭載されてその機能を実現する。かかるコントローラを搭載して好適な個別具体的な装置の一例として、請求項９にかかる発明は、上記請求項１〜請求項８のいずれかに記載のコントローラを具備することを特徴とする印刷装置としてある。また、通知された割込信号に対応する割込原因を取得するとともに、ＣＰＵにて同取得した割込原因に基づいた所定の制御処理を実行する手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。
【００２０】
このため、請求項１０にかかる発明は、通知された割込信号に対応する割込原因を取得するとともに、ＣＰＵにて同取得した割込原因に基づいた所定の制御処理を実行する割込コントロール方法であって、上記割込原因の発生元より割込要求信号を入力する割込要求信号入力工程と、上記割込要求信号入力工程にて割込要求信号が入力された場合に上記発生元から割込原因を取得する割込原因取得工程と、上記取得した割込原因を所定の記憶領域に格納させる割込原因格納工程と、上記割込原因格納工程にて上記割込原因が上記記憶領域に格納されると、上記ＣＰＵに割込信号を出力して割込の発生を通知する割込通知工程と、上記通知を入力したＣＰＵに上記記憶領域に格納された割込原因を取得させつつ、同ＣＰＵに同割込原因に基づいた所定の制御処理を実行させる割込制御工程とを具備する構成としてある。
すなわち、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。
【００２１】
【発明の効果】
以上説明したように請求項１にかかる発明によれば、割込発生時、ＣＰＵは割込発生元にアクセスして割込原因を探索し取得する必要がなく、既に割込原因記憶回路に格納された割込原因を取得するのみでよいため、ＣＰＵが割込原因を取得するまでの処理時間を大幅に短縮可能となり、ＣＰＵのトータルスループットを向上させることが可能なコントローラを提供することができる。
また、請求項２にかかる発明によれば、各回路を機能を実現するために好適な位置に配置することが可能になる。
さらに、請求項３にかかる発明によれば、割込原因の格納を高速化することが可能になる。
さらに、請求項４にかかる発明によれば、発生元からの第一割込制御回路に対する割込要求信号の入力を高速化することが可能になるとともに、ＣＰＵの第二割込制御回路に対するアクセスを高速化することが可能になる。
【００２２】
さらに、請求項５にかかる発明によれば、ホストコンピュータから入力される割込要求信号の入力を高速化することが可能になる。
さらに、請求項６にかかる発明によれば、ＣＰＵの第二割込制御回路に対するアクセスを高速化することが可能になる。
さらに、請求項７にかかる発明によれば、ＣＰＵによるマスク処理を高速化することが可能になる。
さらに、請求項８にかかる発明によれば、割込原因を割込原因記憶回路に記憶して、割込発生時、ＣＰＵに同割込原因記憶回路の所定の記憶領域にアクセスさせる第一モードと、割込発生時、割込原因を取得させるため、ＣＰＵに直接発生元にアクセスさせる第二モードとを適宜選択することが可能になる。
さらに、請求項９にかかる発明によれば、本発明にかかるコントローラを適用して好適な具体的構成機器としての印刷装置を提供することができる。
さらに、請求項１０にかかる発明によれば、割込発生時、ＣＰＵは割込発生元にアクセスして割込原因を探索し取得する必要がなく、既に割込原因記憶回路に格納された割込原因を取得するのみでよいため、ＣＰＵが割込原因を取得するまでの処理時間を大幅に短縮可能となり、ＣＰＵのトータルスループットを向上させることが可能な割込コントロール方法を提供することができる。
【００２３】
【発明の実施の形態】
ここでは、下記の順序に従って本発明の実施形態について説明する。
（１）レーザプリンタの概略構成：
（２）割込時のデータ等の流れ：
（３）割込時の処理の処理内容：
（４）割込コントローラの処理内容：
（５）割込補助コントローラの処理内容：
（６）ＣＰＵの処理内容：
（７）変形例：
（８）まとめ：
【００２４】
（１）レーザプリンタの構成：
図１は、本発明にかかるコントローラが適用される印刷装置の一実施形態であるレーザプリンタの構成を示す構成図である。同図において、レーザプリンタ１０は、ホストコンピュータ３０に接続されており、同ホストコンピュータ３０から制御コマンドや印刷データ等を入力して印刷を実行可能になっている。このホストコンピュータ３０は、レーザプリンタ１０のホストインターフェース１１を介して接続されている。本実施形態におけるレーザプリンタ１０は、ホストインターフェース１１として、ＵＳＢインターフェース１１ａと、パラレルインターフェース１１ｂと、シリアルインターフェース１１ｃとを備えており、ホストコンピュータ３０のインターフェースに応じて適宜接続を選択可能になっている。ここで、上述したパラレルインターフェース１１ｃは、レーザプリンタ１０の性能をホストコンピュータ３０側から検出する場合もあるので、単方向通信のセントロニクス方式ではなく、ニブル、ＥＣＢ、ＥＰＰといった双方向通信を実行可能なインターフェイスを採用する。
【００２５】
このホストインターフェース１１は、Ｉ／Ｏコントローラ１２に接続されており、Ｉ／Ｏコントローラ１２は、各インターフェース１１ａ〜１１ｃに対応してホストコンピュータ３０から出力される制御コマンドや印刷データ等を入力可能になっている。このＩ／Ｏコントローラ１２は、メモリコントローラ１３に接続され、同メモリコントローラ１３は、ＣＰＵ１４と、ＲＯＭ１５と、ＲＡＭ１６とが相互に接続されたバス１７に接続されている。ここで、ＣＰＵ１４はＲＯＭ１５に書き込まれているプリンタ制御プログラムをＲＡＭ１６をワークエリアとし、同ＲＡＭ１６に適宜プログラムを読み込みつつ実行する。また、このＲＡＭ１６には印刷するドットマトリクス状の各画素に対応してドットのオン・オフを示した印刷画素データが記録される。
【００２６】
本実施形態においては、ＲＡＭ１６が必ずしも１頁分のイメージデータを保持できなければならないわけではなく、データの入力と出力とを並行して行えるようにＤＭＡ機能と利用することにより、メモリコントローラ１３を介して直接ＲＡＭ１６にアクセスすることができるようになっている。すなわち、ホストコンピュータ３０の側から印刷画素データが入力されると、ＣＰＵ１４を介することなく直にＲＡＭ１６に書き込めるようになっている。かかる場合、ＲＡＭ１６から印刷画素データを直に読み出して、画像処理回路１８に送り出すことになる。ＲＡＭ１６から読み出された印刷画素データは特に圧縮されていない限りはデータ伸張回路１８ａをスルーしてビデオコントローラ１８ｂに入力され、同ビデオコントローラ１８ｂでタイミング調整される。
【００２７】
このビデオコントローラ１８ｂもデータの入力と出力とを並行して行なう関係から特にタイミング調整をクリティカルに実行できるようにしてあり、このビデオコントローラ１８ｂから出力されるビデオ信号は、後処理回路１８ｃに入力され、印刷エンジン１９の解像度に対応して解像度の変換を行ったり、エッジスムージング、ガンマ特性の調整というような印刷エンジン１９を中心としたレーザプリンタ１０のハードウェアに固有の後処理を実行する。一方、転送効率を向上させたりＲＡＭ１６の占有量を減らすために印刷画素データを圧縮してＲＡＭ１６に記録することが可能であり、この場合にメモリコントローラ１３を介して直にデータを読み出すと圧縮されたままとなってしまう。このため、上述したデータ伸張回路１８ａが介在されており、圧縮された印刷画素データを読み出した場合にはそれを伸張し、ビデオコントローラ１８ｂに出力する。
【００２８】
ここで、かかるレーザプリンタ１０における印刷出力処理の概略処理内容を図２のフローチャートに示す。同図において、レーザプリンタ１０は、ホストコンピュータ３０からイメージデータを入力すると（ステップＳ１００）、ＲＡＭ１６に同イメージデータに基づく印刷画素データを書き込む（ステップＳ１０５）。そして、ＲＡＭ１６に展開された印刷画素データをメモリコントローラ１３に読み出させるとともに（ステップＳ１１０）、画像処理回路１８に送出する（ステップＳ１１５）。画像処理回路１８ではデータ伸長回路１８ａおよびビデオコントローラ１８ｂにて処理を実行し、タイミングを調整しながら後処理回路１８ｃにて印刷エンジン１９に応じたデータに変更する。そして、印刷エンジン１９が所定の記録紙にトナーを付着させて印刷物を生成していく（ステップＳ１２０）。
【００２９】
ここで、ＣＰＵ１４は各機能ブロックからの割込要求により、その割込要求に対応するイベントを処理したり、割込要因に対応した制御処理を実行する。一般的に、ＵＳＢインターフェース１１ａ等ののホストインターフェース１１がホストコンピュータ３０から入力したデータ（直接ホストインターフェース１１から入力したデータやそのデータを一時バッファに蓄えたもの）をＲＡＭ１６に格納したり、ＲＡＭ１６上のデータをホストインターフェース１１からホストコンピュータ３０に出力したりする場合には、ＣＰＵ１４による読み書き動作でなく、ＤＭＡ機能を利用する場合が多いが、かかる場合、ＣＰＵ１４がホストインターフェース１１の割込以外にも、機能ブロックからのＣＰＵ１４への通信手段やタイマー割込等でＣＰＵ１４に対する割込要求が多数発生する。
【００３０】
各割込要求信号は、図示しない割込コントローラでまとめられてＣＰＵ１４への割込要求信号となるが、一般的にＣＰＵ１４が入力できる割込信号の数は、レーザプリンタ１０にて必要とされる割込要求信号よりかなり少ない。結果としてＣＰＵ１４は、割込要求信号を入力した場合、その割込要求信号がどこから発生されたものか、また、その割込要求信号が発生した原因を割込コントローラにアクセスすることで認識する必要がある。多くの場合、ＣＰＵ１４が割込コントローラへアクセスするだけでは、割込要求信号が発生した全ての原因を認識することはできない。従って、ＣＰＵ１４は割込コントローラが指摘する各機能ブロック、例えば、各インターフェース１１ａ〜１１ｃにアクセスしてその詳細な原因を探索する。このようにＣＰＵ１４が末端の各インターフェース１１ａ〜１１ｃにアクセスする処理が発生すると、同ＣＰＵ１４のトータルスループットが低下し、他の処理が停滞してしまうという問題がある。
【００３１】
また、割込要求信号を発生する各インターフェース１１ａ〜１１ｃが接続されるＩ／Ｏコントローラ１２は配置位置がＣＰＵ１４から遠く、また、Ｉ／Ｏコントローラ１２を介して各インターフェース１１ａ〜１１ｃにアクセスする場合、物理的にアクセス時間が多くかかる。従って、上述したＣＰＵ１４のトータルスループットの低下は著しくなる。ここで、メモリコントローラ１３は配置位置がＣＰＵ１４に近く、ＣＰＵ１４から高速にアクセスすることが可能であるため、Ｉ／Ｏコントローラ１２をメモリコントローラ１３と一体形成することによって、ＣＰＵ１４によるＩ／Ｏコントローラ１２へのアクセスを高速化する手法も勘案できる。しかし、Ｉ／Ｏコントローラ１２は、各インターフェース１１ａ〜１１ｃとの接続することから多数の入出力信号が必要になるため、Ｉ／Ｏコントローラ１２とメモリコントローラ１３とを一体形成した場合、製造コストが上昇してしまう。
【００３２】
また、割込コントローラへの入力である割込要求信号は数が多いため、割込コントローラをメモリコントローラ１３に内蔵すると、メモリコントローラ１３は入出力信号の増大で製造コストが上昇してしまう場合が多い。従って、製造コストの低コスト化を実現するために、割込コントローラは、Ｉ／Ｏコントローラ１２に内蔵、または、その近くに配置され、割込コントローラからＣＰＵ１４に対して割込要求信号を発生させる構成が採用される場合が多い。一方、かかる場合、ＣＰＵ１４の割込処理時間が増大し、アクセス時間の長くかかる割込コントローラにＣＰＵ１４がアクセスしている間は、ＣＰＵ１４からのＲＡＭ１６へのアクセスが待たされることになり、トータルスループットを下げる要因になっている。
【００３３】
そこで、本実施形態においては、割込コントローラをメモリコントローラ１３の外に配置し、割込要求信号は、一度、割込コントローラ１３に入力し、後述する割込補助コントローラにてタイミング調整した上で、ＣＰＵ１４へ割込信号を出力する構成を採用する。かかる場合、メモリコントローラ１３内に割込要因を探査するための割込補助コントローラを配置し、ＣＰＵ１４は割込コントローラの状態を読み出すことなく、割込補助コントローラにアクセスすることによって割込要因を認識することができるようにする。これにより、ＣＰＵ１４における割込に対応した処理時間の削減、トータルスループットの向上を実現することを可能にする。また、かかる構成を採用した場合、メモリコントローラ１３の割込補助コントローラの追加に必要となる入出力信号は２本となり、メモリコントローラ１３に割込コントローラを内蔵した場合と比較してコストダウンを実現することも可能になる。
【００３４】
（２）割込時のデータ等の流れ：
図３は、本実施形態における上述した割込機能を実現可能なレーザプリンタ１０の内部構成を示した構成図である。また、図４は、割込発生時の信号の流れを示した模式図である。図においては、Ｉ／Ｏコントローラ１２が配置されている同一基板上に上述した割込コントローラ２０を配置するとともに、メモリコントローラ１３が配置されている同一基板上に上述した割込補助コントローラ２１を配置する。また、ホストインターフェース１１の各インターフェース１１ａ〜１１ｃは、割込が発生した際に、割込原因データを格納するレジスタ１１ａ１〜１１ｃ１が内蔵されており、割込が発生したインターフェース１１ａ〜１１ｃは、割込の原因を特定可能な割込原因データを格納する。ホストインターフェース１１では、インターフェース１１ａ〜１１ｃにて割込が発生すると、何れかのインターフェース１１ａ〜１１ｃにて割込要因が発生したかを特定可能な割込要求信号を割込コントローラ２０に対して出力する。割込コントローラ２０はホストインターフェース１１から割込要求信号を入力すると、この割込要求信号に基づいて当該割込コントローラ２０に内蔵しているレジスタ２０ａに割込発生元を特定可能な割込発生元データを格納する。
【００３５】
割込コントローラ２０はレジスタ２０ａに割込発生元データを格納すると、割込補助コントローラ２１に対して読出要求信号を出力する。割込補助コントローラ２１は、割込コントローラ２０から読出要求信号を入力すると、レジスタ２０ａにアクセスし、同レジスタ２０ａに格納されている割込発生元データを読み出し、当該割込補助コントローラ２１に内蔵しているレジスタ２１ａに格納する。そして、割込補助コントローラ２１はレジスタ２１ａに割込発生元データを格納すると、この割込発生元データに基づきＩ／Ｏコントローラ１２を介して割込要因が発生したインターフェース１１ａ〜１１ｃのレジスタ１１ａ１〜１１ｃ１にアクセスし、このレジスタ１１ａ１〜１１ｃ１に格納されている割込原因データを読み出すとともに、レジスタ２１ａ格納する。割込補助コントローラ２１は、割込原因データを格納すると、ＣＰＵ１４に対して割込信号を出力する。ＣＰＵ１４は割込補助コントローラ２１から割込信号を入力すると、レジスタ２１ａにアクセスし、同レジスタ２１ａに格納されている割込発生元データおよび割込原因データを読み出すとともに、同割込発生元データおよび割込原因データに対応した所定の制御処理を実行する。このように、本実施形態においては、割込コントローラ２０および割込補助コントローラ２１を介在させて、ＣＰＵ１４にてホストインターフェース１１にて発生した割込要因に基づいた割込処理を実行する。
【００３６】
（３）割込時の処理の処理内容：
ここで、上述した割込時の処理の処理内容をフローチャートに基づいて説明する。　　図５は、割込時の処理の概略を示したフローチャートである。
同図において、割込時の処理は、割込コントローラ２０がホストインターフェース１１から入力した割込要求信号に対応して所定の処理を実行する第１フェーズ（ステップＳ２００）と、割込補助コントローラ２１が割込コントローラ２０から入力した読出要求信号に対応して所定の処理を実行する第２フェーズと（ステップＳ３００）、ＣＰＵ１４が割込補助コントローラ２１から入力する割込信号に対応して所定の処理を実行する第３フェーズとから構成される（ステップＳ４００）。
【００３７】
（４）割込コントローラの処理内容：
図６は、ステップＳ２００の第１フェーズにて割込コントローラ２０が実行する処理の処理内容を示したフローチャートである。同図において、割込コントローラ２０は、ホストインターフェース１１の各インターフェース１１ａ〜１１ｃから入力する割込要求信号に基づいてインターフェース１１ａ〜１１ｃの何れかにて割込要因が発生したか否かを判別する（ステップＳ２０５）。インターフェース１１ａ〜１１ｃにて割込要因が発生したと判別した場合は、入力した割込要求信号に基づいて割込要因が発生したインターフェース１１ａ〜１１ｃを特定し、この特定したインターフェース１１ａ〜１１ｃを識別可能な割込発生元データをレジスタ２０ａに格納する（ステップＳ２１０）。レジスタ２０ａへの割込発生元データの格納が完了すると、読出要求信号をオンにすることによって、割込要因が発生するとともに、その割込要因が発生したインターフェース１１ａ〜１１ｃを特定可能な割込発生元データをレジスタ２０ａに格納した旨を割込補助コントローラ２１に通知する（ステップＳ２１５）。
【００３８】
この通知を入力した割込補助コントローラ２１は、所定の処理を実行すると割込信号をオンにすることによって、インターフェース１１ａ〜１１ｃの何れかににおいて割込要因が発生していることをＣＰＵ１４に対して通知する。そして、ＣＰＵ１４は所定の制御処理を実行する。すると、ＣＰＵ１４の制御に基づいてインターフェース１１ａ〜１１ｃは割込要求信号をオフにする。従って、割込コントローラ２０では、割込要求信号がオフになるか否かを判別し（ステップＳ２２０）、割込要求信号がオフになったと判別すると、読出要求信号をオフにし、一連の処理を終了させる（ステップＳ２２５）。
【００３９】
（５）割込補助コントローラの処理内容：
図７は、ステップＳ３００の第２フェーズにて割込補助コントローラ２１が実行する処理の処理内容を示したフローチャートである。同図において、割込コントローラ２０から出力される読出要求信号がオンに遷移したか否かを判別し（ステップＳ３００）、この読出要求信号がオンに遷移したと判別した場合は、インターフェース１１ａ〜１１ｃの何れかにおいて割込要因が発生したと判断し、割込コントローラ２０のレジスタ２０ａにアクセスし、同レジスタ２０ａに格納されている割込発生元データを読み出すとともに（ステップＳ３０５）、この割込発生元データを解析し、割込要因が発生したインターフェース１１ａ〜１１ｃを特定する。
【００４０】
そして、Ｉ／Ｏコントローラ１２を介して割込要因が発生したインターフェース１１ａ〜１１ｃのレジスタ１１ａ１〜１１ｃ１にアクセスし、割込原因データを読み出すとともに（ステップＳ３１０）、ステップＳ３０５および３１０にて読み出した割込発生元データおよび割込原因データを内蔵するレジスタ２１ａに格納する（ステップＳ３１５）。そして、割込信号をオンにして、ＣＰＵ１４に割込要因の発生を通知する（ステップＳ３２０）。ＣＰＵ１４は所定の処理を実行すると、割込信号解除要求信号をオンにするため、この割込信号解除要求信号がオンに遷移したか否かを判別し（ステップＳ３２５）、割込信号解除要求信号がオンに遷移したと判別すると、割込信号をオフにし、一連の処理を終了させる（ステップＳ３３０）。
【００４１】
（６）ＣＰＵの処理内容：
図８は、ステップＳ４００の第３フェーズにてＣＰＵ１４が実行する処理の処理内容を示したフローチャートである。
同図において、割込補助コントローラ２１から出力される割込信号がオンに遷移したか否かを判別し（ステップＳ４０５）、この割込信号がオンに遷移したと判別した場合は、割込補助コントローラ２１のレジスタ２１ａにアクセスし、同レジスタ２１ａに格納されている割込発生元データおよび割込原因データをＲＡＭ１６に読み出す（ステップＳ４１０）。そして、割込要因が発生したインターフェース１１ａ〜１１ｃがオンにしている割込要求信号および割込補助コントローラ２１がオンにしている割込信号をオフに遷移させるために、割込信号解除要求信号をオンにする（ステップＳ４１５）。ここで、割込解除コントローラ２１が割込信号をオフに遷移させたか否かを判別し（ステップＳ４２０）、割込信号がオフに遷移したと判別した場合は、割込信号解除要求信号をオフにする（ステップＳ４２５）。そして、ＲＡＭ１６に格納した割込発生元データおよび割込原因データに基づいて所定の制御処理を実行することによって、割込要因に対応した割込機能を実現する（ステップＳ４３０）。
【００４２】
上述してきた実施形態においては、インターフェース１１ａ〜１１ｃにて割込要因が発生した場合、ＣＰＵ１４は割込補助コントローラ２１のレジスタ２１ａにアクセスすることによって、割込発生元データおよび割込原因データを取得でき、この割込発生元データおよび割込原因データに基づいた所定の制御処理を実行することができる。従って、ＣＰＵ１４はＩ／Ｏコントローラ１２を介してホストインターフェース１１にアクセスする必要がなくなるため、ＣＰＵ１４のスループットを向上させることが可能になる。
【００４３】
上述した実施形態においては、ホストインターフェース１１の各インターフェース１１ａ〜１１ｃに何れかにおいて割込要因が発生した場合の処理について説明した。この各インターフェース１１ａ〜１１ｃにて発生する割込要因の具体的な一例を次に示す。
（ａ）ホストコンピュータ３０からデータ入力があったことを指示するための割込要因
（ｂ）入力したデータのＤＭＡ転送（ホストインターフェース１１〜ＲＡＭ１６）開始を指示するための割込要因
（ｃ）入力したデータのＤＭＡ転送（ホストインターフェース１１〜ＲＡＭ１６）終了を指示するための割込要因
（ｅ）各インターフェース１１ａ〜１１ｃのタイミングが特定の状態になったことを指示するための割込要因
（ｆ）受信バッファの空き状態が特定の状態になったことを指示するための割込要因
【００４４】
また、割込要因が発生する機器ブロックはインターフェース１１に限定されるものではなく、メモリコントローラ１３や画像処理回路１８においても割込要因は発生する。かかる場合は、上述した実施形態におけるホストインターフェース１１の部分をメモリコントローラ１３や画像処理回路１８に置き換えた処理が行われることになる。このメモリコントローラ１３や画像処理回路１８にて発生する割込要因の具体例な一例を次に示す。
（ｇ）ＤＭＡ転送（ＲＡＭ１６間、ＲＡＭ１６〜画像処理回路１８）開始を指示する割込要因
（ｈ）データ圧縮・伸長の開始を指示する割込要因
（ｉ）データ圧縮・伸長の終了を指示する割込要因
（ｊ）画像処理開始および終了を指示する割込要因
（ｋ）ＲＡＭ１６のバスはＣＰＵ１４のバスが特定の状態になったことを指示する割込要因
（ｌ）メモリコントローラ１３あるいはＩ／Ｏコントローラ１２が内蔵するタイマーや、リアルタイムクロックからのタイマー割込要因
【００４５】
（８）まとめ：
このように、割込発生元データおよび割込原因データを割込補助コントローラ２１のレジスタ２１ａに格納させることによって、インターフェース１１ａ〜１１ｃにて割込要因が発生した場合、ＣＰＵ１４は割込補助コントローラ２１のレジスタ２１ａにアクセスし、この格納された割込発生元データおよび割込原因データを取得し、この割込発生元データおよび割込原因データに基づいた所定の制御処理を実行する。従って、同ＣＰＵ１４は、割込原因を探索するためにＩ／Ｏコントローラ１２を介してホストインターフェース１１にアクセスする必要がなくなるので、ＣＰＵ１４のスループットを向上させることが可能になる。
【図面の簡単な説明】
【図１】本発明にかかるコントローラが適用される印刷装置の一実施形態であるレーザプリンタの構成を示す構成図である。
【図２】印刷出力処理の処理内容を示したフローチャートである。
【図３】レーザプリンタの内部構成を示した構成図である。
【図４】割込発生時のデータ等の流れを示した模式図である。
【図５】割込処理の処理内容を示したフローチャートである。
【図６】割込コントローラにて実行される処理の処理内容を示したフローチャートである。
【図７】割込補助コントローラにて実行される処理の処理内容を示したフローチャートである。
【図８】ＣＰＵにて実行される処理の処理内容を示したフローチャートである。
【符号の説明】
１０…レーザプリンタ
１１…ホストインターフェース
１１ａ…ＵＳＢインターフェース
１１ａ１…レジスタ
１１ｂ…パラレルインターフェース
１１ｂ１…レジスタ
１１ｃ…シリアルインターフェース
１１ｃ１…レジスタ
１２…Ｉ／Ｏコントローラ
１３…メモリコントローラ
１４…ＣＰＵ
１５…ＲＯＭ
１６…ＲＡＭ
１７…バス
１８…画像処理回路
１８ａ…データ伸長回路
１８ｂ…ビデオコントローラ
１８ｃ…後処理回路
１９…印刷エンジン
２０…割込コントローラ
２０ａ…レジスタ
２１…割込補助コントローラ
２１ａ…レジスタ
３０…ホストコンピュータ
【図１】
2004030171.tif 000003
【図２】
2004030171.tif 000004
【図３】
2004030171.tif 000005
【図４】
2004030171.tif 000006
【図５】
2004030171.tif 000007
【図６】
2004030171.tif 000008
【図７】
2004030171.tif 000009
【図８】
2004030171.tif 000010