(57)【要約】【課題】  回路構成情報を高速ＲＡＭに記憶しておき、そのＲＡＭを使用して動的再構成を行う場合、リアルタイム処理中は再構成のためのＲＡＭアクセスが待たされてしまい、処理効率が低下してしまう。【解決手段】  動的に回路の少なくとも一部が再構成されるＦＰＧＡと、ＦＰＧＡにおいて回路の少なくとも一部を再構成する回路構成情報を記憶するＲＯＭ１０４と、ＲＯＭ１０４に記憶された回路構成情報の複製を記憶する、ＲＯＭ１１１よりも高速に読み出し可能なＲＡＭ１１１を有する画像処理装置で、実行するジョブに応じてＦＰＧＡの少なくとも一部を、回路構成情報を用いて当該ジョブで必要な処理を実行可能な回路に再構成するとともに、ＲＡＭ１１１を使用した実時間処理が実行中でないときはＲＡＭ１１１に記憶されている回路構成情報を使用してＦＰＧＡを再構成し、ＲＡＭ１１１を使用した実時間処理が実行中のときはＲＯＭ１０４に記憶されている回路構成情報を使用してＦＰＧＡを再構成する。【選択図】  図３
2015106751.tif 000002
【特許請求の範囲】
【請求項１】
動的に回路の少なくとも一部が再構成される動的再構成部と、
前記動的再構成部において前記回路の少なくとも一部を再構成する回路構成情報を記憶する構成情報記憶手段と、
前記構成情報記憶手段に記憶された前記回路構成情報の複製を記憶する、前記構成情報記憶手段よりも高速に読み出し可能な記憶手段と、
実行するジョブに応じて前記動的再構成部の回路の少なくとも一部を、前記回路構成情報を用いて当該ジョブで必要な処理を実行可能な回路に再構成するように制御する制御手段とを有し、
前記制御手段は、前記記憶手段を使用した実時間処理が実行中でないときは前記記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成し、前記記憶手段を使用した実時間処理が実行中のときは前記構成情報記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成するように制御することを特徴とする画像処理装置。
【請求項２】
前記制御手段による制御の際、前記回路構成情報のエラーの有無を検出する検出手段を更に有し、
前記制御手段は、前記検出手段によりエラーが検出されると、前記構成情報記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記ジョブで実行している処理が、前記動的再構成部を使用しない処理の場合、前記動的再構成部の回路の少なくとも一部を当該ジョブで実行される次の処理を実行可能な回路に再構成するように制御することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記構成情報記憶手段に記憶されている前記回路構成情報を前記記憶手段にコピーする複製手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記回路構成情報は、前記画像処理装置が実行可能なジョブに対応する複数の処理のそれぞれに対応して前記構成情報記憶手段に記憶されており、
前記複製手段は、前記複数の処理のそれぞれに対応する回路構成情報の単位で前記回路構成情報を前記記憶手段に記憶することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記複製手段は、前記画像処理装置の起動時に、前記構成情報記憶手段に記憶されている前記回路構成情報を前記記憶手段にコピーすることを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記複製手段は、ジョブの開始前に、前記構成情報記憶手段に記憶されている前記回路構成情報を前記記憶手段にコピーすることを特徴とする請求項４又は５に記載の画像処理装置。
【請求項８】
前記複製手段は、前記回路構成情報を前記記憶手段に記憶する際、前記複数の処理のそれぞれに対応する回路構成情報の単位で、前記回路構成情報が前記記憶手段に複製されたかどうかを示す情報を変更することを特徴とする請求項５に記載の画像処理装置。
【請求項９】
前記制御手段は、前記記憶手段を使用した実時間処理が実行中かどうか、及び前記情報に基づいて、前記動的再構成部を再構成する前記回路構成情報の読み出し先を変更することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
動的に回路の少なくとも一部が再構成される動的再構成部と、前記動的再構成部において前記回路の少なくとも一部を再構成する回路構成情報を記憶する構成情報記憶手段と、前記構成情報記憶手段に記憶された前記回路構成情報の複製を記憶する、前記構成情報記憶手段よりも高速に読み出し可能な記憶手段とを有する画像処理装置の制御方法であって、
前記記憶手段を使用した実時間処理が実行中でないときは前記記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成し、
前記記憶手段を使用した実時間処理が実行中のときは前記構成情報記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成することにより、実行するジョブに応じて前記動的再構成部の回路の少なくとも一部を、前記回路構成情報を用いて当該ジョブで必要な処理を実行可能な回路に再構成することを特徴とする画像処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
論理回路の構成を変更可能なＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）などの再構成可能回路が良く知られている。一般的に、ＰＬＤやＦＰＧＡの論理回路の変更は、起動時に、ＲＯＭ等の不揮発性メモリに格納された回路構成情報を、ＰＬＤやＦＰＧＡ内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことで実現される。また、コンフィギュレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ＲＯＭに記憶している回路構成情報をコンフィギュレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけＰＬＤやＦＰＧＡの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるＦＰＧＡ等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
【０００３】
またＦＰＧＡには、ＦＰＧＡのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリの一部の領域のみを書き換えることで、ＦＰＧＡの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばＦＰＧＡのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。
【０００４】
ところで、ＦＰＧＡの回路構成情報を格納するのに使用されるシリアルＲＯＭ等の不揮発性メモリは、ＲＡＭ等の揮発性メモリに比べてアクセス速度が遅い。よって、一般的に、ＦＰＧＡの論理回路の再構成に要する時間が長くなり、その時間はコンフィギュレーションメモリに書き込む回路構成情報のデータサイズに比例する。このような再構成に要する時間を短縮するために、必要となる回路構成情報をアクセス速度が高速であるＲＡＭ等へ格納しておき、再構成時に、その高速ＲＡＭから回路構成情報を高速に読み出してＦＰＧＡに書き込む方法が知られている。
【０００５】
特許文献１は、再構成可能な回路において、事前に回路構成情報をメインメモリに格納しておき、回路の処理内容に合わせて、ＣＰＵが必要な回路構成情報を選択して再構成を行う技術を記載している。また特許文献１はさらに、複数の回路構成情報を格納する専用のローカルメモリを有するシステムにおいて、必要な回路構成情報を選択して再構成を行う技術を記載している。しかしながら一般的にはＦＰＧＡは、回路構成情報を複数保持しておくための専用メモリを有していない。さらに、複写機のシステムなどで大容量の画像データを処理する場合には、ＦＰＧＡの内部メモリを、回路構成情報を格納する専用メモリとして使用できない。従って、コストの観点から、ＣＰＵが使用する大容量のＲＡＭを、システムのメインメモリ、画像処理用ワーキングメモリ、回路構成情報の格納用メモリとして使用する構成が考えられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３２８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の大容量のＲＡＭを、回路構成情報の保存用メモリ、画像処理用ワーキングメモリとして使用している状態で、ＦＰＧＡの動的部分再構成を行う場合を考える。この場合、回路構成情報をＲＡＭから読み出すためのアクセスと、動作中の画像処理回路がＲＡＭから画像データを読み出すためのアクセスとが競合する。特に複写機などで、スキャナ或いはプリンタの紙搬送に併せた処理を実行する場合、紙搬送に合わせて所定の時間内で完了しなければならないリアルタイム処理を実行していると、ＲＡＭへのアクセスが、そのリアルタイム処理で占有される。これはリアルタイム処理が大量の画像データを処理してＲＡＭのメモリ帯域が逼迫しているときに他のアクセスを受け付けると、リアルタイム処理が紙搬送よりも遅れてしまい、搬送された用紙への画像データの印刷が間に合わなくなるのを防ぐためである。これにより、リアルタイム処理中は再構成のためのＲＡＭアクセスが待たされてしまい、処理効率が低下してしまうといった課題がある。
【０００８】
また、ＲＡＭに格納された回路構成情報が破損した場合は、再度、ＲＯＭに格納された回路構成情報をＲＡＭへ転送しなければらず、ＲＯＭからＲＡＭへ回路構成情報を転送するためのオーバーヘッド時間が発生するという課題が発生する。
【０００９】
本発明の目的は、上記従来技術の問題点を解決することにある。
【００１０】
本発明の特徴は、動的再構成が可能な動的部分再構成部を備える画像処理装置において、ジョブの状況に応じて動的部分再構成部を効率よく再構成する技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
動的に回路の少なくとも一部が再構成される動的再構成部と、
前記動的再構成部において前記回路の少なくとも一部を再構成する回路構成情報を記憶する構成情報記憶手段と、
前記構成情報記憶手段に記憶された前記回路構成情報の複製を記憶する、前記構成情報記憶手段よりも高速に読み出し可能な記憶手段と、
実行するジョブに応じて前記動的再構成部の回路の少なくとも一部を、前記回路構成情報を用いて当該ジョブで必要な処理を実行可能な回路に再構成するように制御する制御手段とを有し、
前記制御手段は、前記記憶手段を使用した実時間処理が実行中でないときは前記記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成し、前記記憶手段を使用した実時間処理が実行中のときは前記構成情報記憶手段に記憶されている前記回路構成情報を使用して前記動的再構成部を再構成するように制御することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、実行するジョブの状況に応じて動的部分再構成部を効率よく再構成することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態１に係る画像処理装置の構成を説明するブロック図。
【図２】実施形態１に係る画像処理装置で実行されるジョブと、各ジョブで必要な画像処理機能との対応を示す図。
【図３】実施形態１に係る画像処理装置が画像処理部１３２或いは画像処理部１３３を使用してジョブを実行する際の処理を説明するフローチャート。
【図４】図３のＳ３０６のＦＰＧＡの再構成処理を説明するフローチャート。
【図５】図４のフローチャートで説明した回路構成情報の読み出し元の切り替えを説明する概念図。
【図６】画像処理装置においてＳＥＮＤ及びプリントジョブが競合して実行されているときのスキャナＩ／Ｆ、プリンタＩ／Ｆ、画像処理部の動作を、従来例と比較して説明するタイムチャート。
【図７】実施形態２に係る画像処理装置が画像処理部１３２或いは画像処理部１３３を使用してジョブを実行する際の処理を説明するフローチャート。
【図８】図７のＳ７０６の再構成処理の詳細を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１５】
［実施形態１］
図１は、本発明の実施形態１に係る画像処理装置１００の構成を説明するブロック図である。尚、この実施形態１では、画像処理装置１００は、スキャナ部やプリンタ部を有する複合機（多機能処理装置）の場合で説明する。
【００１６】
画像処理装置１００は、画像処理装置１００を使用するユーザが各種の操作を行うための操作部１０３と、原稿の画像情報を読み取るスキャナ部１０９と、画像データに基づいて用紙に画像を印刷するプリンタ部１０７とを有する。スキャナ部１０９は、スキャナ部１０９を制御するＣＰＵ（不図示）や原稿の読取を行うための照明ランプや走査ミラー（いずれも不図示）などを有する。プリンタ部１０６は、プリンタ部１０６の制御を行うＣＰＵ（不図示）や、画像の形成（印刷）や定着を行うための感光体ドラムや定着器（いずれも不図示）等を有する。
【００１７】
また画像処理装置１００は、画像処理装置１００の制御を行うコントローラとして、動的再構成部を備えるＦＰＧＡ１４０を有する。この例では、ＦＰＧＡ１４０が画像処理装置１００の動作を統括的に制御するＣＰＵ１０１を備える。このＣＰＵ１０１が、ＦＰＧＡ１４０や再構成を制御するコンフィグコントローラ１３０等を制御するためのプログラムを実行する。尚、ＦＰＧＡ１４０がＣＰＵ１０１を備えていることはあくまで一例にすぎず、ＦＰＧＡ１４０の外部にＣＰＵを設けてもよい。
【００１８】
ＲＯＭ１０４は、ＣＰＵ１０１が実行するプログラムを記憶し、また、ＦＰＧＡ１４０の回路構成情報を格納する構成情報記憶部としても機能している。ＲＡＭ１１１は、ＣＰＵ１０１が動作するためのシステムワークメモリ、また画像データを一時記憶するための画像メモリとしても使用される。更にＲＡＭ１１１は、ＲＯＭ１０４に格納された回路構成情報を複製し格納しており、ＣＰＵ１０１は、このＲＡＭ１１１から回路構成情報を高速に読み出すことができる。
【００１９】
ＦＰＧＡ１４０は、動的再構成部として回路の少なくとも一部を動的に再構成できる動的部分再構成部１３１と、動的部分再構成部１３１の回路構成（コンフィギュレーション）の変更を制御するコンフィグコントローラ１３０とを有する。動的部分再構成部１３１は、動的書き換え可能で、かつ部分書き換え可能である。即ち、動的部分再構成部１３１の一部の回路が動作している間に、その動作している回路が占める部分とは重ならない別の部分に、別の回路を再構成することができる。この動的部分再構成部１３１は、画像処理を行うための論理回路を部分的に再構成できる画像処理部１３２と画像処理部１３３とを有する。尚、本実施形態１では、動的部分再構成部１３１に構成される画像処理部の数が２つの場合を示しているが、画像処理部の数は２つに限定されるものではない。またＦＰＧＡ１４０は、スキャナ部１０９から画像データを入力するスキャナＩ／Ｆ１０８と、プリンタ部１０７へ画像データを出力するプリンタＩ／Ｆ１０６とを有する。動的部分再構成部１３１の画像処理部１３２、画像処理部１３３、及びスキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６は画像バス１２１に接続される。
【００２０】
ＣＰＵ１０１は、ＲＯＭ１０４に記憶されているプログラムに従って、この画像処理装置１００の動作を統括的に制御する。またネットワークＩ／Ｆ１０２を介してネットワーク（不図示）に接続され、ネットワーク上の図示しない汎用コンピュータと通信（送受信）を行う。またＲＯＭＩ／Ｆ１１２は、ＲＯＭ１０４へのアクセスを制御する。操作部Ｉ／Ｆ１１３は、操作部１０３とのインタフェースを制御する。システムバス１２０は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、メモリコントローラ１１０、操作部Ｉ／Ｆ１１３、ＲＯＭＩ／Ｆ１１２、コンフィグコントローラ１３０、動的部分再構成部１３１を相互に接続する。ＣＰＵ１０１は、動的部分再構成部１３１に構成された画像処理部１３２、１３３、及びスキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６のレジスタ設定をシステムバス１２０を介して行う。メモリコントローラ１１０は、ＲＡＭ１１１へのデータの書き込み、ＲＡＭ１１１からのデータの読み出しを制御する。メモリコントローラ１１０は、システムバス１２０及び画像バス１２１に接続されてる。メモリコントローラ１１０は、画像バス１２１に接続されたバスマスタからのＲＡＭ１１１へのアクセスと、システムバス１２０に接続されたバスマスタからのＲＡＭ１１１へのアクセスとを排他的に切り替える。
【００２１】
図２は、実施形態１に係る画像処理装置１００で実行されるジョブと、各ジョブで必要な画像処理機能との対応を示す図である。
【００２２】
画像処理装置１００は、コピージョブ、プリントジョブ及びＳＥＮＤジョブを実行可能である。コピージョブは、スキャナ部１０９で原稿を読み取って複写する。プリントジョブは、ＰＣ等のプリンタドライバから送付された印刷データに基づいてプリンタ部１０７により印刷を行う。ＳＥＮＤジョブは、スキャナ部１０９で得られた原稿の画像データを外部のファイルサーバ或いはメールアドレス宛に送信する。
【００２３】
処理順１〜３は、それぞれのジョブで実行される処理とその実行順番を示す。コピージョブでは、まず最初に処理順１で、スキャナ部１０９から入力された画像データに対してスキャナの補正処理を行うスキャン画像処理を実行する。続いて処理順２で、その画像データに対して回転処理、変倍処理、トリミング処理等を行う画像編集処理が実行される。そして最後に処理順３で、プリンタ部１０７で印刷される画像データに対して補正、解像度変換等を行うプリント画像処理が実行される。
【００２４】
またプリントジョブでは、処理順１で、ネットワークＩ／Ｆ１０２を介して受信したプリントジョブに含まれるページ記述言語（ＰＤＬ）コードをビットマップイメージに展開するラスタイメージプロセス（ＲＩＰ）処理を実行する。次に処理順２で画像編集処理を実行し、処理順３で、プリント画像処理を実行する。ＳＥＮＤジョブでは、スキャン画像処理と、画像編集処理と、ネットワークへ画像を送信するための高圧縮処理等を行うＳＥＮＤ画像処理を順次実行する。尚、これらの画像処理を行う回路構成情報は全て、電源起動時にＲＯＭ１０４からＲＡＭ１１１へコピーされている。
【００２５】
尚、この画像処理装置１００が実行できるジョブは図２に示すジョブに限定されるわけではない。また、画像処理の単位に関しても、図２に限定されるわけではなく、各ジョブに含まれている処理を、更に、より細かい処理に分割することも可能である。また、各画像処理は、例えばスキャン画像処理を例にとると、コピージョブとＳＥＮＤジョブで同一の処理を行うとは限らず、それぞれのジョブに応じて適切な処理が行われるように構成されても良い。
【００２６】
図３は、実施形態１に係る画像処理装置１００が画像処理部１３２或いは画像処理部１３３を使用して、例えば、図２に示すジョブを実行する際の処理を説明するフローチャートである。尚、このフローチャートで示す各処理は、ＣＰＵ１０１がＲＯＭ１０４に記憶されているプログラムを実行することにより達成される。
【００２７】
Ｓ３０１でＣＰＵ１０１は、操作部１０３或いはネットワークＩ／Ｆ１０２を介してジョブの開始命令を受信するとＳ３０２に進み、ＣＰＵ１０１は、その入力されたジョブの種類を判定して、そのジョブを特定する。次にＳ３０３に進みＣＰＵ１０１は、コピージョブやＳＥＮＤジョブ等のように、スキャナ部１０９による原稿の読み取り処理が必要なジョブかどうかを判定する。スキャナ部１０９による原稿の読み取り処理が必要であればＳ３０４に進み、ＣＰＵ１０１は、スキャナ部１０９に対して原稿の読み込み開始の指示を出力する。これにより、スキャナＩ／Ｆ１０８を介して、ページ単位で原稿の画像データのＲＡＭ１１１への書き込みが開始される。そしてＳ３０５に進む。
【００２８】
一方、Ｓ３０３でＣＰＵ１０１は、プリントジョブなどのように、スキャナ部１０９による原稿を読み取る処理が不要であればＳ３０５へ移行する。Ｓ３０５でＣＰＵ１０１は、入力したジョブの種類に応じて、次に実行する処理の内容（図２参照）を決定してＳ３０６に進む。Ｓ３０６でＣＰＵ１０１は、Ｓ３０５で決定された画像処理に必要な回路を画像処理部１３２或いは画像処理部１３３へ構成する。このためにＣＰＵ１０１は、コンフィグコントローラ１３０に対して、画像処理部１３２或いは画像処理部１３３をスキャン画像処理回路に再構成するように制御する。これは図６（Ｃ）を参照して後述する期間Ｔ１における処理に相当している。また、この制御の詳細は図４のフローチャートを参照して後述する。
【００２９】
次にＳ３０７に進みＣＰＵ１０１は、スキャナＩ／Ｆ１０８或いはプリンタＩ／Ｆ１０６が、１ページ分のリアルタイム処理（実時間処理）を完了しているかどうかを判定し、リアルタイム処理が完了するまで待機し、完了するとＳ３０８に進む。このリアルタイム処理とは、例えば、複写機などで、スキャナ部１０９或いはプリンタ部１０７の紙搬送に合わせて、所定の時間内で原稿の読み取りや印刷を完了しなければならないような処理のことである。言い換えれば、予め決められた時間内で処理を完了しないと後続の処理が破たんし、結果的にジョブが実行できなくなるような処理のことである。
【００３０】
Ｓ３０８でＣＰＵ１０１は、画像処理部１３２或いは画像処理部１３３に構成された画像処理回路に対し、処理開始の指示を出力してＳ３０９に進む。Ｓ３０９でＣＰＵ１０１は、画像処理部１３２或いは画像処理部１３３で画像処理が完了するまで待機し、画像処理が完了するとＳ３１０に進む。Ｓ３１０でＣＰＵ１０１は、現在実行しているジョブで、画像処理部１３２或いは画像処理部１３３で処理すべき画像処理が全て完了しているか否かを判定する。
【００３１】
ここでは、例えばＳＥＮＤジョブの場合は、図２に示すように、スキャン画像処理、画像編集処理、ＳＥＮＤ画像処理を順次実行する。従って、Ｓ３１０で、これらの処理が全て終了していればＳ３１１に進むが、未実行の処理があればＳ３１０からＳ３０５へ進む。
【００３２】
一方Ｓ３１０でＣＰＵ１０１が、そのジョブで実行する処理が全て完了していると判定するとＳ３１１へ移行する。Ｓ３１１でＣＰＵ１０１は、プリントジョブやコピージョブ等のように、プリンタ部１０７を使用して印刷を実行する印刷処理が必要かどうかを判定し、そうであればＳ３１２へ移行し、印刷処理が不要であればＳ３１３に進む。Ｓ３１２でＣＰＵ１０１は、プリンタ部１０７へ印刷開始指示を発行し、プリンタＩ／Ｆ１０６を介してＲＡＭ１１１に格納された画像データをページ単位で出力する。Ｓ３１３でＣＰＵ１０１は、全てのページの処理が完了したかを判定し、次のページの処理が必要であればＳ３０３へ戻り、次のページが無ければ、この処理を終了する。
【００３３】
このような処理により、受信したジョブを実行するために、動的部分再構成部１３１に動的に構成した画像処理部１３２或いは１３３により、そのジョブに必要な処理を実行させることができる。ここでは、あるジョブを実行するのに必要な処理を実行できる処理回路を動的に構成するので、少ない回路で、より多くの処理を実行させることができる。
【００３４】
図４は、図３のＳ３０６のＦＰＧＡの再構成処理を説明するフローチャートである。
【００３５】
Ｓ４０１でＣＰＵ１０１は、リアルタイム処理を実行中かどうかを判定し、実行しているときはＳ４０２へ移行し、実行中でないときはＳ４０３へ移行する。Ｓ４０２でＣＰＵ１０１は、リアルタイム処理が実行中であるるために、ＲＡＭ１１１から回路構成情報を読み出すことができないと判定する。そしてＲＯＭ１０４から直接、動的部分再構成部１３１に回路構成情報を転送するようにコンフィグコントローラ１３０へ設定してＳ４０４に進む。リアルタイム処理の実行中では、スキャナＩ／Ｆ１０８或いはプリンタＩ／Ｆ１０６は、画像バス１２１を介してＲＡＭ１１１へアクセスを行っている。これに対してコンフィグコントローラ１３０は、システムバス１２０を介してＲＯＭ１０４から回路構成情報を読み出して動的部分再構成部１３１へ転送する。これにより、コンフィグコントローラ１３０による回路構成情報の転送を、リアルタイム処理を実行している回路等によるＲＡＭ１１１へのアクセスを阻害することなく実行できる。
【００３６】
一方、Ｓ４０３でＣＰＵ１０１は、リアルタイム処理が実行中でないため、ＲＡＭ１１１より回路構成情報を高速に読み出して動的部分再構成部１３１へ転送するようにコンフィグコントローラ１３０へ設定してＳ４０４に進む。Ｓ４０４でＣＰＵ１０１は、コンフィグコントローラ１３３による、画像処理部１３２或いは画像処理部１３３への回路構成情報の転送が完了したかどうかを判定し、その転送が完了するまで待機する。こうして回路構成情報の転送が完了するとＳ４０５に進みＣＰＵ１０１は、コンフィグコントローラ１３３による、回路構成情報の欠損等が発生していないかどうかを示すＣＲＣ判定結果を受けとる。ここで回路構成情報はＣＲＣコードを含んでおり、回路構成情報が、コンフィグコントローラ１３３に設けられたＣＲＣ演算回路（不図示）を経由して転送されることによりＣＲＣコードによるエラーを検出する。ここでＣＲＣエラーが発生していないと判定すると、この処理を終了する。一方、Ｓ４０５でＣＰＵ１０１が、ＣＲＣエラーが発生していると判定するとＳ４０２に進み、ＲＯＭ１０４に記憶している元々の回路構成情報の再転送を実行する。
【００３７】
このような制御により、エラーが発生したときは、ＲＯＭ１０４に格納された元々の回路構成情報をＲＡＭ１１１へ複製し直す前に、ＲＯＭ１０４から回路構成情報を読み出して再構成を完了させることができる。尚、回路構成情報が壊れていた場合には、再構成が完了した後、もしくはジョブ終了後等の処理の合間に、再びＲＯＭ１０４に格納されている本来の回路構成情報をＲＡＭ１１１にコピーし直す処理が必要となる。また、ＲＯＭ１０４に格納されている元々の回路構成情報が破損していた場合にはシステムエラーを返し、操作部１０３に表示する等により、ユーザに対処を促すなどの処理を実行する。
【００３８】
このような処理により、ＲＡＭ１１１へのアクセスが多いと予想される場合には、ＲＯＭ１０４に記憶している回路構成情報を使用して、処理に必要な回路を動的部分再構成部１３１に構築する。これにより、動的部分再構成部１３１への処理回路の構築によりＲＡＭ１１１へのアクセスが待たされて、通常のリアルタイム処理の遅延が発生する等の不具合の発生を防止できる。またリアルタイム処理が実行されていなくて、ＲＡＭ１１１へのアクセスが少ないと予想される場合には、回路構成情報をＲＡＭ１１１から動的部分再構成部１３１へ転送するので、画像処理部１３２或いは画像処理部１３３の再構成を迅速に実行できる。
【００３９】
図５は、図４のフローチャートで説明した回路構成情報の読み出し元の切り替えを説明する概念図である。
【００４０】
図５（Ａ）は、リアルタイム処理（ここではスキャナＩ／Ｆ１０８）が実行中でない場合に、回路構成情報をＲＡＭ１１１から読み出す場合を表している。この場合、リアルタイム処理が実行中でないため、ＲＡＭ１１１のメモリ帯域が占有されていない。このためコンフィグコントローラ１３０は、ＲＡＭ１１１から転送経路５０を介して高速に回路構成情報を読み出して動的部分再構成部１３１に設定することができる。
【００４１】
図５（Ｂ）は、リアルタイム処理（ここではスキャナＩ／Ｆ１０８）が実行中の場合で、回路構成情報をＲＯＭ１０４から読み出す場合を表している。この場合、原稿を読みって得られた画像データは経路５１を介してＲＡＭ１１１へ書き込まれるためＲＡＭ１１１のメモリ帯域が占有されてしまう。従って、この場合は、コンフィグコントローラ１３０は、転送経路５０を介してＲＡＭ１１１から回路構成情報を読み出すことができない。よって、コンフィグコントローラ１３０は、転送経路５２を介してＲＯＭ１０４から回路構成情報を読み出して動的部分再構成部１３１に設定する。
【００４２】
図６は、画像処理装置においてＳＥＮＤ及びプリントジョブが競合して実行されているときのスキャナＩ／Ｆ、プリンタＩ／Ｆ、画像処理部の動作を、従来例と比較して説明するタイムチャートである。尚、この図６では、期間Ｔ１でＳＥＮＤジョブが画像処理部１３２を使用して開始され、ＳＥＮＤジョブを実行中である期間Ｔ３で、プリントジョブが画像処理部１３３を使用して開始される場合を示している。
【００４３】
図６（Ａ）は、リアルタイム処理を考慮せずに、ＲＡＭ１１１を使用して画像処理部１３２，１３３の再構成を高速に実行した場合の例を示す。図６（Ａ）の期間Ｔ５では、ＳＥＮＤジョブが、２ページ目の原稿のスキャンを開始しており、スキャナＩ／Ｆ１０８がリアルタイム処理を行ってＲＡＭ１１１へスキャンした画像データを書き込んでいる。また同じ期間Ｔ５で、競合して実行中であるプリントジョブが、ＲＡＭ１１１に記憶されている回路構成情報を用いて画像処理部１３３をプリント画像処理用に再構成すると、スキャナＩ／Ｆ１０８によるＲＡＭ１１１への画像データの書き込みが阻害される。これにより、スキャナ部１０９の紙搬送に合わせて原稿の読み取りとＲＡＭ１１１への画像データの格納ができなくなり、スキャンした画像データが失われてしまう可能性がある。よって、このような処理は行うことができない。
【００４４】
図６（Ｂ）は、図６（Ａ）と同様に、ＲＡＭ１１１に記憶されている回路構成情報を使用して画像処理部の再構成を高速に行うが、リアルタイム処理中には再構成を行わずに待機する従来の場合を示す。図６（Ｂ）では、期間Ｔ５で画像処理部１３３をプリント画像処理用に再構成する処理を実行していないため、図６（Ａ）の様な不具合の発生を防止できる。しかしながら、期間Ｔ２における画像処理部１３２の処理や、期間Ｔ６における画像処理部１３２及び画像処理部１３３の処理では、再構成のためのダウンタイムが発生している。これについて期間Ｔ２における画像処理部１３２の処理を例に説明する。
【００４５】
画像処理部１３２は、期間Ｔ１で処理を実行していない。ジョブの種類によって、次に何の処理が必要となるかは図２に示したように事前に分かっているため、期間Ｔ１で、画像処理部１３２の再構成を完了させておくことで期間Ｔ２の処理の開始を早めることができる。しかしながら、期間Ｔ１では、リアルタイム処理によってＲＡＭ１１１が使用されているため、ＲＡＭ１１１から回路構成情報を読み出すことができない。その結果、各期間の最初には必ず、再構成によるダウンタイムが発生してしまうことになる。
【００４６】
図６（Ｃ）は、本実施形態１に係る画像処理装置におけるＦＰＧＡの再構成を説明する図である。ここでは、回路構成情報の読み出し元をＲＡＭ１１１とＲＯＭ１０４とで切り替える例を示している。
【００４７】
図６（Ｃ）では、期間Ｔ１で、次に必要となるスキャン画像処理の回路構成情報をＲＯＭ１０４から読み出すことで再構成を完了させている。ＲＯＭ１０４から回路構成情報を読み出して再構成する場合は、ＲＡＭ１１１に記憶している回路構成情報を読み出して再構成する場合と比較してより多くの時間を要する。しかしながら、ＲＯＭ１０４から回路構成情報を読み出す場合でも、スキャナＩ／Ｆ１０８が原稿１枚分の画像データをＲＡＭ１１１へ書き込んでいる間に、画像処理部１３２の再構成を完了させることができる。従って、期間Ｔ２で、直ちに、画像処理部１３２によりスキャン画像データに対する画像処理を開始することが可能となる。
【００４８】
また期間Ｔ５でも同様に、次に必要なスキャン画像処理とプリント画像処理のために画像処理部１３２と画像処理部１３３とを再構成する。但し、この期間Ｔ５では、リアルタイム処理であるスキャナ部１０９からの画像データの入力処理が実行されているため、ＲＯＭ１０４から回路構成情報を読み出して、これら画像処理部１３２と画像処理部１３３とを再構成する。これにより期間Ｔ６で、直ちに、画像処理部１３２はスキャン画像データに対する画像処理を開始でき、画像処理部１３３がプリント画像処理を開始できる。
【００４９】
以上説明したように本実施形態１によれば、動的部分再構成部１３１を有する画像処理装置において、リアルタイム処理を阻害することなく再構成を行うことができ、かつ処理時間を削減することができる。また、ＲＡＭ１１１へ複製して格納した回路構成情報が破損していた場合、再びＲＯＭ１０４からＲＡＭ１１１へ複製し直す間の処理のダウンタイムを少なくできる。
【００５０】
［実施形態２］
上述の実施形態１では、ＲＯＭに格納されている回路構成情報を、電源投入時に全てＲＡＭへ複製して格納し、リアルタイム処理が実行かどうかに応じてＲＯＭ或いはＲＡＭから回路構成情報を読み出す制御について説明した。しかしながら、画像処理装置１００が実行可能なできるジョブが多数存在し、それらジョブで実行される処理に対応する回路構成情報の数が多くなると、ＲＡＭ１１１へ格納する回路構成情報のデータサイズが大きくなる。よって、ＲＡＭ１１１のメモリ容量や処理する画像データの容量によっては、電源投入後、常に全ての回路構成情報をＲＡＭ１１１へ保持できない場合がある。
【００５１】
そこで実施形態２では、全ての回路構成情報をＲＡＭ１１１へ複製して保持することができない場合の制御について説明する。この実施形態２に係る画像処理装置１００のハードウェア構成は、前述の実施形態１と同様であるため、その説明を省略する。実施形態２と実施形態１の差異は、ジョブ開始後にＲＡＭ１１１へ回路構成情報を複製して格納する点にある。以下、詳しく説明する。
【００５２】
図７は、実施形態２に係る画像処理装置１００が画像処理部１３２或いは画像処理部１３３を使用して、例えば、図２に示すジョブを実行する際の処理を説明するフローチャートである。尚、このフローチャートで示す各処理は、ＣＰＵ１０１がＲＯＭ１０４に記憶されているプログラムを実行することにより達成される。尚、図７において、Ｓ７０１〜Ｓ７０８は、図３のＳ３０１〜Ｓ３０８と基本的に同じであるため、その説明を省略する。尚、Ｓ７０６の再構成処理は実施形態１のＳ３０６と異なるので、図８を参照して後述する。
【００５３】
実施形態１の図３のフローチャートとの相違点は、ＲＯＭ１０４に格納されている、複数の処理に対応する回路構成情報のそれぞれがＲＡＭ１１１へ複製済みであるかどうかを表す複製済みフラグを、回路構成情報ごとに備える点にある。この複製済みフラグはＲＡＭ１１１にセットされており、ジョブの開始時には全ての回路構成情報に対応するフラグはオフであり、これは、対応する回路構成情報がＲＡＭ１１１にコピーされていないことを示す。
【００５４】
そのためＳ７０８で、再構成された画像処理部による処理が開始された後、Ｓ７０９に進みＣＰＵ１０１は、スキャン画像処理用の回路構成情報の複製済みフラグがオンかどうかを判定する。ここで複製済みフラグがオン、即ち、既にＲＡＭ１１１へ複製されていると判定するとコピー処理を行わずにＳ７１１へ移行する。一方、ＣＰＵ１０１が複製済みフラグがオフと判定するとＳ７１０に進む。Ｓ７１０でＣＰＵ１０１は、画像処理部１３２或いは画像処理部１３３において画像処理が行われている状況で、ＲＯＭ１０４からＲＡＭ１１１へ、現在実行されている画像処理用の回路構成情報を複製してＳ７１１に進む。このときＣＰＵ１０１は、そのコピーした回路構成情報の複製済みフラグをオンにする。Ｓ７１１〜Ｓ７１５の処理は、図３のＳ３０９〜Ｓ３１３と同じであるため、その説明を省略する。
【００５５】
尚、本実施形態２では、画像処理装置１００で１つのジョブのみが実行されている例で説明したが、他のジョブが空いている画像処理部を用いて競合して実行されることも考えられる。その場合は、Ｓ７１０においてリアルタイム処理の有無を判断し、競合ジョブのリアルタイム処理が実行中の場合は、回路構成情報の複製処理をスキップするといった処理が当然必要になる。また、ＲＡＭ１１１へ回路構成情報を複製する処理を行うタイミングは、図７に示す例に限定されるものではなく、その他の処理の合間に行うことでも、同様のことが実現できる。
【００５６】
図８は、図７のＳ７０６の再構成処理の詳細を説明するフローチャートである。
【００５７】
実施形態１との差異は、Ｓ８０１において複製済みフラグがオンかどうかを判定し、オンであればＳ８０２へ移行して、リアルタイム処理が実行中かどうかに応じて、回路構成情報の読み出し元をＲＡＭ１１１或いはＲＯＭ１０４に切り替える制御をする。
【００５８】
一方、ＣＰＵ１０１がＳ８０１で複製済みフラグがオフであると判定するとＳ８０３へ移行して、ＣＰＵ１０１は、ＲＯＭ１０４から回路構成情報を読み出すように制御する。尚、図８のＳ８０２〜Ｓ８０６の処理は、図４のＳ４０１〜Ｓ４０５と同様であるため、その説明を省略する。
【００５９】
以上説明したように実施形態２によれば、動的部分再構成部を有する画像処理装置において、ジョブの開始前に、リアルタイム処理の有無を考慮しながら、回路構成情報をＲＡＭへ複製することが可能になる。これにより、ＲＡＭのメモリ容量により、全ての回路構成情報を予めＲＡＭへ複製しておくことができない場合であっても、実施形態１と同様に処理時間を削減することができる。
【００６０】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015106751.tif 000003
【図２】
2015106751.tif 000004
【図３】
2015106751.tif 000005
【図４】
2015106751.tif 000006
【図５】
2015106751.tif 000007
【図６】
2015106751.tif 000008
【図７】
2015106751.tif 000009
【図８】
2015106751.tif 000010