(57)【要約】【課題】  ＦＰＧＡに構成する機能部の種類が増大すると、ＦＰＧＡへのコンフィグレーションデータの転送、割り込み処理が多くなってＣＰＵの負担が増大し、処理速度の低下を招くおそれがある。【解決手段】  ＣＰＵと、コンフィグレーションデータに応じて、少なくとも一部の回路を動的に再構成できる動的部分再構成部を有する画像処理装置において、コンフィグレーションデータと動的部分再構成部で処理されるデータをメモリに記憶し、ＤＭＡＣは、ＣＰＵの指示に従って、そのメモリからコンフィグレーションデータと処理対象のデータとを動的部分再構成部にＤＭＡで転送する。動的部分再構成部は、ＤＭＡＣにより転送されるコンフィグレーションデータによる動的部分再構成部の再構成と、その再構成された機能部による、処理対象のデータの処理を実行する。【選択図】  図８
2015139009.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
コンフィグレーションデータに応じて、少なくとも一部の回路を動的に再構成できる動的部分再構成手段と、
前記コンフィグレーションデータと前記動的部分再構成手段で処理されるデータを記憶する記憶手段と、
前記ＣＰＵの指示に従って、前記記憶手段から、前記コンフィグレーションデータと前記処理されるデータとを前記動的部分再構成手段にＤＭＡで転送するＤＭＡ手段とを有し、
前記動的部分再構成手段は、前記ＤＭＡ手段により転送される前記コンフィグレーションデータによる前記動的部分再構成手段の再構成と、当該再構成された回路による前記処理されるデータの処理を実行することを特徴とする画像処理装置。
【請求項２】
前記ＤＭＡ手段は、
前記コンフィグレーションデータによる回路が前記動的部分再構成手段に構成されているかどうかを判定する判定手段を有し、
前記判定手段が、当該回路が前記動的部分再構成手段に構成されていると判定すると前記動的部分再構成手段への前記コンフィグレーションデータの転送をスキップすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ＤＭＡ手段は、前記動的部分再構成手段の再構成と、当該再構成された回路による前記処理されるデータの処理が完了すると割り込み信号で前記ＣＰＵに通知することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記動的部分再構成手段で処理する処理の識別情報と、当該処理のためのコンフィグレーションデータが記憶されている前記記憶手段のアドレスと、前記処理で使用されるデータが記憶されている前記記憶手段のアドレスとを関連付けて記憶するテーブルを更に有し、
前記ＤＭＡ手段は、前記テーブルを参照して、前記記憶手段から、前記コンフィグレーションデータと前記処理されるデータとを前記動的部分再構成手段に転送することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記ＤＭＡ手段は、前記記憶手段から前記コンフィグレーションデータを前記動的部分再構成手段に転送した後、前記動的部分再構成手段の再構成が完了するのを待って、前記処理されるデータを前記動的部分再構成手段に転送することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
ＣＰＵと、コンフィグレーションデータに応じて、少なくとも一部の回路を動的に再構成できる動的部分再構成部とを有する画像処理装置を制御する制御方法であって、
前記コンフィグレーションデータと前記動的部分再構成部で処理されるデータをメモリに記憶する記憶工程と、
前記ＣＰＵの指示に従って、前記メモリから、前記コンフィグレーションデータと前記処理されるデータとを前記動的部分再構成部にＤＭＡで転送するＤＭＡ工程とを有し、
前記動的部分再構成部は、前記ＤＭＡ工程で転送される前記コンフィグレーションデータによる前記動的部分再構成部の再構成と、当該再構成された回路による前記処理されるデータの処理を実行することを特徴とする制御方法。
【請求項７】
コンピュータを、請求項１乃至５のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
論理回路を再構成可能なデバイスを使用してハードウェアリソースを時分割で多重化し、かつアプリケーションを変更することでコストの削減や消費電力の減少を実現し、所望の処理を実現する動的再構成が知られている。一方、電源投入時などに一度だけハードウェアリソースの構成を行う方法を静的再構成という。このように論理回路を再構成可能なデバイスとしてＦＰＧＡがよく知られている。一般に、ＦＰＧＡは揮発性メモリであるコンフィギュレーションメモリへ論理ブロックの構成情報（コンフィグレーションデータ）を書き込むことで、内部ロジックの機能を切り替えて論理回路を再構成できる。このコンフィグレーションデータは、ＲＯＭ等の不揮発性メモリへ格納されており、再構成時に適宜読み出される。ＦＰＧＡのコンフィギュレーションメモリに記憶された情報は電源遮断時にクリアされるため、電源投入時には再度、ＲＯＭからコンフィグレーションデータを読み出してコンフィギュレーションメモリに書き込むことで静的再構成を行う必要がある。一方、動的再構成が可能なデバイスの場合は、処理に合わせて適宜動的再構成が実施される。
【０００３】
一方で、動的部分再構成も知られている。この動的部分再構成とは、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、ＦＰＧＡ内部ロジックを部分的に再構成することである。動的再構成の場合は、デバイスにインプリメントされたアプリケーション全体の処理を止めた状態で再構成を行う必要がある。しかし動的部分再構成では、再構成されない部分で実行されているアプリケーションに影響を与えることなく、対象とする部分のみを再構成することができる。このように動的部分再構成を行うことで、アプリケーションで使用する論理回路を柔軟に変更できるため、アプリケーションの機能を実行するのに必要なＦＰＧＡのデバイスサイズを減少でき、コスト及び消費電力を削減できる。
【０００４】
この動的部分再構成では、コンフィグレーションデータはコンフィグレーションメモリからシステムバスを介して動的再構成制御回路に転送される。この動的再構成制御回路は、そのコンフィグレーションデータにより、指定されたＦＰＧＡ内部ロジックを再構成する。従って最小限のＦＰＧＡの内部ロジックを使用してジョブを実行する場合は、ジョブ処理中に、何度も、そのロジックを書きかえなければならない。例えば特許文献１には、ＣＰＵがプログラムに従って画像処理回路のコンフィグレーションデータをコンフィグレーションメモリから切り替えて読み出し、動的再構成部の再構成を制御する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３２８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、ＣＰＵがプログラムに従ってスケジューリングして動的再構成部を制御する場合は、ＣＰＵによるコンフィグレーションデータの転送、割り込み処理などの負荷が頻繁に発生する。特に動的再構成を行う場合は、通常の処理に比べて長い時間を要するため、書き換え頻度が多くなるほどパフォーマンスが低下するという課題がある。例えばＭＦＰ（Multifunction Peripheral）におけるコピー処理では、原稿のスキャン、編集、プリントの各処理が実施される。それらの各処理を機能毎にさらに細分化すると、２０〜３０個の画像処理回路が必要になる。その場合、ＣＰＵはそれら画像処理回路をＦＰＧＡで構成しようとすると、コンフィグレーションデータの転送、割り込み処理をその数だけ実行しなければならなくなり、ＣＰＵの負担が増大し、処理速度の低下を招くおそれがある。
【０００７】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００８】
本発明の特徴は、動的部分再構成部のコンフィグレーションを行う際のＣＰＵの負担を軽減させる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る画像形成装置は以下のような構成を備える。即ち、
ＣＰＵと、
コンフィグレーションデータに応じて、少なくとも一部の回路を動的に再構成できる動的部分再構成手段と、
前記コンフィグレーションデータと前記動的部分再構成手段で処理されるデータを記憶する記憶手段と、
前記ＣＰＵの指示に従って、前記記憶手段から、前記コンフィグレーションデータと前記処理されるデータとを前記動的部分再構成手段にＤＭＡで転送するＤＭＡ手段とを有し、
前記動的部分再構成手段は、前記ＤＭＡ手段により転送される前記コンフィグレーションデータによる前記動的部分再構成手段の再構成と、当該再構成された回路による前記処理されるデータの処理を実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、動的部分再構成部のコンフィグレーションを行う際のＣＰＵの負担を軽減させることができる。
【００１１】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１２】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る画像形成装置を含むシステム構成の一例を示す図。
【図２】実施形態に係る画像形成装置のハードウェア構成の一例を示すブロック図。
【図３】本発明の実施形態に係る画像形成装置における動的部分再構成部の詳細な構成を示すブロック図。
【図４】本発明の実施形態に係る画像形成装置のＤＭＡＣの機能構成を示すブロック図。
【図５】実施形態に係る画像形成装置が実行する処理に対応して、ＣＰＵがコンフィグレーションデータ、パラメータデータ及び画像データを管理するテーブルのデータ構成を説明する図（Ａ）（Ｂ）、実施形態に係るヘッダを説明する図（Ｃ）。
【図６】実施形態に係る画像形成装置でＲＡＭに展開されたコンフィグレーションデータ、パラメータデータ、画像データのメモリマップを説明する図。
【図７】実施形態１に係る画像形成装置のＣＰＵ２１０による処理を説明するフローチャート。
【図８】実施形態１に係る画像形成装置のＤＭＡＣによる処理を説明するフローチャート。
【図９】実施形態２に係る両面スキャンコピー動作時のテーブルの一例を示す図。
【図１０】実施形態２に係る画像形成装置でＲＡＭに展開されたコンフィグレーションデータ、パラメータデータ、画像データのメモリマップを説明する図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、本発明の画像処理装置を画像形成装置を例に説明するが、本発明は、この画像形成装置に限定されないことはもちろんである。
【００１４】
図１は、本発明の実施形態に係る画像形成装置１０１を含むシステム構成の一例を示す図である。
【００１５】
画像形成装置１０１は、各種入力データを処理し、画像形成（作像）を行って印刷物を出力する。プリントサーバ１０２は、ネットワーク１０４を介して画像形成装置１０１と接続されている。クライアントＰＣ１０３は、プリントサーバ１０２と同様にネットワーク１０４を介して画像形成装置１０１に接続されている。尚、この画像形成装置１０１は動的部分再構成可能なＦＰＧＡを有し、プリントサーバ１０２又はクライアントＰＣ１０３から入力されるジョブの種類に応じて、それらジョブの種類ごとに必要となる画像処理機能を動的に部分再構成することができる。
【００１６】
図２は、実施形態に係る画像形成装置１０１のハードウェア構成の一例を示すブロック図である。
【００１７】
画像形成装置１０１は、大別して、画像形成装置１０１を使用するユーザが各種の操作を行うための操作部２０１と、画像情報を読み取るスキャナ部２０２と、画像データを用紙に印刷するプリンタ部２０５及びコントローラ２０６を有する。スキャナ部２０２は、スキャナ部２０２を制御するＣＰＵや原稿読取を行うための照明ランプや走査ミラー（いずれも不図示）などを有する。プリンタ部２０５は、プリンタ部の制御を行うＣＰＵや画像形成や定着を行うための感光体ドラムや定着器等（いずれも不図示）を有する。またコントローラ２０６は、スキャナ部２０２やプリンタ部２０５を制御し、ネットワーク（ＬＡＮ）１０４や公衆回線（ＷＡＮ）２０３、無線ＬＡＮ２０４等介して外部のＰＣクライアント１０３や汎用コンピュータ２４０との通信を制御している。
【００１８】
次にコントローラ２０６の構成を詳しく説明する。
【００１９】
動的部分再構成部（ＦＰＧＡ）２３０は、ＰＣクライアント１０３や操作部２０１等から受信したジョブの種類に応じて、必要となる処理機能を部分的に再構成できる。ＣＰＵ２４１は、画像形成装置１０１を統括的に制御する制御部である。ＲＡＭ２４２は、ＣＰＵ２４１が動作するためのシステムワークメモリを提供し、また画像データ等を一時記憶するのに使用される。ＲＯＭ２１１は、ＣＰＵ２４１が実行するブートプログラムや各種設定情報などを格納している。操作部Ｉ／Ｆ２１４は、操作部２０１に表示する画像データを操作部２０１に対して出力し、また操作部２０１からユーザが入力した情報をＣＰＵ２４１に伝える役割をする。ネットワーク部２１５はＬＡＮ１０４に接続され、ＰＣクライアント１０３やＬＡＮ１０４上のその他のコンピュータ端末（不図示）との通信（送受信）を行う。またモデム２１６は、公衆回線２０３に接続された外部のファクシミリ装置（不図示）との間のデータの通信（送受信）を行う。また無線通信Ｉ／Ｆ２１７は、無線２０４により外部の汎用コンピュータ２４０と通信する。ハードディスクドライブ（ＨＤＤ）２１３は、システムソフトウェア、画像データ、ソフトウェアカウンタ値などを格納する。また内部の通信Ｉ／Ｆ２１９は、スキャナ部２０２及びプリンタ部２０５と夫々通信を行う。タイマ２１８は、ＣＰＵ２４１の指示に従って所定時間の計時や、日時などを計時している。イメージバスＩ／Ｆ２２０は、システムバス２２１とイメージバス２５０とを接続し、それらの間でデータ構造を変換するバスブリッジである。以上説明した各部はシステムバス２２１を介してＣＰＵ２４１と接続されている。
【００２０】
次にイメージバス２５０に接続されている各部を説明する。ＣＰＵ２１０はＲＯＭ２４３に記憶されているプログラムに従って、後述する動的部分再構成部（ＦＰＧＡ）２３０の再構成や画像データの転送などの制御を行う。ＲＡＭ２１２はＣＰＵ２１０のワークエリアとして使用され、またコンフィグレーションデータを事前に展開するプリロードメモリとしても使用される。ＲＯＭ２４３は、ＣＰＵ２１０により実行されるプログラムや、動的部分再構成部２３０に構成するコンフィグレーションデータ等を格納している。ＤＭＡＣ（ＤＭＡ制御部）２２２は、ＣＰＵ２１０から設定されＲＡＭ２１２に格納されたコンフィグレーションデータ或いは各Ｉ／Ｆから入力されてＲＡＭ２１２に格納された画像データ等をコンフィグＩ／Ｆ２２６或いは動的部分再構成部２３０へ転送する。またＤＭＡＣ２２２は、動的部分再構成部２３０で処理された画像データをＲＡＭ２１２にＤＭＡ転送して書き込むことができる。画像圧縮部２２３は、多値画像データをＪＰＥＧで、２値画像データをＪＢＩＧ，ＭＭＲ又はＭＨによる圧縮・伸張処理を行う。またデバイスインターフェース２２４は、スキャナ部２０２及びプリンタ部２０５とコントローラ２０６を接続して、画像データの同期系／非同期系の変換を行う。
【００２１】
次に動的部分再構成部２３０に構成される機能について説明する。
【００２２】
ラスタイメージプロセッサ（ＲＩＰ）２３１は、ＬＡＮ１０４を介してＰＣクライアント１０３から受信した印刷ジョブに含まれるＰＤＬコードをビットマップイメージに展開する。スキャナ画像処理部２３２は、スキャナ部２０２から受け取った画像データに対し補正、加工、編集を行う。プリンタ画像処理部２３３は、プリンタ部２０５で出力（印刷）される画像データに対して補正、解像度変換等を行う。画像回転部２３４は、画像データを９０度単位で回転させた画像データを得ることができる。尚、これは、あくまでも、ある時点での動的部分再構成部２３０の機能部の構成を示しており、常に、このような機能が設けられているわけではない。
【００２３】
コントローラ２０６は、動的部分再構成部２３０の内部のリソース使用状況及び構成情報を保持し、実行対象のジョブに必要となる画像処理機能のコンフィグレーションデータを、その構成情報を基に、対応する読み出し元から選択して読み出す。そして、その読み出したコンフィグレーションデータを、動的部分再構成部２３０へＤＭＡＣ２２２経由で転送する。コンフィグコントローラ２２５は、コンフィグレーションデータのＣＲＣチェック結果を受信する。コンフィグＩ／Ｆ２２６は、コンフィグコントローラ２２５と動的部分再構成部２３０との間のコンフィグレーションデータ及びＣＲＣチェック結果をやり取りを制御する。
【００２４】
コントローラ２０６は、印刷やコピージョブ実行時の、ユーザ名や印刷部数、カラー印刷等の出力属性情報をジョブ実行時のジョブログ情報としてＨＤＤ２１３或いはＲＡＭ２４２に記憶して管理している。
【００２５】
尚、実施形態における印刷ジョブの入力は、ＰＣクライアント１０３だけでなく、操作部２０１から入力されても良い。また実施形態に係る動的部分再構成部２３０に構成されうる画像処理機能の一部は、コントローラ２０６のハードウェア資源を利用して達成されても良い。また画像圧縮部２２３の機能が、動的部分再構成部２３０内に構成されてもよい。またデバイスＩ／Ｆ機能を実現するデバイスＩ／Ｆ２２４の機能が動的部分再構成部２３０内に構成されても良い。またコンフィグレーションデータの格納部として、コントローラ２０６のＨＤＤ２１３を使用しても良い。
【００２６】
図３は、本発明の実施形態に係る画像形成装置１０１における動的部分再構成部２３０の詳細な構成を示すブロック図である。
【００２７】
動的部分再構成部２３０は、コンフィグレーションデータ及びＣＲＣチェックの結果を転送するコンフィグレーションポート３０１を有する。このＣＲＣチェックは、コンフィグレーションデータがビット落ちなどがなく、正常に転送されたかどうかを判定するのに使用される。ＣＲＣチェックの結果によって動的部分再構成部２３０のコンフィグレーションが正常に完了したか否かを判定できる。また動的部分再構成部２３０は、論理回路が構成されるコンフィグレーションメモリ３０３とコンフィグレーション回路部３０２とを有する。コンフィグレーション回路部３０２は、コンフィグコントローラ２２５から送信されたコンフィグレーションデータを解析して、コンフィグレーションメモリ３０３の適切なアドレスへコンフィグレーションデータを転送する。またコンフィグレーションデータのＣＲＣチェックを行う。従って、コンフィグコントローラ２２５からコンフィグレーションメモリ３０３へのコンフィグレーションデータの転送がＣＲＣエラーなく正常に終了すると、動的部分再構成部２３０の再構成が完了したと判定できる。
【００２８】
コンフィグレーションメモリ３０３は、それぞれアドレスが指定できる最小単位の論理ブロック３０４を複数有する。またコンフィグレーションメモリ３０３は、いくつかの論理ブロックのまとまりで再構成を行うことのできるリコンフィグ画像処理機能（図２の２３１〜２３４のいずれか）が構成され得る再構成領域３０５を１つ以上有する。またコンフィグレーションメモリ３０３は、クロック及びクロック調整ロジック、Ｉ/Ｏ及びＩ/Ｏ関連コンポーネント、その他ＦＰＧＡデバイスアーキテクチャ特有のコンポーネントが含まれるスタティック領域３０６を有する。再構成領域３０５は、スタティック領域３０６に構成されたＩ/Ｏ関連コンポーネントを介してＤＭＡＣ２２２経由でイメージバス２５０に接続され、ＣＰＵ２１０或いはＤＭＡＣ２２２からの制御情報の受信及びＲＡＭ２１２の画像データへのアクセスを行う。また動的部分再構成部２３０は、画像データのアクセス及び処理を完了すると処理完了の割り込み（不図示）を生成する。
【００２９】
図４は、本発明の実施形態に係る画像形成装置のＤＭＡＣ２２２の機能構成を示すブロック図である。
【００３０】
ＤＭＡＣ２２２は、バス制御部４０１、セレクタ４０２、割り込み検知部４０３、割り込み生成部４０４及びCONFIG ID保持部４０５を有する。バス制御部４０１は、イメージバス２５０に接続され、イメージバス２５０を介して転送されたデータを受け取り、そのデータに付与された後述するヘッダを判定する。尚、バス制御部４０１は、割り込み検知部４０３からのステータス信号に基づいてデータの送受信を制御する。即ち、バス制御部４０１は、コンフィグレーションデータの転送時に、そのステータス信号が動的部分再構成部２３０が構成中であることを示していると、次の画像データの転送を禁止する。また、ステータス信号が画像データの処理中を示していると、次のコンフィグレーションデータの転送を禁止するように制御する。またバス制御部４０１は、CONFIG ID保持部４０５に保持されているデータＩＤ（図５（Ｃ）を参照して後述する）を基に、現在の動的部分再構成部２３０に構成されている回路、即ちコンフィグレーションデータの種類を判別できる。従って、送られてきたコンフィグレーションデータのヘッダに含まれるデータＩＤがCONFIG ID保持部４０５に保持されている識別情報（ＩＤ）と同じであれば、動的部分再構成部２３０の再構成は不要であると判断できる。そのような場合は、そのコンフィグレーションデータの転送を不許可にすることもできる。
【００３１】
セレクタ４０２は、バス制御部４０１で判定した結果に基づいて、バス制御部４０１からのデータをコンフィグコントローラ２２５に送るか、動的部分再構成部２３０に送るかを切り替える。即ち、コンフィグレーションデータの場合はコンフィグコントローラ２２５に送り、画像データの場合は動的部分再構成部２３０に送るように切り替える。割り込み検知部４０３は、コンフィグレーションデータを転送するときのＣＲＣチェック結果を受信して、コンフィグレーションが正常に終了したか否かを判定し、バス制御部４０１に対してコンフィグレーション中か否かを示すステータス信号を送信する。また割り込み検知部４０３は、動的部分再構成部２３０からの画像処理の完了割り込みを受信すると、画像処理が完了したことを示すステータス信号をバス制御部４０１に送信する。割り込み生成部４０４は、設定されたデータ処理が全て完了したか、或いはエラーが発生した場合に、ＣＰＵ２１０への割り込み信号を生成する。CONFIG ID保持部４０５は、動的部分再構成部２３０に転送されたコンフィグレーションデータのヘッダに記述されているコンフィグレーションデータの識別情報を保持する。
【００３２】
図５（Ａ）は、実施形態に係る画像形成装置１０１が実行する処理に対応して、ＣＰＵ２１０がコンフィグレーションデータ、パラメータデータ及び画像データを管理するテーブルのデータ構成を説明する図である。このテーブルは図６に示すように、ＲＡＭ２１２のアドレス（０ｘ１Ｃ００＿００００）〜（０ｘ１ＦＦＦ＿ＦＦＦＦ）に記憶されている。
【００３３】
このテーブルはＣＰＵ２１０がＲＡＭ２１２に作成し、動的部分再構成部２３０が処理するためな必要なCONFIG ID、コンフィグレーションデータ、パラメータデータ及び画像データのそれぞれ開始及び終了アドレスを関連付けている。図５（Ａ）は、（Ｎ＋１）個の処理を実行する場合を示し、処理０から処理（Ｎ＋１）の順にデータを格納する。
【００３４】
図５（Ｂ）は、上記テーブルの具体例を示す図である。
【００３５】
ここでは例えば、コピー動作が指示された場合に、先ずＡＤＦにセットされている原稿を読み取って、その原稿をカラー原稿モードで処理するか白黒原稿モードで処理するかを判定し、読み取った原稿の画像データをＲＡＭ２１２に展開する。こうして指示されたコピー処理を実行するのに必要な機能を動的部分再構成部２３０に構成するためのコンフィグレーションデータ及びパラメータデータをＲＯＭ２１１からＲＡＭ２１２に展開する。これにより図５（Ｂ）に示すようなテーブルが作成される。
【００３６】
図６は、実施形態に係る画像形成装置１０１でＲＡＭ２１２に展開されたコンフィグレーションデータ、パラメータデータ、画像データのメモリマップを説明する図である。
【００３７】
図５（Ｂ）と図６とを参照して説明すると、CONFIG IDの「００１」は、カラー原稿を読み取る処理に該当する。ここではＲＡＭ２１２の開始アドレス（０ｘ００００＿１０００）から終了アドレス（０ｘ００００＿１ＦＦＣ）のカラースキャン用のコンフィグレーションデータ（SCAN_CL）を使用する。またＲＡＭ２１２の開始アドレス（０ｘ１０００＿００００）から終了アドレス（０ｘ１０００＿ＦＦＦＣ）のカラースキャン用のパラメータデータ（SCAN_CL）を使用して動的部分再構成部２３０を構成する。またこのときのスキャン画像データ（SCAN）は、ＲＡＭ２１２のアドレス（０ｘ１２００＿００００）からアドレス（０ｘ１３ＦＦ＿ＦＦＦＣ）に格納されている。従って、ＣＰＵ２１０は、図５（Ｂ）のテーブルをＤＭＡＣ２２２に指示してＤＭＡＣ２２２を起動することにより、ＲＡＭ２１２のコンフィグレーションデータ、パラメータデータ及び画像データが動的部分再構成部２３０に送られる。これにより動的部分再構成部２３０に、カラースキャン処理を実行するための機能部（例えばスキャナ画像処理部２３２）が構成される。そして、その構成された機能部により、スキャン画像データが処理されてＲＡＭ２１２のアドレス（０ｘ１４００＿００００）から記憶される。
【００３８】
また図５（Ｂ）のCONFIG IDの「００２」は、コピー用のハーフトーン処理、即ち、スキャンにより読み取って得られたカラー画像データに対してハーフトーン処理を実行することに該当している。このハーフトーン処理では、ＲＡＭ２１２のアドレス（０ｘ００００＿６０００）から記憶されているハーフトーン用のコンフィグレーションデータ、アドレス（０ｘ１００１＿００００）から記憶されているパラメータデータが使用される。またハーフトーン処理の対象となる画像データはＲＡＭ２１２のアドレス（０ｘ１４００＿００００）から記憶されている。この場合も前述と同様に、ＤＭＡＣ２２２は図５（Ｂ）のテーブルのＩＤ「００２」を参照して、動的部分再構成部２３０に、コピー用のハーフトーン処理を実行するための機能部を構成する。そして、その機能部を構成した後、ＲＡＭ２１２のアドレス（０ｘ１４００＿００００）から画像データを読み出して動的部分再構成部２３０に転送する。これにより、その構成された機能部により、その転送された画像データがハーフトーン処理されてＲＡＭ２１２の先頭アドレス（０ｘ１６００＿００００）より記憶される。
【００３９】
更に図５（Ｂ）のCONFIG IDの「００３」は、印刷処理に該当している。この印刷処理では、ＲＡＭ２１２のアドレス（０ｘ００００＿２０００）から記憶されているカラー印刷用のコンフィグレーションデータ、アドレス（０ｘ１００２＿００００）から記憶されているパラメータデータが使用される。また印刷処理の対象となる画像データはＲＡＭ２１２のアドレス（０ｘ１６００＿００００）から記憶されている。この場合も前述と同様に、ＤＭＡＣ２２２は図５（Ｂ）のＩＤ「００３」を参照して、動的部分再構成部２３０に印刷処理を実行するための機能部（例えばプリンタ画像処理部２３３）を構成する。そして、その構成された機能部により、ＲＡＭ２１２に記憶されている画像データが印刷される。
【００４０】
尚、図６に示すＲＡＭ２１２に記憶されたコンフィグレーションデータ、パラメータデータ、及び画像データのそれぞれはヘッダを有しており、後述するコンフィグコントローラ２２５は、そのヘッダを参照して、転送するデータの種類を判別する。
【００４１】
図５（Ｃ）は、実施形態に係るヘッダを説明する図である。
【００４２】
図において、５０１は、図５（Ｂ）のCONFIG IDに対応する、どの処理で使用されるかを示す識別情報、５０２は、コンフィグレーションデータ、パラメータ、画像データのいずれかを示すデータＩＤである。５０３，５０４は、そのデータが格納されているＲＡＭ２１２の開始アドレスと終了アドレスを示している。このヘッダは、例えば図６に示す各データの先頭に格納されている。
【００４３】
上述のバス制御部４０１は、このヘッダのデータＩＤ５０２がコンフィグレーションデータを示していれば、セレクタ４０２がコンフィグレーションデータをコンフィグコントローラ２２５へ転送するように制御する。またデータＩＤ５０２が画像データを示していれば、セレクタ４０２が画像データを動的部分再構成部２３０へ転送するように制御する。これにより、コンフィグレーションデータにより動的部分再構成部２３０に機能部を構成し、またその構成された機能部により、転送された画像データが処理されることになる。
【００４４】
［実施形態１］
次に本発明の実施形態１に係る画像形成装置１０１において、ユーザが操作部２０１を介してコピー指示を行った場合の処理を説明する。尚、本実施形態１では、一つの処理毎に動的部分再構成部２３０に一つの機能部を再構成する場合で説明するが、複数の機能部を構成しても良いことはもちろんである。
【００４５】
図７は、実施形態１に係る画像形成装置１０１のＣＰＵ２１０による処理を説明するフローチャートである。尚、この処理を実行するプログラムはＲＯＭ２４３に記憶されていて、ＣＰＵ２１０がそのプログラム読み出して実行することにより、この処理が実現される。
【００４６】
ここでは、例えばユーザが操作部２０１を介して用紙サイズ、画質（濃度、色味、コントラスト）など等の設定情報を入力して、コピー処理の開始を指示した場合で説明する。この場合、メインのＣＰＵ２４１は、スキャナ部２０２を制御して原稿の読み取りを行い、読み取って得られた画像データをＲＡＭ２１２のアドレス（０ｘ１２００＿００００）から格納した後に開始されるものとして説明する。
【００４７】
まずＳ７０１でＣＰＵ２１０は、コピー指示に応じて、動的部分再構成部２３０で実施する画像処理用のコンフィグレーションデータをＲＯＭ２１１或いはＨＤＤ２１３からＲＡＭ２１２に展開する。ここではコピー動作に応じて、スキャン処理、プリント画像処理（ハーフトーン処理）、プリント画像処理（プリント処理）用のコンフィグレーションデータをＲＡＭ２１２に格納する。ここでＲＡＭ２１２にコンフィグレーションデータを展開した状態は、前述の図６に示す通りである。このとき図５（Ｂ）に示すテーブルのコンフィグレーションデータのアドレスを更新する。尚、図６では、この実施形態１に係るコピー処理で使用されないコンフィグレーションデータも格納されているが、このように前以って、例えば電源オン時等にＲＡＭ２１２にコンフィグレーションデータを展開しておけばＳ７０１の処理は省略できる。
【００４８】
ここでスキャン処理は、各色のラインずれ補正やガンマ補正、ＭＴＦ補正、ノイズ除去処理などを含む。またハーフトーン処理は、ＲＧＢの多値データに対して色変換処理、誤差拡散、スクリーン処理等を行って、二値データに変換する処理を含む。またプリント処理は、スムージング処理や印刷部のＰＷＭ（Pulse Width Modular）に合わせたシリアルデータへの変換処理を含む。尚、ここでは代表的な画像処理について述べているが、それ以外の画像処理の詳細については割愛する。
【００４９】
尚ここで、ＣＰＵ２１０は、各コンフィグレーションデータをＲＡＭ２１２に展開した状態で、どこに、どのコンフィグレーションデータが格納されているかを把握できる。また図６に示すようにＲＡＭ２１２に格納されている各コンフィグレーションデータの中から、動的部分再構成部２３０の再構成に必要なデータを選択する。尚、ＲＡＭ２１２に所望のコンフィグレーションデータが格納されていない場合は、ＲＯＭ２１１或いはＨＤＤ２１３等から必要なコンフィグレーションデータを読み込んで格納する。そして、前述のテーブルにコンフィグレーションデータの識別情報（CONFIG ID）、ＲＡＭ２１２の先頭アドレスとエンドアドレスを格納する。また各コンフィグレーションデータの先頭に、それら情報を含むヘッダを用意する。以下の説明ではコンフィグレーションデータの先頭にヘッダ情報を設ける例で説明する。
【００５０】
次にＳ７０２に進みＣＰＵ２１０は、各処理に対するパラメータデータをＲＡＭ２１２に展開する。このパラメータデータもＲＯＭ２１１或いはＨＤＤ２１３に記憶されている。ここでもＳ７０１と同様に、前述のテーブルの識別情報（CONFIG ID）に対応付けて、そのパラメータデータの先頭アドレスと終了アドレスを図５（Ｂ）に示すテーブルに格納する。
【００５１】
次にＳ７０３に進みＣＰＵ２１０は、処理対象の画像データが格納されているＲＡＭ２１２のアドレスを取得して図５（Ｂ）に示すテーブルを更新する。例えばスキャンデータはスキャナ部２０２で読み取ったデータで、アドレス（０ｘ１２００＿００００）〜（０ｘ１３ＦＦ＿ＦＦＦＣ）に格納され、動的部分再構成部２３０が、その格納された画像データに対してスキャン画像処理を施すことになる。
【００５２】
次にＳ７０４に進みＣＰＵ２１０は、ＤＭＡＣ２２２に対して、図５（Ｂ）に示すテーブルの値に従って処理するように設定してＤＭＡＣ２２２を起動する。ここでテーブルはＲＡＭ２１２に用意されており、ＤＭＡＣ２２２が、そのテーブルを読み込み、そのテーブルに従って処理を実行する。尚、そのテーブルの内容をＤＭＡＣ２２２が備えるメモリ（レジスタなど）に書き込む方法でも良いものとする。
【００５３】
こうしてＤＭＡＣ２２２は、例えば図５（Ｂ）のテーブルで示す処理順に従って、動的部分再構成部２３０の動的部分再構成と、その再構成された動的部分再構成部２３０への画像データの供給とを実行する。これにより動的部分再構成部２３０は、コンフィグレーションデータにより再構成された機能部を使用して、処理対象の画像データを処理してＲＡＭ２１２に格納する処理を、例えば図５（Ｂ）のテーブルに従って順次実行する。これにより、上述したように、スキャナ部２０２による原稿のスキャン、そのスキャン画像のハーフトーン処理、そしてプリンタ部２０５を使用した印刷処理が、動的部分再構成部２３０に再構成された機能部を使用して実行される。こうして印刷までの処理が完了すると、ＤＮＭＡＣ２２２からＣＰＵ２１０への処理完了の割り込みが発生する。
【００５４】
これによりＳ７０５でＣＰＵ２１０は、ＤＭＡＣ２２２からの割り込み信号を受け取るとＳ７０６に進み、ＣＰＵ２１０は、その割り込みをクリアし、コピー処理が終了したと判定する。そしてＲＡＭ２１２に格納した各コンフィグレーションデータ、パラメータデータ、画像データ、テーブルを消去し、その領域を解放して、この処理を終了する。
【００５５】
尚、図６に示すスキャン画像データ、ハーフトーン処理用の画像データ、印刷用の画像データを格納する開始アドレスは、固定して設定されても良い。
【００５６】
次に、コピー動作時を例に、実施形態１に係るＤＭＡＣ２２２の動作を説明する。
【００５７】
図８は、実施形態１に係る画像形成装置のＤＭＡＣ２２２による処理を説明するフローチャートである。
【００５８】
先ずＳ８０１でＤＭＡＣ２２２は、ＣＰＵ２１０からの起動指示を待ち、前述の図７のＳ７０４で発行される起動指示を受け付けるとＳ８０２に進む。Ｓ８０２でＤＭＡＣ２２２は、割り込み検知部４０３からのステータス信号に基づいて、動的部分再構成部２３０の状態を判定する。ここでコンフィグレーションデータの更新中、或いは画像データ等の処理中であると判定した場合は、それらの処理が終わるまで待機する。データの更新中或いはデータ処理中でないときはＳ８０３に進み、例えば図５（Ｂ）のテーブルのＩＤ「００１」で示されるコンフィグレーションデータ（SCAN_CL）のヘッダをＲＡＭ２１２のアドレス（０ｘ００００＿１０００）から読み込む。Ｓ８０４でＤＭＡＣ２２２は、読み込んだヘッダのデータＩＤから、そのデータがコンフィグレーションデータかどうかを判定し、コンフィグレーションデータであればＳ８０５に進むが、そうでないときはエラーとしてＳ８１８に進む。Ｓ８０５でＤＭＡＣ２２２は、そのデータＩＤがCONFIG ID保持部４０５のＩＤと同じか否かを判断する。これはＩＤが同じであれば、そのコンフィグレーションデータに基づく機能部が既に動的部分再構成部２３０に構成されていること示しているため、動的部分再構成部２３０を再構成する必要がないと判断してＳ８０８へ遷移する。一方、データＩＤがCONFIG ID保持部４０５のＩＤと同じでないときはＳ８０６に進む。Ｓ８０６でＤＭＡＣ２２２は、バス制御部４０１により、セレクタ４０２に対してデータをコンフィグコントローラ２２５に転送するように制御する。更にＤＭＡＣ２２２は、ＲＡＭ２１２のアドレス（０ｘ００００＿１０００）からアドレス（０ｘ００００＿１ＦＦＣ）に記憶されている、ヘッダを除いたコンフィグレーションデータをフィグコントローラ２２５に転送する。こうしてコンフィグレーションデータの転送が終了するとＳ８０７へ進みＤＭＡＣ２２２は、割り込み検知部４０３からのステータス信号を待って、動的部分再構成部２３０のコンフィグレーションが完了したかを判定する。Ｓ８０７でコンフィグレーションの実行中であると判定した場合はＳ８０９に進み、ＣＲＣ結果が異常か、もしくは一定時間以上応答がなかったかどうかを判定し、そうでないときはＳ８０７に進む。Ｓ８０９でＣＲＣ結果が異常、或いはタイムアウトが発生したときはＳ８１８のエラー割り込みの発生処理に進む。
【００５９】
こうしてＳ８０７で動的部分再構成部２３０のコンフィグレーションが完了したと判定するとＳ８０８のパラメータデータの読込み処理に進む。尚、ここで従来は、Ｓ８０７，Ｓ８０９でのＣＲＣの結果の判定をＣＰＵ２１０が実施していたが、実施形態１ではＤＭＡＣ２２２が実施する。
【００６０】
Ｓ８０８でＤＭＡＣ２２２は、図５（Ｂ）のテーブルの２番目のＲＡＭ２１２のパラメータデータの開始アドレス（０ｘ１０００＿００００）からデータを読み込む。そして、そのヘッダのデータＩＤから、そのデータがパラメータデータ（SCAN_CL）であるかどうかを判定し、そうであればＳ８１０に進むが、そうでないときはＳ８１８に進む。ここでパラメータデータは、スキャン画像処理の設定用のデータで、動的部分再構成部２３０は、このパラメータデータを受信すると所望の機能で動作するように設定されるものとする。Ｓ８１０でＤＭＡＣ２２２は、ＲＡＭ２１２のアドレス（０ｘ１０００＿００００）から（０ｘ１０００＿ＦＦＦＣ）からヘッダを除いたパラメータデータを読み込んで動的部分再構成部２３０に転送する。
【００６１】
次にＳ８１１に進みＤＭＡＣ２２２は、図５（Ｂ）テーブルの３番目のＲＡＭ２１２のアドレス（０ｘ１２００＿００００）から画像データ（SCAN）のヘッダを読みとって画像データかどうかを判定する。そうであればＳ８１２に進むが、そうでないときはＳ８１８に進む。Ｓ８１２でＤＭＡＣ２２２は、ＲＡＭ２１２の開始アドレス（０ｘ１２００＿００００）から（０ｘ１３ＦＦ＿ＦＦＦＣ）に格納されている、ヘッダを除いた画像データを読み込んで動的部分再構成部２３０に転送する。これにより動的部分再構成部２３０で、その画像データに対する処理が実行される。
【００６２】
次にＳ８１３に進みＤＭＡＣ２２２は、割り込み検知部４０３からのステータス信号に基づいて、動的部分再構成部２３０の状態を判定する。ここで画像データの処理中であると判定した場合はＳ８１５へ遷移し、タイムアウトが発生したかどうかを判定する。Ｓ８１５でタイムアウトが発生するとＳ８１８に進むが、そうでないときはＳ８１３に進む。Ｓ８１３でＤＭＡＣ２２２は、動的部分再構成部２３０から画像処理の完了割り込みを受けるとＳ８１４に進む。従来は、画像処理が終了したかをＣＰＵ２１０が判定していたが、本実施形態１ではＤＭＡＣ２２２が代わりに実施する。
【００６３】
Ｓ８１４でＤＭＡＣ２２２は、動的部分再構成部２３０に対して割り込み処理を実施する。尚、この割り込み処理では、例えばスキャン画像処理の場合、機能として画像データが白黒データかカラーだったかの判定や、白紙だったかの判定結果を非図示のＤＭＡＣ２２２の内部メモリ、もしくは外部メモリに格納する。次にＳ８１６に進みＤＭＡＣ２２２は、図５（Ｂ）のテーブルを参照して、全ての処理を完了したかを判定し、まだ未処理の処理があると判定した場合はＳ８０２へ遷移する。本実施形態１では、図５（Ｂ）の例では、スキャン処理が完了すると、次はCONFIG_ID「００２」のハーフトーン処理（HT_COPY）を実施する。更にハーフトーン処理が終了すると、CONFIG_ID「００２」のプリント処理（PRT_CL）を実施する。こうしてＳ８１６で全てのデータ処理が終了するとＳ８１７に進みＤＭＡＣ２２２は、全ての処理が正常に終了したことをＣＰＵ２１０に通知するために、割り込み生成部４０４で正常終了割り込みを生成して処理を終了する。一方、Ｓ８１８では、割り込み生成部４０４でエラー終了割り込みを生成して処理を終了する。
【００６４】
以上説明したように実施形態１によれば、ＣＰＵは、実行する処理と、各処理で使用するコンフィグレーションデータ、パラメータデータ、画像データが格納されているＲＡＭのアドレスをテーブルに登録してＤＭＡＣを起動する。これにより、ＤＭＡＣが自動的に動的部分再構成部の再構成と、その再構成された動的部分再構成部の機能部を使用したデータ処理を実現する。これによりＣＰＵの負担を軽減して、処理のスループットを上げることができる。
【００６５】
また、各処理で必要となる機能部が既に動的部分再構成部に構成されている場合は、コンフィグレーションデータの転送による再構成を行わないようにするため、動的部分再構成部が無駄に再構成されるという不具合を解消できる。
【００６６】
［実施形態２］
次に本発明の実施形態２として、ＤＭＡＣ２２２が、動的部分再構成部２３０のコンフィグレーションをスキップする場合について説明する。尚、前述の実施形態１との相違点のみを説明し、それ以外は前述の実施形態１と同様であるため、その説明を割愛する。
【００６７】
図９は、実施形態２に係る両面スキャンコピー動作時のテーブルの一例を示す図である。前述の実施形態１の図５（Ｂ）との違いは、CONFIG_IDが「００１」の最初（表面）のスキャン処理の後に、CONFIG_IDが「００２」の裏面のスキャン処理がある。またCONFIG_IDが「００４」の表面の画像データの解像度変換処理の後に、CONFIG_IDが「００４」の裏面の画像データの解像度変換処理が設けられている。
【００６８】
図１０は、実施形態２に係る画像形成装置１０１でＲＡＭ２１２に展開されたコンフィグレーションデータ、パラメータデータ、画像データのメモリマップを説明する図である。
【００６９】
この場合ＤＭＡＣ２２２は、図８のＳ８０５において２番目のコンフィグレーションデータ（SCAN_CL）のヘッダのデータＩＤから、既に同じコンフィグレーションが実行されていることを検知する。従って、この場合は、図９のテーブルに記載されたコンフィグレーションデータを読み込まずに、Ｓ８０６〜Ｓ８０７をスキップしてＳ８０８に遷移し、次のデータを読み込む。
【００７０】
更に、裏面のスキャンデータの解像度を変換する処理の場合も、同様の処理を実施する。即ち、図８のＳ８０５において、図９の４番目のコンフィグレーションデータ（解像度）のヘッダのデータＩＤから、既に同じコンフィグレーションが実行されていることを検知する。従って、この場合は、図９のテーブルに記載されたコンフィグレーションデータを読み込まずに、Ｓ８０６〜Ｓ８０７をスキップしてＳ８０８に遷移し、次のデータを読み込む。
【００７１】
このように既に動的部分再構成部２３０が構成されていて、再構成する必要がない場合は、コンフィグレーションデータの転送及び動的部分再構成部２３０の再構成を省略することで処理時間を短縮することが可能となる。
【００７２】
上述の実施形態１，２において、ユーザが操作部２０１から入力したコピー指示に従ってコピー処理を実行する場合で説明したが、本発明はこれに限定されない。例えばクライアントＰＣ１０３がプリントジョブを発行し、プリントサーバ１０２を介して画像形成装置１０１でプリントする場合も同様である。その場合、動的部分再構成部２３０には、コンフィグレーションデータとしてＰＤＬコードをビットマップイメージに展開するラスタイメージプロセッサ（ＲＩＰ）２３１が構成される。また画像データの回転を行う場合は画像回転部２３４が動的部分再構成部２３０に構成されることになる。
【００７３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００７４】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【図１】
2015139009.tif 000003
【図２】
2015139009.tif 000004
【図３】
2015139009.tif 000005
【図４】
2015139009.tif 000006
【図５】
2015139009.tif 000007
【図６】
2015139009.tif 000008
【図７】
2015139009.tif 000009
【図８】
2015139009.tif 000010
【図９】
2015139009.tif 000011
【図１０】
2015139009.tif 000012