(57)【要約】【課題】ＦＰＧＡ共用構成において、複数のＣＰＵ（制御部）からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供する。【解決手段】この画像処理装置は、第１の制御部と、第２の制御部と、それらと接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置である。第１の制御部は、プログラマブル処理部の第１の領域に第１の回路を構成するための回路情報から、第２の制御部に所定の処理の実行を依頼する際に必要な第１の回路情報を前記第２の制御部に転送する。第２の制御部は、第１の制御部から転送された第１の回路情報を受信し、受信した第１の回路情報およびプログラマブル処理部の第２の領域に、第２の制御部が第１の領域に第１の回路を構成できるような第２の回路を構成するための第２の回路情報を記憶し、第１および第２の回路情報を用いてそれぞれ第１および第２の回路を構成する。【選択図】  図６
2016133898.tif 000002
【特許請求の範囲】
【請求項１】
第１の制御部と、第２の制御部と、前記第１および第２の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置であって、
前記第１の制御部は、
前記プログラマブル処理部の第１の領域に第１の回路を構成するための回路情報を格納する格納手段と、
前記第２の制御部に所定の処理の実行を依頼する依頼手段と、
前記格納手段に格納した前記回路情報から前記所定の処理の実行に必要な第１の回路情報を前記第２の制御部に転送する転送手段と、
を備え、
前記第２の制御部は、
前記第１の制御部から転送された前記第１の回路情報を受信する受信手段と、
前記受信手段により受信した前記第１の回路情報を記憶する第１の記憶手段と、
前記プログラマブル処理部の第２の領域に、前記第２の制御部が前記第１の領域に前記第１の回路を構成できるような第２の回路を構成するための第２の回路情報を記憶する第２の記憶手段と、
前記第１の回路情報を用いて前記第１の領域に前記第１の回路を構成し、前記第２の回路情報を用いて前記第２の領域に前記第２の回路を構成する制御手段と、
を備える
ことを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記第２の回路を構成した後に、前記第１の回路を構成し、前記依頼手段により依頼された前記所定の処理を実行する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の記憶手段は、さらに、前記第２の領域に、前記第１の制御部が前記第１の領域に前記第１の回路を構成できるような第３の回路を構成するための第３の回路情報を記憶し、前記制御手段は、前記第３の回路情報を用いて前記第２の領域に前記第３の回路を構成する
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の制御部は、
前記所定の処理に基づいて前記第１の領域に前記第１の回路を構成する回数を管理する管理手段
をさらに備え、
前記転送手段は、前記管理手段により管理される前記回数を前記第２の制御部に転送し、前記第２の制御部は、前記制御手段を用いて、前記回数に基づいて前記第１の回路の構成を行う
ことを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第１の制御部は、前記回数が所定の回数未満である場合、前記第１の回路情報を用いて前記第１の領域に前記第１の回路を構成し、前記依頼手段は、前記第２の制御部に、前記制御手段により前記第２の回路の構成が不要であることを示す情報を付加して依頼する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記制御手段は、前記受信手段が前記依頼手段から前記第２の回路の構成が不要であることを示す情報を受信した場合、前記第１の回路の構成および前記第２の回路の構成を行わない
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１の制御部は、前記回数が前記所定の回数以上である場合、前記第１の回路を構成しない
ことを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記所定の回数は、２である
ことを特徴とする請求項５〜７のいずれか１項に記載の画像処理装置。
【請求項９】
第１の制御部と、第２の制御部と、前記第１および第２の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置の制御方法であって、
前記第１の制御部は、
前記プログラマブル処理部の第１の領域に第１の回路を構成するための回路情報を格納する格納工程と、
前記第２の制御部に所定の処理の実行を依頼する依頼工程と、
前記格納工程により格納した前記回路情報から前記所定の処理の実行に必要な第１の回路情報を前記第２の制御部に転送する転送工程と、
を有し、
前記第２の制御部は、
前記第１の制御部から転送された前記第１の回路情報を受信する受信手段と、
前記受信工程において受信した前記第１の回路情報を記憶する第１の記憶工程と、
前記プログラマブル処理部の第２の領域に、前記第２の制御部が前記第１の領域に前記第１の回路を構成できるような第２の回路を構成するための第２の回路情報を記憶する第２の記憶工程と、
前記第１の回路情報を用いて前記第１の領域に前記第１の回路の構成を行い、前記第２の回路情報を用いて前記第２の領域に前記第２の回路の構成を行う制御工程と、
を備える
ことを特徴とする画像処理装置の制御方法。
【請求項１０】
請求項１〜８のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関し、特に、プログラマブルロジックデバイスを備えた画像処理装置に関する。
【背景技術】
【０００２】
近年、ＦＰＧＡ等のプログラマブルロジックデバイスを搭載した様々なシステムが提案されている。例えば、特許文献1１は、システム内に複数個存在するＣＰＵモジュール毎にＦＰＧＡを１つずつ割り当てて搭載するシステムが開示されている。このシステムにおいて、ＦＰＧＡをコンフィギュレーションする場合、ＣＰＵが、ハードディスク等に記憶されているコンフィギュレーションデータ（ファブリック・コンフィギュレーションデータ）を、そのＦＰＧＡにロードさせる。するとＦＰＧＡは、複数の内部ロジック（ロジックエレメント）を備えるコア・ファブリック（以下、単にファブリックまたは内部回路と呼ぶ）の内部ロジックおよび配線情報を書き換える。この書き換えをファブリック（あるいは内部回路）のコンフィギュレーションと呼ぶ。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０４９５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＦＰＧＡがファブリック・コンフィギュレーションデータをＣＰＵから受け取るには、該ＦＰＧＡの所定のＩ／Ｏエレメント（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓポート）が、該ＣＰＵと関連付けられている必要がある。さらに、ＦＰＧＡ内部のコンフィギュレーション制御回路と関連付けられている必要がある。このＩ／Ｏエレメントは、ＦＰＧＡのファブリックとＦＰＧＡの外部回路（例えば、ＣＰＵ）とを接続するインターフェースであり、ファブリックの周辺に配置される。Ｉ／Ｏエレメントがどの外部回路と関連付けられ、ＦＰＧＡ内部のコンフィギュレーション制御回路と関連付けられるかは、動的に変更可能（プログラマブル）であり、次のようにコンフィギュレーションされる。ＦＰＧＡは、ファブリックのコンフィギュレーションの前に、所定のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）からＩ／Ｏエレメントの関連付けを決めるためのコンフィギュレーションデータ（ペリフェラル・コンフィギュレーションデータ）をロードする。すると、ＦＰＧＡは、ファブリックの周辺の回路（周辺回路またはペリフェラル回路と呼ぶ）に含まれるＩ／Ｏエレメントの関連付け（配線情報）を書き換える。この書換えをペリフェラル回路のコンフィギュレーションと呼ぶ。
【０００５】
特許文献１に開示されるシステムでは、１つのＣＰＵに対して１つのＦＰＧＡが割り当てられているため、ＦＰＧＡのペリフェラル回路は、対応するＣＰＵからファブリック・コンフィギュレーションデータを受け取り可能なように構成されていればよかった。しかしながら、システム規模を削減するため、複数のＣＰＵに対して１つのＦＰＧＡが割り当てられるシステム（ＦＰＧＡ共用構成）を採用すると、特許文献１の技術を適用することが難しい。すなわち、ＦＰＧＡは、複数のＣＰＵに１つのＩ／Ｏエレメントを関連付けることができないため、複数のＣＰＵからファブリックのコンフィギュレーションを行うことができない。
【０００６】
本発明は、上記課題を鑑みて、ＦＰＧＡ共用構成において、複数のＣＰＵ（制御部）からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の画像処理装置は、第１の制御部と、第２の制御部と、前記第１および第２の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置であって、前記第１の制御部は、前記プログラマブル処理部の第１の領域に第１の回路を構成するための回路情報を格納する格納手段と、前記第２の制御部に所定の処理の実行を依頼する依頼手段と、前記格納手段に格納した前記回路情報から前記所定の処理の実行に必要な第１の回路情報を前記第２の制御部に転送する転送手段と、を備え、前記第２の制御部は、前記第１の制御部から転送された前記第１の回路情報を受信する受信手段と、前記受信手段により受信した前記第１の回路情報を記憶する第１の記憶手段と、前記プログラマブル処理部の第２の領域に、前記第２の制御部が前記第１の領域に前記第１の回路を構成できるような第２の回路を構成するための第２の回路情報を記憶する第２の記憶手段と、前記第１の回路情報を用いて前記第１の領域に前記第１の回路を構成し、前記第２の回路情報を用いて前記第２の領域に前記第２の回路を構成する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のＣＰＵに対して１つのＦＰＧＡが割り当てられるシステム（ＦＰＧＡ共用構成）において、複数のＣＰＵ（制御部）からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムの構成の一例を示すブロック図である。
【図２】プログラマブル処理部の内部ブロック図である。
【図３】ペリフェラル・コンフィギュレーションデータの格納先を示す図である。
【図４】要求機能対応テーブルの一例を示す図である。
【図５】標準処理部の制御部の処理を示すフローチャートである。
【図６】拡張処理部の制御部の処理を示すフローチャートである。
【図７】画像処理システム全体の処理を示すシーケンス図である。
【図８】標準処理部の制御部の処理を示すフローチャートである。
【図９】拡張処理部の制御部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面などを参照して説明する。
【００１１】
（第１実施形態）
＜システムの全体構成＞
図１は、本実施形態に係る画像処理システム（画像処理装置）１００の全体構成を示すブロック図である。画像処理システム１００は、標準処理部１１０と、プログラマブル処理部３００を含む拡張処理部１２０を有する。標準処理部１１０は、画像処理システム１００の動作制御や、色空間変換・ハーフトーニングといった基本的な画像処理等の処理を実行する。一般的に、標準処理部１１０は、メインコントローラーやマザーボードなどと呼ばれる処理部である。以下、標準処理部１１０の内部ブロックについて説明する。
【００１２】
制御部（第１の制御部）１１１は、標準処理部１１０を制御するための中央処理装置（ＣＰＵ）である。なお、本実施形態では、制御部１１１は、ＰＣＩ  Ｅｘｐｒｅｓｓのポートを少なくとも１ポート内蔵する。また、標準処理部１１０は、制御部１１１が動作するためのワークメモリであって、画像データ等のデータを一時記憶するためのメモリでもあるＲＡＭ１１２を有する。
【００１３】
補助記憶部（格納手段）１１３は、ハードディスクやフラッシュメモリなどの不揮発性の記憶装置であって、制御部１１１が実行するブートプログラムを格納する。また、補助記憶部１１３には、制御部１１１から後述のプログラマブル処理部３００のファブリック（内部回路）のコンフィギュレーションを行う際に用いられるファブリック・コンフィギュレーションデータが格納される。ファブリック・コンフィギュレーションデータは、後述のファブリック３０２に構成される内部ロジックおよび配線情報（回路情報）を示す。以下、制御部１１１からのファブリックのコンフィギュレーションのことをＣＰＵマスター・コンフィギュレーションと呼ぶ。
【００１４】
外部ＩＦ部１１４は、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ等に対応したインターフェースであり、ＭＡＣやＰＨＹ等のコネクタを含む。なお、図１において、標準処理部１１０は、外部ＩＦ部１１４を介して拡張処理部１２０のみと接続されているが、ネットワークを介して、例えば、ネットワークサーバやクライアントＰＣといった外部情報端末と接続されてもよい。
【００１５】
操作表示部１１５は、表示機能と操作機能を兼ねたタッチパネル等のデバイスであり、標準処理部１１０のユーザインターフェース部として機能する。なお、操作表示部１１５は、液晶ディスプレイとハードキーを組み合わせて構成してもよい。そして、上記の標準処理部１１０の各構成要素がシステムバス１１６上に構成される。
【００１６】
次に、拡張処理部１２０の内部ブロックについて説明する。本実施形態では、拡張処理部１２０は、標準処理部１１０とは異なる種類の処理の実行や、同種の処理でもより高速に実行できるように構成されている。一般的に、拡張処理部１２０は、アドオンハードウェアやアクセラレータなどと呼ばれる。以下、拡張処理部１２０の内部ブロックを説明する。
【００１７】
制御部（第２の制御部）１２１は、拡張処理部１２０を制御するための中央処理装置である。なお、本実施形態では、制御部１１１は、ＰＣＩ  Ｅｘｐｒｅｓｓのポートを少なくとも１ポート内蔵する。補助記憶部（第１の記憶手段）１２３は、フラッシュメモリなどの不揮発性の記憶装置であり、制御部１２１が実行するためのブートプログラムなどが格納される。また、拡張処理部１２０は、制御部１２１が動作するためのワークメモリであるＲＡＭ１２２を有する。
【００１８】
外部ＩＦ部１２４は、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢに対応したインターフェースであり、ＭＡＣやＰＨＹ等のコネクタを含む。なお、図１において、拡張処理部１２０は、外部ＩＦ部１２４を介して標準処理部１１０のみと接続されているが、ネットワークサーバやクライアントＰＣといった他の外部情報端末と接続されてもよい。そして、上記の拡張処理部１２０の各構成要素がシステムバス１２６上に構成される。また、標準処理部１１０と拡張処理部１２０は、外部ＩＦ部１１４および外部ＩＦ部１２４を介して、ネットワークバス１２７上に構成される。
【００１９】
プログラマブル処理部３００は、ＰＣＩ  Ｅｘｐｒｅｓｓ信号線（単に、ＰＣＥe信号と呼ぶ）等で構成されるインターフェース１３０および１３１を介して、制御部１１１および制御部１２１と接続されるデバイスである。プログラマブル処理部３００は、プログラミング可能なデバイスであれば限定はしないが、本実施形態では、ＦＰＧＡとして説明する。プログラマブル処理部３００は、ＰＣＩ  Ｅｘｐｒｅｓｓのポートを少なくとも２ポート内蔵する。なお、本実施形態のプログラマブル処理部３００は、同時に、インターフェース１３０および１３１の両方をＣＰＵマスター・コンフィギュレーションのためのインターフェースとして機能させることはできないものとする。なお、本実施形態において、この「同時」とは、２つのタイミングがオーバーラップした、または全くの同一タイミングということである。すなわち、時分割による見かけ上の同一タイミングは、同時という意味には含まれない。
【００２０】
ＲＡＭ１３４は、ＳＤＲＡＭ等により構成される高速アクセス可能な記憶装置であり、プログラマブル処理部３００と接続されワークメモリデバイスとして機能する。ＲＯＭ１３２は、不揮発性の記憶装置であり、プログラマブル処理部３００のペリフェラル回路構成をコンフィギュレーションするためのペリフェラル・コンフィギュレーションデータが格納される。
【００２１】
＜プログラマブル処理部３００の構成例＞
次に、図２および３を用いて、本実施形態に係るプログラマブル処理部３００の内部ブロック、およびペリフェラル・コンフィギュレーションデータの関係について説明する。前述のように、本実施形態では、プログラマブル処理部３００は、ＦＰＧＡであるとして説明を進める。図２は、プログラマブル処理部の内部ブロック図である。図２に示すように、プログラマブル処理部３００は、ペリフェラル回路（第２の回路）３０１と、論理回路が構成される領域（第１の領域）にファブリック（第１の回路）３０２を有する。ペリフェラル回路３０１は、プログラマブル処理部３００の外部Ｉ／Ｏと内蔵するＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）との接続により構成される。ペリフェラル回路３０１は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４および３０５、メモリコントローラＩＰ３０６、コンフィギュレーションコントローラ３０３、を含む領域（第２の領域）に構成される回路である。
【００２２】
ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４およびＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０５は、ＰＣＩ  ＥｘｐｒｅｓｓのＰＨＹ等を含むプロトコルスタックである。なお、本実施形態では、プログラマブル処理部３００は、少なくとも２ポート分のＰＣＩ  Ｅｘｐｒｅｓｓ接続を実現できる。ＰＣＩ  ＥｘｐｒｅｓｓＩＰ３０４および３０５は、それぞれ制御部１１１、制御部１２１と接続し、ジョブや画像等のデータ転送や、ファブリック３０２をコンフィギュレーションするためのファブリック・コンフィギュレーションデータの転送等に用いられる。なお、本実施形態では、ＰＣＩ  Ｅｘｐｒｅｓｓのポートを採用しているが、これに限定することなく、データ転送等が可能であれば、他のポートであってもよい。
【００２３】
メモリコントローラＩＰ３０６は、ＤＤＲ規格等に対応したＰＨＹやコントローラを含むメモリインターフェースであり、ＲＡＭ１３３と接続し、画像データ等の一時格納に用いられる。コンフィギュレーションコントローラ３０３は、ＲＯＭ１３１からペリフェラル・コンフィギューレションデータをロードし、ペリフェラル回路３０１を構築する。ペリフェラル回路３０１を構成する際、コンフィギュレーションコントローラ３０３は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４および３０５、メモリコントローラＩＰ３０６のパラメータ設定を制御する。さらに、コンフィギュレーションコントローラ３０３は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４および３０５を介して転送されるファブリック・コンフィグレーションデータを用いてファブリック３０２の論理回路を構成する。
【００２４】
図３は、ＲＯＭ１３２に格納されるペリフェラル・コンフィギュレーションデータの格納先を説明する図である。本実施形態では、ＲＯＭ１３２の０ｘ００＿００００番地からペリフェラル・コンフィギュレーションデータＡが格納されており、０ｘ２０＿００００番地からペリフェラル・コンフィギュレーションデータＢが格納されている。本実施形態において、ＲＯＭ１３２の番地は、０ｘ３Ｆ＿ＦＦＦＦ番地まであるものとする。
【００２５】
図２（Ａ）は、ペリフェラル・コンフィギュレーションデータＡ（第３の回路情報）を用いてコンフィギュレーションコントローラ３０３が構成するブロック図である。ペリフェラル・コンフィギュレーションデータＡを用いて構成したペリフェラル回路３０１では、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４とコンフィギュレーションコントローラ３０３が接続している。この接続状態により、制御部１１１は、インターフェース１３０およびＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４を介してファブリック・コンフィギュレーションデータを転送し、ＣＰＵマスター・コンフィギュレーションが可能であることを示している。
【００２６】
図２（Ｂ）は、ペリフェラル・コンフィギュレーションデータＢ（第２の回路情報）を用いてコンフィギュレーションコントローラ３０３が構成するブロック図である。ペリフェラル・コンフィギュレーションデータＢを用いて構成したペリフェラル回路３０１では、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０５とコンフィギュレーションコントローラ３０３が接続している。この接続状態により、制御部１２１は、インターフェース１３１およびＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０５を介してファブリック・コンフィギュレーションデータを転送し、ＣＰＵマスター・コンフィギュレーションが可能であることを示している。
【００２７】
ファブリック３０２には、コンフィギュレーションコントローラ３０３により、ファブリック・コンフィギュレーションデータに基づいた論理回路が構築される。本実施形態に係る画像処理システム１００においては、電源投入後、まずコンフィグレーションコントローラ３０３は、ＲＯＭ１３２からペリフェラル・コンフィギュレーションデータＡをロードし、ペリフェラル回路を構成する。次に、制御部１１１は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０４を介してファブリック・コンフィギュレーションデータをコンフィギュレーションコントローラ３０３に転送することで、ファブリック３０２に論理回路を構成する。
【００２８】
＜要求機能対応テーブル＞
図４は、画像処理システム１００が行うジョブにより発生するジョブ要求機能と、ジョブ要求機能に対応するコンフィギュレーションデータの関係を管理する要求機能対応テーブルの一例を説明する図である。
【００２９】
ジョブ要求機能の列には、画像処理システム１００が処理可能な機能が示されている。本実施形態では、画像処理システム１００は、熱源人感機能、オブジェクト認識機能、カメラ人感機能、および文字読取機能を有する。熱源人感機能は、赤外線センサ等を用いて画像処理システム１００に近づく人を検知する機能であり、オブジェクト認識機能は、画像データの各領域が文字・写真のいずれかを認識する機能である。また、カメラ人感機能は、カメラを用いて画像解析することにより画像処理システム１００に近づく人を検知する機能であり、文字読取機能は、画像データに含まれる文字を認識する機能である。
【００３０】
サポートデバイスの列には、対応するジョブ要求機能を実行可能なデバイスが示されている。本実施形態では、熱源人感機能およびオブジェクト認識機能は、標準処理部１１０が行う機能であり、カメラ人感機能および文字読取機能は、拡張処理部１２０が行う機能であることを示す。
【００３１】
構成回数の列には、上記の要求機能を実行する際に、プログラマブル処理部３００の再構成が必要な回数が示されている。本実施形態では、熱源人感機能は、プログラマブル処理部３００を利用しないことを示す。また、オブジェクト認識機能は、プログラマブル処理部３００を１回の再構成により実現される論理回路を利用することを示す。さらに、カメラ人感機能は、プログラマブル処理部３００を２回再構成しながら利用することを示している。
【００３２】
ファブリック・コンフィギュレーションデータの列には、対応するジョブ要求機能を実行する際に必要なコンフィギュレーションデータを一意に特定できる情報が示されている。この情報に基づき特定できるコンフィギュレーションデータを用いてプログラマブル処理部３００をコンフィギュレーションして構成される論理回路を利用して、各制御部は、処理を実行することができる。オブジェクト認識機能では、画像データの各領域が文字・写真のいずれかを示す情報を生成する論理回路を構成するための「ｓｔｄ＿ＡＳＥＰ．ｃｏｎｆｉｇ」が用いられる。カメラ人感機能では、入力画像の歪みを補正した出力画像を得る論理回路を構成するための「ｅｘｔ＿ＧＥＯＣ．ｃｏｎｆｉｇ」と、画像データから特徴量情報を生成する論理回路を構成するための「ｅｘｔ＿ＣＨＡＤ．ｃｏｎｆｉｇ」が用いられる。文字読取機能では、画像データに含まれる文字を認識する情報を生成する論理回路を構成する「ｅｘｔ＿ＣＨＡＲ．ｃｏｎｆｉｇ」が用いられる。
【００３３】
標準処理部１１０は、コンフィギュレーション対応テーブルを補助記憶部１１３に格納している。制御部１１１は、ジョブに対して、要求機能対応テーブルに基づいて、当該ジョブ要求機能を実現するためのデバイスやコンフィギュレーションデータを決定することができる。
【００３４】
＜再構成制御フロー＞
本実施形態において、ジョブによる要求機能の実行を、拡張処理部が行う場合のプログラマブル処理部３００の再構成制御の処理フローについて、図５および６のフローチャートを用いて説明する。また、制御部１１１と制御部１２１での通信は、外部ＩＦ部１１４および外部ＩＦ部１２４を介してネットワークパス１２７上で実現される。
【００３５】
まず、図５を用いて、制御部１１１が行う処理について説明する。ステップＳ１０１で、制御部１１１は、サポートデバイスが拡張処理部１２０のジョブを受信したか否かを判定する。本実施形態では、カメラ人感機能を必要とするジョブは、ユーザからの処理要求が所定時間発生しない場合、画像処理システム１００が実施するジョブである。なお、画像処理システム１００が実行するジョブは、操作表示部１１５や外部ＩＦ１１４を介したユーザ要求や、画像処理システム１００に新たにデバイスが追加された時などに発生する。制御部１１１は、受信（発生）したジョブを解析し、ジョブにより必要となる要求機能を認識し、要求機能対応テーブル内の「サポートデバイス」を参照することによってサポートデバイスが拡張処理部１２０のジョブであるか否かを判定する。制御部１１１が、要求機能のサポートデバイスが拡張処理部１２０のジョブを受信したと判定した場合（ＹＥＳ）、ステップＳ１０２に移行する。一方、サポートデバイスが拡張処理部１２０のジョブを受信していない場合（ＮＯ）、受信するまで判定を繰り返す。
【００３６】
次に、ステップＳ１０２で、制御部１１１は、当該ジョブがプログラマブル処理部３００を利用するジョブか否かを判定する。この判定は、制御部１１１が認識した要求機能に基づき、要求機能対応テーブル内の「構成回数」を参照することで判定する。構成回数が１以上の場合、プログラマブル処理部３００を利用するジョブであると判定し（ＹＥＳ）、ステップＳ１０３へ移行する。一方、構成回数が１未満の場合、プログラマブル処理部３００を利用しないジョブであると判定し（ＮＯ）、ステップＳ１０５へ移行する。例えば、カメラ人感機能を拡張処理部１２０に実行依頼する場合、「構成回数」が２であることから、この場合はステップＳ１０３へ移行する。
【００３７】
次に、ステップＳ１０３で、制御部１１１は、拡張処理部１２０に対して、不図示の依頼手段により機能実行（所定の処理の実行）を依頼する。本実施形態において、機能実行依頼には、少なくとも実行する機能の種類、および実行完了条件を通知することによって行う。実行完了条件とは、例えば、「所定ページ画像処理実行」や、標準処理部１１０からの「停止命令」や、所定の結果を得た時のみ完了する「条件付き完了」などを用いてよい。さらに、機能の種類によって、機能実行に必要なパラメータや処理対象のデータを転送してもよい。また、制御部１１１は、プログラマブル処理部３００を用いる機能であるか否かを示す情報を付加して拡張処理部１２０に依頼を行ってもよい。プログラマブル処理部３００を用いる機能であるか否かを示す情報を付加して依頼することにより、拡張処理部１２０の制御部１２１は、依頼される機能に対してプログラマブル処理部３００が必要か否かの対応を管理しなくてもよい。
【００３８】
次に、ステップＳ１０４で、制御部１１１は、ステップＳ１０３で依頼した機能において必要となるファブリック・コンフィギューレションデータ（第１の回路情報）を、補助記憶部１１３から読み出す。そして、不図示の転送手段により、外部ＩＦ部１１４を介してネットワークパス１２７を通して拡張処理部１２０に転送する。ここで、制御部１１１は、要求機能に基づき、要求機能対応テーブル内の「ファイブリック・コンフィギューレションデータ」を参照することで、補助記憶部１１３から読み出すデータを選択することが出来る。例えば、カメラ人感機能を拡張処理部１２０に実行依頼する場合、制御部１１１は、ファブリック・コンフィギュレーションデータとして、ｅｘｔ＿ＧＥＯＣ．ｃｏｎｆｉｇと、ｅｘｔ＿ＣＨＡＲ．ｃｏｎｆｉｇを、拡張処理部１２０に転送し、本処理を終了する。一方、ステップＳ１０５で、制御部１１１は、ステップＳ１０３と同様に、拡張処理部１２０に対して、機能実行を依頼する。そして、本処理を終了する。
【００３９】
次に、図６を用いて、制御部１２１が行う処理について説明する。まず、ステップＳ２０１で、制御部１２１は、機能実行依頼を受信するまで待機して、機能実行依頼を受信したか否かを判定する。ステップＳ１０３またはステップＳ１０５において制御部１１１が行った機能実行依頼を受信した場合（ＹＥＳ）、ステップＳ２０２へ移行する。一方、機能実行依頼を受信していない場合（ＮＯ）、受信するまで待機する。
【００４０】
ステップＳ２０２で、制御部１２１は、受信した機能実行依頼から、機能の種類を認識し、認識した機能においてプログラマブル処理部３００を利用するか否かを判定する。制御部１２１は、認識した機能の種類に対応する処理の手順を管理するテーブル等を用いることで判定してもよく、依頼内容からプログラマブル処理部３００の利用に関する情報を得ることで判定してもよい。制御部１２１がプログラマブル処理部３００を利用すると判定した場合（ＹＥＳ）、ステップＳ２０３へ移行する。一方、利用しないと判定した場合（ＮＯ）、ステップＳ２１１へ移行し、制御部１２１は、依頼された処理を実行し、ステップＳ２１２で、完了したか（完了条件を満たしているか）否かを判定する。完了条件を満たしている場合（ＹＥＳ）、処理を終了する。一方、完了条件を満たしていない場合（ＮＯ）、完了条件を満たすまで、依頼された機能を実行する。
【００４１】
次に、ステップＳ２０３で、制御部１２１は、ステップＳ２０１で依頼された機能に用いるファブリック・コンフィギュレーションデータを、不図示の受信手段により標準処理部１１０から受信し、ＲＡＭ１２２または補助記憶部１２３に記憶する。例えば、カメラ人感機能では、ｅｘｔ＿ＧＥＯＣ．ｃｏｎｆｉｇと、ｅｘｔ＿ＣＨＡＲ．ｃｏｎｆｉｇをファブリック・コンフィギュレーションデータとして扱う。
【００４２】
次に、ステップＳ２０４で、制御部１２１は、不図示の制御手段によりＲＯＭ（第２の記憶手段）１３２に格納されているペリフェラル・コンフィギュレーションデータＢを用いて、プログラマブル処理部３００にペリフェラル回路３０１を再構成する指示を行う。本実施形態では、制御部１２１は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０５およびファブリック３０２を介して、コンフィギュレーションコントローラ３０３対して命令を行う。なお、プログラマブル制御部３００とＲＯＭ１３２間に制御デバイスを準備して、制御デバイスに制御部１２１からロードするペリフェラル・コンフィギュレーションデータを切り替える制御を行ってもよい。
【００４３】
ステップＳ２０５で、制御部１２１は、ペリフェラル・コンフィギュレーションが完了したか否かを判定する。すなわち、ペリフェラル・コンフィギュレーションの完了を待機し、完了を確認できた場合（ＹＥＳ）、ステップＳ２０６へ移行する。このとき、プログラマブル処理部３００は、図２（Ｂ）に示す状態になる。本実施形態では、ステップＳ２０５における完了の確認は、プログラマブル処理部３００が出力するコンフィギュレーション完了信号（不図示）を制御部１２１が検知することで行う。また、ペリフェラル・コンフィギュレーションに必要な時間を制御部１２１が有することで判定してもよい。なお、ステップＳ２０３に先行してステップＳ２０４からステップＳ２０５のペリフェラル・コンフィギュレーションを実行し、その後ステップＳ２０３のファブリック・コンフィギュレーションデータ受信の順で処理を行ってもよい。一方、ペリフェラル・コンフィギュレーションの完了を確認できない場合（ＮＯ）、完了まで待機する。
【００４４】
なお、ステップＳ２０４およびステップＳ２０５において、インターフェース１３１と接続するＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰ３０５がコンフィギュレーションコントローラ３０３と接続された。これにより、制御部１２１がファブリック３０２をコンフィギュレーションすることが可能となる。次に、ステップＳ２０６で、制御部１２１は、不図示の制御手段によりステップＳ２０３で受信したファブリック・コンフィギュレーションデータを用いて、コンフィギュレーションコントローラ３０３にファブリック３０２のコンフィギュレーション指示を行う。例えば、カメラ人感機能では、このときｅｘｔ＿ＧＥＯＣ．ｃｏｎｆｉｇを用いて、カメラからの入力画像の歪みを補正する論理回路がファブリック３０２に構成される。
【００４５】
次に、ステップＳ２０７で、制御部１２１は、ファブリック３０２のコンフィギュレーションが完了したか否かを判定する。すなわち、ファブリック３０２のコンフィギュレーションの完了を待機し、完了を確認できた場合（ＹＥＳ）、ステップＳ２０８へ移行する。一方、ファブリック３０２のコンフィギュレーションの完了を確認できない場合（ＮＯ）、完了まで待機する。
【００４６】
次に、ステップＳ２０８で、制御部１２１は、プログラマブル処理部３００を利用して、設定および処理対象データ等の転送処理を行い、依頼された機能の処理を実行する。次に、ステップＳ２０９で、制御部１２１は、ステップＳ２０８の処理が完了したか（完了条件を満たしているか）否かを判定する。完了条件を満たしている場合（ＹＥＳ）、処理を終了する。一方、完了条件を満たしていない場合（ＮＯ）、ステップＳ２１０へ移行する。なお、完了条件は、ステップＳ２０１で受信した依頼に基づいて制御部１２１が判定する。例えば、カメラ人感機能において、人検知した場合のみ完了とする「条件付き完了」の場合、検知していなければ、ステップＳ２１０に進む。また、複数回のファブリック３０２の再構成と処理実行が必要な機能においても、複数回の再構成と処理が完了しない場合は、ステップＳ２１０へ移行する。
【００４７】
次に、ステップＳ２１０で、制御部１２１は、ファブリック３０２のコンフィギュレーションが必要か否かを判定する。ファブリック３０２のコンフィギュレーションが必要である場合（ＹＥＳ）、ステップＳ２０６へ戻り、ファブリック３０２を再構成する処理を行う。複数回のファブリック３０２の再構成と処理実行が必要な機能において、複数回の処理が完了していない場合は、必要であると判定し、ステップＳ２０６へ移行する。例えば、カメラ人感機能の場合、２回目のステップＳ２０６では、制御部１２１は、ｅｘｔ＿ＣＨＡＤ．ｃｏｎｆｉｇを用いて、画像データから特徴量を抽出する論理回路がファブリックＳ３０２に構成する。一方、ファブリック３０２のコンフィギュレーションが必要ではない場合（ＮＯ）、ステップＳ２０８に戻り、依頼された機能を実行する。以上、図５および６の処理により、拡張処理部１２０がプログラマブル処理部３００を制御して利用する場合、ペリフェラル回路３０１の構成を制御することで、ＣＰＵマスター・コンフィギュレーション可能なインターフェースが拡張処理部１２０側に変更される。
【００４８】
＜機能実行シーケンス＞
図７は、本実施形態に係る拡張処理部１２０がカメラ人感機能を実行した場合の、制御部１１１、制御部１２１、プログラマブル処理部３００の処理シーケンスである。本実施形態では、図４を参照して、カメラ人感機能は、サポートデバイスが拡張処理部１２０で、構成回数が２である。なお、図７に示す各ステップは、図５および６で用いた各ステップに対応するため、その詳細な説明は省略する。
【００４９】
まず、標準処理部１１１の制御部１１１は、ステップＳ１０３およびステップＳ１０４で、ファブリック・コンフィギュレーションデータを制御部１２１に転送する。拡張処理部１２１の制御部１２１は、ステップＳ２０１およびステップＳ２０３で、カメラ人感機能に必要な２つのファブリック・コンフィギューレションデータを受信する。次に、ステップＳ２０４〜ステップＳ２１０で説明したように、制御部１２１は、プログラマブル処理部３００に構成したカメラからの入力画像の歪みを補正する論理回路を利用した処理を行う。そして、制御部１２１は、プログラマブル処理部３００に構成した画像データから特徴量を抽出する論理回路を利用した処理を行う。なお、図示していないが、図７において、２回目のステップＳ２０６の前で、ステップＳ２１０の判定処理を実行している。
【００５０】
以上のように、本実施形態によれば、従来のように、制御部１２１が制御部１１１に、ファブリック３０２のコンフィギュレーションを依頼する必要がなくなる。このことにより、各制御部がプログラマブル処理部３００を利用した処理を適切なタイミングで開始できることが可能となる。
【００５１】
（第２実施形態）
第１実施形態では、ジョブ要求機能のサポートデバイスが拡張処理部１２０でありプログラマブル処理部３００を利用する場合、ペリフェラル回路３０１の再構成指示を行った。これに対して、本実施形態では、要求機能対応テーブル内の構成回数が２回以上のときのみ、ペリフェラル回路３０１の再構成指示を行う場合について、図８および９を用いて説明する。
【００５２】
まず、図８を用いて、制御部１１１が行う処理について説明する。なお、ステップＳ１０１およびステップＳ１０２、ステップＳ１０３〜ステップＳ１０５の処理については第１実施形態と同様の処理であるため、その詳細な説明を省略する。
【００５３】
次に、ステップＳ３０１で、制御部１１１は、当該ジョブがプログラマブル処理部３００を、２回以上（所定の回数以上）フィギュレーションを行って利用するジョブか否かを判定する。この判定は、制御部１１１が認識した要求機能に基づき、要求機能対応テーブル内の「構成回数」を参照することで判定する。構成回数が２以上の場合（ＹＥＳ）、ステップＳ１０３へ移行する。一方、構成回数が２以上でない場合（ＮＯ）、すなわち、所定の回数未満である場合、ステップＳ３０２へ移行する。例えば、文字読取機能を拡張処理部１２０に実行依頼する場合、「構成回数」が１であることから、ステップＳ３０２へ移行する。次に、ステップＳ３０２で、制御部１１１は、補助記憶部１１３に格納されたファブリック・コンフィギュレーションデータを用いて、コンフィギュレーションコントローラ３０３にファブリック３０２の論理回路のコンフィギュレーション指示を行う。
【００５４】
次に、ステップＳ３０３で、制御部１１１は、ファブリック３０２のコンフィギュレーションが完了したか否かを判定する。すなわち、ファブリック３０２のコンフィギュレーションの完了を待機し、完了を確認できた場合（ＹＥＳ）、ステップＳ３０４に移行する。一方、ファブリック３０２のコンフィギュレーションの完了を確認できない場合（ＮＯ）、完了まで待機する。
【００５５】
次に、ステップＳ３０４で、制御部１１１は、拡張処理部１２０に対して、機能実行を依頼する。本実施形態では、機能実行依頼には、少なくとも実行する機能の種類、および実行完了条件を通知することによって行う。また、このとき、拡張処理部１２０の制御部１２１がプログラマブル処理部３００のコンフィギュレーションが必要ないこと（不要であること）を示す情報を付加して依頼して、処理を終了する。
【００５６】
次に、図６を用いて制御部１２１が行う処理について説明する。なお、ステップＳ１０１およびステップＳ１０２、ステップＳ１０３〜ステップＳ１０５、ステップＳ２０３〜ステップ２１２の処理については第１実施形態と同様の処理であるため、その詳細な説明を省略する。
【００５７】
ステップＳ４０１で、制御部１２１は、受信した依頼から、制御部１２１がファブリック３０２のコンフィギュレーションを可能となるようにペリフェラル回路３０１のコンフィギュレーションを行う必要があるか（不要か）否かを判定する。なお、本実施形態では、依頼内容からプログラマブル処理部３００のコンフィギュレーションの必要に関する情報を得ることで判定する。すなわち、制御部１１１のステップＳ３０４の処理により、すでに拡張処理部１２０が用いる論理回路がファブリック３０２に構成されているか否かを判定する。
【００５８】
ペリフェラル回路３０１のコンフィギュレーションを行う必要がある場合（ＹＥＳ）、ステップＳ２０３へ移行する。一方、ペリフェラル回路３０１のコンフィギュレーションを行う必要がない場合（ＮＯ）、すなわち、すでに拡張処理部１２０が用いる論理回路がファブリック３０２に構成されていることが認識できる場合、ステップＳ２０８へ移行する。また、制御部１２１は、認識した機能の種類に対応する処理の手順を管理するテーブル等を用いて、制御部１１１のステップＳ３０１の判定において「構成回数」を参照することで、ステップＳ２０３またはステップＳ２０８へ移行するかを判定してもよい。
【００５９】
以上、本実施形態によれば、必要となるファブリック３０２の構成回数が少ない場合、制御部１１１がファブリック３０２のコンフィギュレーションを行うことにより、第１実施形態の効果に加え、コンフィギュレーションを行う処理手順を削減することができる。これにより、処理を開始するまでの時間を短縮することができる。
【００６０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６１】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2016133898.tif 000003
【図２】
2016133898.tif 000004
【図３】
2016133898.tif 000005
【図４】
2016133898.tif 000006
【図５】
2016133898.tif 000007
【図６】
2016133898.tif 000008
【図７】
2016133898.tif 000009
【図８】
2016133898.tif 000010
【図９】
2016133898.tif 000011