(57)【要約】【課題】ターゲットにおける処理が予測通りに行われないことがあっても、処理の遅延や無駄な処理の発生を抑制することを可能にする。【解決手段】画像処理装置１００は、ホスト１０と、ターゲット２０を備える。ホスト１０は、画像処理装置１００を制御するために種々の処理を実行するとともに、ターゲット２０に特定の画像処理の実行を要求する。ターゲット２０は、ホスト１０から要求された画像処理を実行し、その終了後に割込信号をホスト１０に送信する。ホスト１０は、ターゲット２０に画像処理の実行を要求するとき、当該画像処理のターゲット２０における所要時間を算出する。そして、ホスト１０は、ターゲット２０に画像処理の実行を要求してから所要時間が経過すると、ホスト１０において実行中の処理をメモリ１２に退避させ、割込信号が送信されるのを待機する。【選択図】図１
2008112274.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を実行可能な演算処理装置であって、当該処理を終了すると割込信号を送信する演算処理装置と接続する接続手段と、
自装置または前記演算処理装置において実行される処理の内容を特定する処理種別情報を取得する取得手段と、
前記取得手段により取得された処理種別情報によって特定される処理が、前記演算処理装置において実行される前記所定の処理である場合に、前記接続手段を介して前記演算処理装置に当該処理の実行を要求する処理要求手段と、
前記演算処理装置が前記処理要求手段により要求された前記所定の処理を開始してから終了するまでに要する所要時間を算出する算出手段と、
前記接続手段を介して前記演算処理装置から受信した割込信号または前記取得手段により取得された処理種別情報に基づいて、自装置において実行すべき処理を実行する処理実行手段と
を備え、
前記処理実行手段は、
前記処理要求手段により前記演算処理装置に前記所定の処理の実行が要求され、かつ、自装置において処理を実行中である場合に、前記処理要求手段が当該所定の処理の実行を要求してから前記算出手段により算出された所要時間が経過するまでの間に前記実行中の処理を中断し、その後、前記接続手段を介して割込信号を受信すると、前記演算処理装置が実行した前記所定の処理に応じた処理を実行する
ことを特徴とする制御装置。
【請求項２】
前記演算処理装置が、複数の前記所定の処理を実行可能であって、各々の前記所定の処理を構成する複数の演算処理を実行する複数の内部プロセサと、前記複数の内部プロセサの状態を示す情報を各々の内部プロセサに対応する記憶領域に記憶するステータスレジスタとを備える場合において、
前記処理実行手段は、
前記接続手段を介して割込信号を受信すると、当該割込信号の契機となった前記所定の処理を前記算出手段により当該処理について算出された所要時間に基づいて特定する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記処理実行手段は、
前記ステータスレジスタの記憶領域のうち、前記特定された所定の処理を実行する際に用いられた前記内部プロセサの状態を示す情報が記憶された記憶領域を特定して参照する
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記処理実行手段は、
前記所定の処理である第１の処理と第２の処理とを示す処理種別情報が前記取得手段により取得され、かつ、前記第１の処理を前記割込信号の契機となった処理として特定した場合、当該特定後であって前記演算処理装置が前記第２の処理を実行中である期間に、前記ステータスレジスタの記憶領域のうち前記第１の処理を実行する際に用いられた前記内部プロセサの状態を示す情報が記憶された記憶領域を参照する
ことを特徴とする請求項２に記載の制御装置。
【請求項５】
所定の処理を実行可能な演算処理装置であって、当該処理を終了すると割込信号を送信する演算処理装置と接続するコンピュータに、
実行される処理の内容を特定する処理種別情報を取得する取得機能と、
前記取得機能により取得された処理種別情報によって特定される処理が前記所定の処理である場合に、前記演算処理装置と接続する接続手段を介して、当該演算処理装置に当該処理の実行を要求する処理要求機能と、
前記演算処理装置が前記処理要求機能により要求された前記所定の処理を開始してから終了するまでに要する所要時間を算出する算出機能と、
前記接続手段を介して前記演算処理装置から受信した割込信号または前記取得機能により取得された処理種別情報に基づいて、自装置において実行すべき処理を実行する処理実行機能であって、前記処理要求機能により前記演算処理装置に前記所定の処理の実行が要求され、かつ、自装置において処理を実行中である場合に、前記処理要求機能が当該所定の処理の実行を要求してから前記算出機能により算出された所要時間が経過するまでの間に前記実行中の処理を中断し、その後、前記接続手段を介して割込信号を受信すると、前記演算処理装置が実行した前記所定の処理に応じた処理を実行する処理実行機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置およびプログラムに関する。
【背景技術】
【０００２】
例えば、複雑な画像処理を実行する画像処理装置などにおいては、装置全体の動作を制御する演算処理装置（ＣＰＵ等）に加えて、特定の画像処理に特化した演算処理装置（ＤＳＰ等）を設ける構成を採用し、全体的な処理の効率化を図ることがある。以下では、この構成における前者の演算処理装置を「ホスト」といい、後者の演算処理装置を「ターゲット」という。
【０００３】
ホストとターゲットとを用いて処理を行う場合に、ホストがターゲットの状態を知るための方法としては、割込とポーリングとがある（例えば、特許文献１および２参照）。ホストは、割込ハンドラを起動することによって割込への対応を行うが、割込ハンドラの起動に伴って多少のオーバーヘッド（時間的負荷）を生じる。それゆえ、ターゲットに要求する処理が何度も発生するような場合には、割込よりもポーリングを用いたほうが望ましいといえる。
【０００４】
ポーリングを行うときには、あらかじめターゲットが処理を行うために要する時間をホスト側で予測し、予測した時間に基づいてターゲットに問い合わせることがある。このようにすれば、ホストにおいて時間を無駄にすることなくポーリングに対応することができる。
【特許文献１】特開平６−１９８２３号公報
【特許文献２】特開平６−１７５８６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ターゲットにおける処理は必ずしも予測通り行われるとは限らず、ノイズ等の予期せぬ遅延要因によって予測よりも多くの時間を要してしまうことがある。このような場合に、予測した時間に基づいてターゲットに問い合わせたのでは、所期する情報が１回のポーリングによっては得られず、ポーリングを繰り返し行わなければならないなどの不都合を生じる。そうすると、ホストおよびターゲットの双方において処理の遅延や無駄な処理の発生が生じ、処理効率が低下する。
【０００６】
本発明はかかる事情に鑑みてなされたものであり、その目的は、ターゲットにおける処理が予測通りに行われないことがあっても、処理の遅延や無駄な処理の発生を抑制することを可能にする技術を提供することにある。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、本発明は、所定の処理を実行可能な演算処理装置であって、当該処理を終了すると割込信号を送信する演算処理装置と接続する接続手段と、自装置または前記演算処理装置において実行される処理の内容を特定する処理種別情報を取得する取得手段と、前記取得手段により取得された処理種別情報によって特定される処理が、前記演算処理装置において実行される前記所定の処理である場合に、前記接続手段を介して前記演算処理装置に当該処理の実行を要求する処理要求手段と、前記演算処理装置が前記処理要求手段により要求された前記所定の処理を開始してから終了するまでに要する所要時間を算出する算出手段と、前記接続手段を介して前記演算処理装置から受信した割込信号または前記取得手段により取得された処理種別情報に基づいて、自装置において実行すべき処理を実行する処理実行手段とを備え、前記処理実行手段は、前記処理要求手段により前記演算処理装置に前記所定の処理の実行が要求され、かつ、自装置において処理を実行中である場合に、前記処理要求手段が当該所定の処理の実行を要求してから前記算出手段により算出された所要時間が経過するまでの間に前記実行中の処理を中断し、その後、前記接続手段を介して割込信号を受信すると、前記演算処理装置が実行した前記所定の処理に応じた処理を実行する制御装置を提供する。
【０００８】
また、本発明は、前記演算処理装置が、複数の前記所定の処理を実行可能であって、各々の前記所定の処理を構成する複数の演算処理を実行する複数の内部プロセサと、前記複数の内部プロセサの状態を示す情報を各々の内部プロセサに対応する記憶領域に記憶するステータスレジスタとを備える場合において、前記処理実行手段は、前記接続手段を介して割込信号を受信すると、当該割込信号の契機となった前記所定の処理を前記算出手段により当該処理について算出された所要時間に基づいて特定する構成であってもよい。
【０００９】
また、かかる構成において、前記処理実行手段は、前記ステータスレジスタの記憶領域のうち、前記特定された所定の処理を実行する際に用いられた前記内部プロセサの状態を示す情報が記憶された記憶領域を特定して参照してもよい。
あるいは、前記処理実行手段は、前記所定の処理である第１の処理と第２の処理とを示す処理種別情報が前記取得手段により取得され、かつ、前記第１の処理を前記割込信号の契機となった処理として特定した場合、当該特定後であって前記演算処理装置が前記第２の処理を実行中である期間に、前記ステータスレジスタの記憶領域のうち前記第１の処理を実行する際に用いられた前記内部プロセサの状態を示す情報が記憶された記憶領域を参照してもよい。
【００１０】
また、本発明は、上述した制御装置の機能を実現するためのプログラムとしても特定され得る。例えば、本発明は、所定の処理を実行可能な演算処理装置であって、当該処理を終了すると割込信号を送信する演算処理装置と接続するコンピュータに、実行される処理の内容を特定する処理種別情報を取得する取得機能と、前記取得機能により取得された処理種別情報によって特定される処理が前記所定の処理である場合に、前記演算処理装置と接続する接続手段を介して、当該演算処理装置に当該処理の実行を要求する処理要求機能と、前記演算処理装置が前記処理要求機能により要求された前記所定の処理を開始してから終了するまでに要する所要時間を算出する算出機能と、前記接続手段を介して前記演算処理装置から受信した割込信号または前記取得機能により取得された処理種別情報に基づいて、自装置において実行すべき処理を実行する処理実行機能であって、前記処理要求機能により前記演算処理装置に前記所定の処理の実行が要求され、かつ、自装置において処理を実行中である場合に、前記処理要求機能が当該所定の処理の実行を要求してから前記算出機能により算出された所要時間が経過するまでの間に前記実行中の処理を中断し、その後、前記接続手段を介して割込信号を受信すると、前記演算処理装置が実行した前記所定の処理に応じた処理を実行する処理実行機能とを実現させるためのプログラムとしても特定され得る。
【発明の効果】
【００１１】
以上のような本発明により、ターゲットにおける処理が予測通りに行われないことがあっても、処理の遅延や無駄な処理の発生を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら説明する。
［構成］
図１は、本発明の一実施形態である画像処理装置１００の構成を示すブロック図である。この画像処理装置１００は、例えば、プリンタや複写機等の画像形成装置の一部を構成するものである。なお、画像形成装置は、ユーザが指示を入力するための入力装置や、ネットワークを介してコンピュータ装置と接続するための通信インタフェース等を備えている。画像処理装置１００の構成は、同図に示すように、装置全体の動作を制御するホスト１０と、特定の画像処理を実行するターゲット２０とに大別される。
【００１３】
ホスト１０は、コントローラ１１と、メモリ１２と、ターゲットＩＦ（InterFace）１３と、入出力ＩＦ１４とを備える。コントローラ１１は、ＣＰＵ（Central Processing Unit）等の演算処理装置、ＲＯＭ（Read Only Memory）、発振器およびタイマを備える。コントローラ１１は、ＲＯＭに記憶された所定のプログラムに基づいて、入力装置や通信インタフェースを介して要求された処理を実行することにより、画像形成装置全体の動作を制御する。また、コントローラ１１は、タイマを用いた時間計測機能を実現する。タイマは、演算処理装置から指示された所定の時間が経過（すなわちタイムアウト）すると、これを演算処理装置に通知するように構成されている。メモリ１２は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）やＤＤＲ（Double Data Rate）−ＳＤＲＡＭ等の記憶装置を備え、コントローラ１１のワークエリアとして機能する。ターゲットＩＦ１３は、コントローラ１１がターゲット２０とデータのやりとりを行うためのインタフェースであり、複数の信号線によりターゲット２０と接続する。なお、ターゲットＩＦ１３と接続する複数の信号線には、ターゲット２０からホスト１０に割込信号を送信するための信号線と、ホスト１０からターゲット２０に画像処理の要求（コマンド）を送信するための信号線と、ホスト１０とターゲット２０との間で画像処理に関するデータを送受信するための信号線とが含まれる。入出力ＩＦ１４は、入出力装置や通信インタフェースからの要求を表す情報や画像データなどを取得したり、あるいは、情報や画像データを供給するためのインタフェースである。入力装置や通信インタフェースから送信される情報は、画像処理装置１００において実行すべき処理がどのようなものであるかを特定するものである。そこで、この情報のことを、以下では「処理種別情報」という。
【００１４】
なお、画像処理装置１００において実行すべき処理のそれぞれには、所定の優先度が割り当てられている。ホスト１０は、優先度の高い処理を優先的に実行するように構成されている。各処理の優先度は、処理種別情報から一意的に特定可能である。例えば、各処理の優先度は、処理種別情報と関連付けられてホスト１０の内部にあらかじめ記憶されていてもよいし、処理種別情報に含まれる態様であってもよい。
【００１５】
ターゲット２０は、プロセサ２１と、メモリ２２と、ホストＩＦ２３とを備える。プロセサ２１は、ＤＳＰ（Digital Signal Processor）やＡＳＩＣ（Application Specific Integrated Circuit ）等の演算処理装置や発振器を備え、供給されるデータに基づいて所定の画像処理を実行する。なお、プロセサ２１は、複数の異なる画像処理を実行可能であるとともに、複数の演算処理を並列的に実行可能である。メモリ２２は、ＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭ等の記憶装置を備え、プロセサ２１のワークエリアとして機能する。ホストＩＦ２３は、プロセサ２１がホスト１０とデータのやりとりを行うためのインタフェースであり、上述した複数の信号線によりホスト１０と接続する。なお、プロセサ２１は、ホスト１０から要求された画像処理を終了すると、ホストＩＦ２３を介して割込信号を送信するように構成されている。
【００１６】
ここで、図２を参照してプロセサ２１の内部構成を説明する。同図に示すように、プロセサ２１は、複数の内部プロセサＰ１、Ｐ１１、Ｐ１２、…、Ｐ１ｍ、Ｐ２、Ｐ３、…、Ｐｎ（ただし、ｍおよびｎは任意の自然数）と、複数のステータスレジスタＲ０、Ｒ１、Ｒ１１、Ｒ１２、…、Ｒ１ｍ、Ｒ２、Ｒ３、…、Ｒｎとを備える。個々の内部プロセサは、１または複数の演算器を有し、それぞれが決められた演算処理を実行する。また、個々のステータスレジスタは、所定のビット数のレジスタであり、内部プロセサのステータス（状態）、すなわち、要求された演算処理が内部プロセサによって正常に実行されたか否かを表す情報を記憶する。
【００１７】
ステータスレジスタは、あるレジスタの表す値が「１」の場合、当該レジスタに対応する演算処理が正常に終了したことを表しており、あるレジスタの表す値が「２」の場合、当該レジスタに対応する演算処理が正常に終了していない（すなわち異常終了した）ことを表している。また、ステータスレジスタは、あるレジスタの表す値が「０」の場合、当該レジスタに対応する内部プロセサが演算処理を要求されていない状態（アイドル状態）であることを表しており、あるレジスタの表す値が「３」の場合、当該レジスタに対応する内部プロセサが演算処理を実行中の状態（ビジー状態）であることを表している。つまり、この場合、ステータスレジスタは、２ビットの記憶領域により１つの内部プロセサのステータスを表している。
【００１８】
内部プロセサＰ１、Ｐ１１、Ｐ１２、…、Ｐ１ｍ、Ｐ２、Ｐ３、…、Ｐｎは、階層的な構造となるような関連を有している。図２において、内部プロセサＰ１、Ｐ２、Ｐ３、…、Ｐｎは上層側に相当し、内部プロセサＰ１１、Ｐ１２、…、Ｐ１ｍは、内部プロセサＰ１に対して下層側に相当する。なお、同図においては図示を省略しているが、内部プロセサＰ２、Ｐ３、…、Ｐｎについても、下層側に相当する内部プロセサが内部プロセサＰ１のそれと同様に関連付けられている。しかし、内部プロセサＰ２、Ｐ３、…、Ｐｎに関連付けられた内部プロセサの数は、ｍ個に限らない。また、これも特に図示しないが、内部プロセサＰ１１、Ｐ１２、…、Ｐ１ｍに対しても、より下層側の内部プロセサが存在する構成であってもよい。
【００１９】
ステータスレジスタＲ０は、内部プロセサＰ１、Ｐ２、Ｐ３、…、Ｐｎに対応するものである。すなわち、ステータスレジスタＲ０は、少なくとも２ｎビット分の記憶領域を有し、各記憶領域が内部プロセサＰ１、Ｐ２、Ｐ３、…、Ｐｎのステータスを表す。また、ステータスレジスタＲ１は、内部プロセサＰ１１、Ｐ１２、…、Ｐ１ｍに対応する２ｍビット分の記憶領域を有し、各記憶領域が内部プロセサＰ１１、Ｐ１２、…、Ｐ１ｍの状態を表す。なお、ステータスレジスタＲ２、Ｒ３、…、Ｒｎも、上述したステータスレジスタＲ１と同様の構造となっている。
【００２０】
なお、ターゲット２０が実行する画像処理には、その開始から終了までに要する時間（所要時間）が予測可能な処理とそうでない処理とがあるが、本実施形態において対象とするのは、前者とする。所要時間が予測不可能な画像処理については、通常の割込処理を行えばよい。所要時間が予測可能な処理には、例えば、入力された画像データのピクセル数に対して出力する画像データのピクセル数があらかじめ定まっている画像処理がある。このような画像処理の例としては、いわゆるネガポジ反転処理やサブサンプリング処理（間引き処理）などがある。ここにおいて、ネガポジ反転処理とは、例えば、入力された画像データの各ピクセルが８ビット（すなわち２５６階調）の階調値Ｎで表される場合に、その階調値を全て「２５５−Ｎ」に変換する処理のことである。また、サブサンプリング処理とは、画像データのピクセル数を所定の割合で間引く処理のことである。このような画像処理の場合、画像データのピクセル数やピクセル毎の処理に要するクロックサイクル数に基づいて、その所要時間を算出することが可能である。
【００２１】
［動作］
上述した構成のもと、画像処理装置１００は、種々の処理を実行する。画像処理装置１００においては、ホスト１０が主体となって処理を実行するが、一部の処理については、ホスト１０に代わってターゲット２０が実行するようになっている。このときの動作を概要は以下の通りである。すなわち、画像処理装置１００のホスト１０は、まず、入力装置や通信インタフェースから処理種別情報を入力ＩＦ１４を介して取得し、その情報に基づいて、実行すべき処理の内容を特定する。そして、ホスト１０は、特定した処理のうち、自らが実行可能な処理については自らで実行し、ターゲット２０が実行可能な画像処理についてはターゲット２０に実行させる。ターゲット２０における処理が終了したら、ホスト１０は、その処理結果に応じた処理をさらに実行する。
【００２２】
このような一連の処理を効率良く実行するために、ホスト１０には、自らが実行可能な処理については自らで実行しつつ、ターゲット２０の状態を適宜判断し、必要に応じてターゲット２０に画像処理を実行させることが求められる。以下においては、画像処理装置１００が上述した一連の処理を効率良く実行するための動作について、３つの動作例を挙げて説明する。なお、以下に示す動作例においては、処理種別情報が供給されるときに、ホスト１０において何らかの処理が実行されている状況を前提として説明する。
【００２３】
（１）動作例１
図３は、本実施形態の画像処理装置１００の第１の動作例を示すフローチャートである。以下、同図に沿って説明する。まず、画像処理装置１００において、入力装置や通信インタフェースから何らかの要求が入力されると、ホスト１０のコントローラ１１は、この入力に対応する割込ハンドラを起動することにより、実行中の処理を中断し、その処理内容をメモリ１２の所定領域に保持する（ステップＳａ１）。すなわち、コントローラ１１は、実行中の処理をメモリ１２に退避させ、後にこの処理を再開できるようにしておく。
【００２４】
次に、コントローラ１１は、入力された要求に応じた処理種別情報を取得する（ステップＳａ２）。処理種別情報を取得したら、コントローラ１１は、処理種別情報により特定される処理がターゲット２０の実行可能な画像処理であるか否かを判断する（ステップＳａ３）。処理種別情報により特定される処理がターゲット２０の実行可能な画像処理でない場合（ステップＳａ３：ＮＯ）、コントローラ１１は、この処理をホスト１０で実行すべき処理であると特定し、その優先度に応じた処理を実行する（ステップＳａ１３）。ここで、コントローラ１１は、処理種別情報により特定された処理が退避中の処理よりも優先度の高い処理である場合は、当該特定された処理を実行し、処理種別情報により特定された処理が退避中の処理よりも優先度の低い処理である場合は、退避中の処理を再開し、終了した後に当該特定された処理を実行する。なお、このステップにおけるコントローラ１１の動作は、通常の割込処理のそれと同様であるため、詳細な説明は省略する。
【００２５】
一方、処理種別情報により特定される処理がターゲット２０の実行可能な画像処理である場合（ステップＳａ３：ＹＥＳ）、コントローラ１１は、その画像処理の所要時間を算出する（ステップＳａ４）。なお、このときコントローラ１１が算出する所要時間は、予測値に過ぎない。そのため、ターゲット２０は、要求された画像処理を実行するに際し、予期せぬ遅延要因によって所要時間よりも多くの時間を要してしまうこともある。
【００２６】
所要時間を算出したら、コントローラ１１は、この所要時間に基づいてタイマに時間の計測を開始させる（ステップＳａ５）。続いて、コントローラ１１は、取得した処理種別情報により特定される画像処理の実行をターゲット２０に要求する（ステップＳａ６）。そして、ターゲット２０に要求を送信したら、コントローラ１１は、メモリ１２に退避させた処理に関するデータを読み出し、退避させていた処理を再開する（ステップＳａ７）。
【００２７】
コントローラ１１が処理を実行していると、やがて、ターゲット２０における画像処理が終了する。上述したように、タイマは、所要時間に達するとこれを通知するように構成されている。そのため、コントローラ１１は、ターゲット２０における処理の終了前後において、タイマからのタイムアウトの通知の有無を判断する（ステップＳａ８）。そして、タイマがタイムアウトした場合、すなわち、タイマが計測を開始してからの時間が上述した所要時間と一致した場合（ステップＳａ８：ＹＥＳ）、コントローラ１１は、実行中の処理を再び中断し、その処理内容をメモリ１２の所定領域に保持する（ステップＳａ９）。
【００２８】
ここで、コントローラ１１は、ターゲット２０から送信される割込信号の有無を判断する（ステップＳａ１０）。この間、コントローラ１１は、その他の処理を実行せずに待機している。そして、ターゲットＩＦ１３を介してターゲット２０からの割込信号を受信したら（ステップＳａ１０：ＹＥＳ）、コントローラ１１は、この割込信号に対応する割込ハンドラを起動し、ターゲット２０において実行された画像処理に応じた所定の処理を実行する（ステップＳａ１１）。このとき実行される処理のことを、以下では「割込対応処理」という。
【００２９】
ここで、割込対応処理について説明する。割込対応処理においては、コントローラ１１はまず、ターゲット２０のステータスレジスタを参照する。なお、その後の処理については、ターゲット２０が実行した画像処理やその処理結果に応じて異なる。例えば、コントローラ１１は、参照したステータスレジスタが「２」であった場合、すなわち処理が異常終了した場合には、ターゲット２０に同様の処理を再度実行させる。また、コントローラ１１は、参照したステータスレジスタが「１」であった場合、すなわち処理が正常に終了した場合には、ターゲット２０の処理結果を表すデータを受信し、そのデータにさらに演算処理を施すこともある。また、画像処理の種類によっては、ステータスレジスタを参照した後に処理を必要としない場合もある。
【００３０】
続いて、コントローラ１１がステータスレジスタを参照する手順を説明する。コントローラ１１は、ターゲット２０から割込信号を受信すると、ターゲット２０において割込を必要とする何らかのイベントが発生したと判断することができる。ホスト１０とターゲット２０とを接続する信号線のうち、割込信号のために割り当てられた信号線は、通常１本である。そのため、このような構成においては、コントローラ１１は、単に割込信号を受信しただけでは、ターゲット２０において何らかのイベントが発生したということしか判断できず、具体的にどのような画像処理が実行されたのかなどを判断することはできない。そこで、コントローラ１１は、プロセサ２１のステータスレジスタを参照し、どの内部プロセサにおいて演算処理が実行されたかを特定することにより、割込信号の契機となった画像処理を特定している。所定の画像処理を実行するために必要な内部プロセサはあらかじめ決められているので、コントローラ１１は、その内部プロセサに対応したステータスレジスタを参照すればよい。
【００３１】
プロセサ２１が図２に示したような階層的な構造を有している場合、コントローラ１１は、上層のステータスレジスタから順番に参照していき、目的とする下層のステータスレジスタの値を特定する。例えば、図２に例示した構成において、内部プロセサＰ１１において演算処理が正常に実行され、コントローラ１１がその状態を判断しようとする場合を考える。なお、この場合において、内部プロセサＰ２、…、Ｐｎは、いずれも動作しないものとする。このような場合には、ステータスレジスタＲ０は、内部プロセサＰ１に対応するレジスタの値のみが「１（正常終了）」となっており、その他の内部プロセサＰ２、…、Ｐｎに対応するレジスタの値は全て「０（アイドル状態）」となっている。また、ステータスレジスタＲ１は、内部プロセサＰ１１に対応するレジスタの値が「１」となっている。
【００３２】
割込信号に対応する画像処理を特定するために、コントローラ１１は、まず、上層の内部プロセサに対応するステータスレジスタ、すなわちステータスレジスタＲ０を参照し、値が「１」となっているレジスタを特定する。続いて、コントローラ１１は、値が「１」となっているレジスタに対応する内部プロセサの下層側に相当する内部プロセサのステータスレジスタを参照する。上述した場合であれば、内部プロセサＰ１に対応するレジスタの値が「１」となっているので、コントローラ１１は、次にステータスレジスタＲ１を参照することとなる。
【００３３】
ここで、図３の説明に戻る。コントローラ１１は、上述のようにしてステータスレジスタを参照し、割込対応処理を実行する。そして、この割込対応処理が終了したら、コントローラ１１は、退避させた処理に関するデータをメモリ１２から読み出し、その処理を再開する（ステップＳａ１２）。
【００３４】
このように動作することにより、画像処理装置１００は、ターゲット２０が予測通りに画像処理を終えた場合のみならず、予測より多くの時間を要した場合においても、割込対応処理を遅滞なく開始することができる。そのため、画像処理装置１００は、ターゲット２０において予期せぬ遅延が生じたとしても、ターゲット２０からの割込信号に即座に対応し、一連の処理を効率良く実行することが可能となる。画像処理装置１００を本動作例のように動作させた場合、コントローラ１１は、ターゲット２０からの割込信号を受信する前に実行中の処理を退避させているので、割込信号を受信してから退避を行うような構成に比べて、割込対応処理をより迅速に行うことが可能となる。また、画像処理装置１００を本動作例のように動作させた場合、ターゲット２０において予期せぬ遅延が生じた場合であっても、コントローラ１１は何もせずに待機するので、コントローラ１１における無駄な処理（ポーリング等）の発生を抑制することが可能となる。
【００３５】
（２）動作例２
続いて、本実施形態の画像処理装置１００の第２の動作例について、図４のフローチャートを参照して説明する。本動作例は、ターゲット２０に対して複数の画像処理の実行要求が連続的に送信されるような場合に特に適した動作例である。なお、本動作例においては、図４に示すように、上述した動作例１と同様の処理を行うステップが存在する。以下では、このようなステップについては、その説明を適宜省略する。
【００３６】
本動作例におけるステップＳｂ１〜Ｓｂ１０およびＳｂ１５の処理は、動作例１におけるステップＳａ１〜Ｓａ１０およびＳａ１３の処理と概ね同様である。ただし、本動作例においては、ステップＳｂ２において、それぞれが異なる内部プロセサにより実行される２つの画像処理を示す処理種別情報が取得されるとする。つまり、本動作例において、コントローラ１１は、それぞれの画像処理について所要時間を算出し（ステップＳｂ４）、処理の実行の要求（ステップＳｂ６）などを行う。なお、以下においては、処理種別情報により特定される２つの画像処理のことを、それぞれ「第１の画像処理」、「第２の画像処理」と称して区別することとする。また、説明の便宜上、第２の画像処理の所要時間は第１の画像処理の所要時間よりも長いとする。
【００３７】
コントローラ１１は、ステップＳｂ１０において割込信号を受信すると、その割込信号の契機となった画像処理を特定する（ステップＳｂ１１）。このとき、コントローラ１１は、割込信号を受信したタイミングと、ステップＳｂ４において算出した所要時間とに基づいて、割込信号の契機となった画像処理を特定する。例えば、コントローラ１１は、ステップＳｂ６においてターゲット２０に画像処理を要求してからステップＳｂ１０において割込信号を受信するまでの時間を、ステップＳｂ４において算出した第１および第２の画像処理の所要時間のそれぞれと比較し、所要時間との差がより小さい方の画像処理を割込信号の契機となった画像処理として特定する。上述したように、ここでは、第２の画像処理の所要時間の方が第１の画像処理の所要時間よりも長いとしているから、第１の画像処理が先に特定されることとなる。
【００３８】
このようにして割込信号の契機となった画像処理を特定したら、コントローラ１１は、割込対応処理を実行する（ステップＳｂ１２）。本動作例の割込対応処理は、上述した動作例１の割込対応処理と異なる。本動作例において、コントローラ１１は、ステップＳｂ１１において特定された画像処理に基づいて、参照すべきステータスレジスタを特定する。コントローラ１１は、割込信号の契機となった画像処理を既に特定しているので、この画像処理を実行するために用いられる内部プロセサを特定することができる。そのため、コントローラ１１は、ステータスレジスタを階層的に順番に参照しなくとも、参照すべきステータスレジスタを特定することができるので、このステータスレジスタを直接参照する。そして、コントローラ１１は、必要に応じて、上述した動作例１と同様にその後の処理を実行する。
【００３９】
割込対応処理を終了したら、コントローラ１１は、ターゲット２０に要求した画像処理が全て終了したか否かを判断する（ステップＳｂ１３）。換言すると、この判断は、第１の画像処理の終了を契機に送信される割込信号と第２の画像処理の終了を契機に送信される割込信号の双方が受信されたか否かの判断に等しい。ターゲット２０に要求した画像処理が全て終了した場合（ステップＳｂ１３：ＹＥＳ）、すなわち、第２の画像処理の終了を契機に送信される割込信号が受信された場合には、コントローラ１１は、退避させた処理に関するデータをメモリ１２から読み出し、その処理を再開する（ステップＳｂ１４）。一方、ターゲット２０に要求した画像処理が終了していない場合（ステップＳｂ１３：ＮＯ）、すなわち、第２の画像処理の終了を契機に送信される割込信号が未だ受信されていない場合には、コントローラ１１は、ステップＳｂ７以降の処理を再度実行し、受信した割込信号に応じた処理を行う。
【００４０】
このように動作することにより、画像処理装置１００は、ターゲット２０において実行された画像処理を、ステータスレジスタを順次参照することなく特定することが可能となる。これにより、画像処理装置１００は、割込信号の契機となった画像処理を実行した内部プロセサのステータスを直接参照することが可能となる。例えば、図２に例示した構成において、内部プロセサＰ１１において演算処理が実行され、コントローラ１１がその状態を判断しようとする場合、動作例１ではステータスレジスタＲ０を参照してからステータスレジスタＲ１を参照する必要があったが、本動作例においては、ステータスレジスタＲ０を参照せずにステータスレジスタＲ１を参照することができる。この結果、コントローラ１１は、割込対応処理に要する時間（クロックサイクル数）を少なくすることができ、後続の処理をより早く実行することが可能となる。また、これに伴い、コントローラ１１は、ターゲット２０に連続的に要求を送信するような場合に、次の処理の実行をより早く要求することができるので、ターゲット２０がアイドル状態となる時間を少なくすることが可能となる。つまり、本動作例によれば、画像処理装置１００は、全体として処理の効率化を図ることが可能となる。
【００４１】
［変形例］
以上においては、一の好適な実施形態とその動作例を例示して本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、その他の種々の態様にて実施することも可能である。本発明においては、例えば、上述した実施形態に対して以下のような変形を適用することができる。
【００４２】
上述した動作例２において、コントローラ１１は、ステータスレジスタを参照せずに割込信号の契機となった画像処理を特定することができるため、その画像処理の終了後に自らが実行すべき処理をステータスレジスタを参照する前に知ることができる。そのため、動作例２に示した処理においては、割込対応処理においてステータスレジスタの参照を省略することも可能である。このように動作した場合であっても、ターゲット２０における画像処理が正常に終了している限りは、特に問題は生じない。
【００４３】
しかし、ステータスレジスタを参照しないということは、ターゲット２０における画像処理が正常終了したか異常終了したかを判断しないということなので、ターゲット２０における画像処理が異常終了した場合には、当然問題が生じる。そこで、割込対応処理においてステータスレジスタの参照を省略する場合であっても、その後のいずれかのタイミングでステータスレジスタを参照するのが望ましいといえる。ステータスレジスタを参照するタイミングとしては、例えば、ある割込信号に応じた割込対応処理の終了後であって、かつ、ターゲット２０が画像処理を実行中である期間のいずれかが望ましい。具体的には、例えば、図４に示したフローチャートにおいて、ステップＳｂ１３における判断が否定的である場合に、この判断の後であってステップＳｂ７の処理（退避中の処理の再開）を実行する前にステータスレジスタを参照するとよい。そして、ステータスレジスタを参照した結果、対応する処理が異常終了したと判断される場合には、同一の処理を再度実行させればよい。このようにすれば、効率的な処理を維持しつつ、異常時にリカバリをすることが可能となる。
【００４４】
また、上述した実施形態においては、１のホスト１０に対して１のターゲット２０が接続されている構成を示したが、１のホスト１０に対して複数のターゲット２０が接続される構成であってもよい。また、このような構成の場合、あるターゲットの処理結果を他のターゲットに引き渡すこともあるが、このような処理を上述の割込対応処理に含んでもよい。また、上述した実施形態においては、ホスト１０とターゲット２０とを備えた画像処理装置１００を示したが、本発明は画像処理装置に限定されるものではない。すなわち、上述した実施形態においては、ターゲット２０は画像処理を実行するものとして説明したが、画像処理以外の演算処理を実行するものであってもよい。
【図面の簡単な説明】
【００４５】
【図１】本発明の画像処理装置の構成を例示したブロック図である。
【図２】プロセサの内部構成を例示した図である。
【図３】画像処理装置の第１の動作例を示すフローチャートである。
【図４】画像処理装置の第２の動作例を示すフローチャートである。
【符号の説明】
【００４６】
１００…画像処理装置、１１…コントローラ、１２、２２…メモリ、１３…ターゲットＩＦ、１４…入出力ＩＦ、２１…プロセサ、２３…ホストＩＦ、Ｐ１、Ｐ１１、Ｐ１２、Ｐ１ｍ、Ｐ２、Ｐ３、Ｐｎ…内部プロセサ、Ｒ０、Ｒ１、Ｒ１１、Ｒ１２、Ｒ１ｍ、Ｒ２、Ｒ３、Ｒｎ…ステータスレジスタ
【図１】
2008112274.tif 000003
【図２】
2008112274.tif 000004
【図３】
2008112274.tif 000005
【図４】
2008112274.tif 000006