(57)【要約】      （修正有）【課題】コンフィギュレーションメモリに書き込まれるコンフィギュレーションデータを記憶しておくために必要なメモリ容量を削減する方法を提供する。【解決手段】論理回路をコンフィギュレーションデータに従って構成可能な回路と、前記回路上の所定領域に第１の論理回路を構成するための第１のコンフィギュレーションデータと、前記回路上の所定領域に第２の論理回路を構成するための第２のコンフィギュレーションデータとを記憶する記憶手段と、所定領域と異なる領域に対して、記憶されている第２のコンフィギュレーションデータと、所定のコンフィギュレーションデータとを用いて、所定領域に第２の論理回路を構成するための第２のコンフィギュレーション処理を実行するコンフィギュレーション手段と、を有する。【選択図】図７
2016111629.tif 000002
【特許請求の範囲】
【請求項１】
論理回路をコンフィギュレーションデータに従って構成可能な回路と、
前記回路上の所定領域に第１の論理回路を構成するための第１のコンフィギュレーションデータと、前記回路上の所定領域に第２の論理回路を構成するための第２のコンフィギュレーションデータとを記憶する記憶手段と、
前記所定領域と前記所定領域とは異なる領域に対して、前記記憶されている第１のコンフィギュレーションデータと、所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第１の論理回路を構成するための第１のコンフィギュレーション処理を実行し、
前記所定領域と前記異なる領域に対して、前記記憶されている第２のコンフィギュレーションデータと、前記所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第２の論理回路を構成するための第２のコンフィギュレーション処理を実行するコンフィギュレーション手段と、
を有し、
前記記憶手段は、前記所定のコンフィギュレーションデータを重複して記憶しておらず、
前記第１および第２のコンフィギュレーション処理後の前記異なる領域に構成される論理回路は同一であることを特徴とする画像処理システム。
【請求項２】
コンフィギュレーション処理とは、前記回路に所定の単位でコンフィギュレーションデータを書き込む処理であることを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記第１のコンフィギュレーション処理の際に、前記コンフィギュレーション手段は、
前記第１のコンフィギュレーションデータおよび前記所定のコンフィギュレーションデータを、前記所定の単位に基づいて、マージし、
前記所定領域と前記異なる領域に、前記所定の単位で、当該マージ後のコンフィギュレーションデータを書き込むことを特徴とする請求項２に記載の画像処理システム。
【請求項４】
前記第１のコンフィギュレーション処理の際に、前記コンフィギュレーション手段は、
前記マージを、前記所定の単位、および、前記所定領域の前記回路上の位置に基づいて行うことを特徴とする請求項３に記載の画像処理システム。
【請求項５】
前記所定の単位とは、カラムの単位、ローの単位、正方形領域の単位の何れかであることを特徴とする請求項２乃至４の何れか１項に記載の画像処理システム。
【請求項６】
前記所定の単位は、前記所定領域と前記異なる領域とにまたがる単位であることを特徴とする請求項２乃至５の何れか１項に記載の画像処理システム。
【請求項７】
前記コンフィギュレーション手段は、前記所定の領域に前記第１のコンフィギュレーションデータを書き込み、且つ、前記異なる領域に前記所定のコンフィギュレーションデータを書き込むことで、前記所定領域に前記第１の論理回路を構成するための前記コンフィギュレーション処理を行うことを特徴とする請求項１乃至６の何れか１項に記載の画像処理システム。
【請求項８】
前記コンフィギュレーション手段は、前記所定の領域に前記第２のコンフィギュレーションデータを書き込み、且つ、前記異なる領域に前記所定のコンフィギュレーションデータを書き込むことで、前記所定領域に前記第２の論理回路を構成するための前記コンフィギュレーション処理を行うことを特徴とする請求項１乃至７の何れか１項に記載の画像処理システム。
【請求項９】
前記記憶手段は、前記所定のコンフィギュレーションデータを記憶しており、
前記コンフィギュレーション手段は、
前記第１のコンフィギュレーション処理の際に、前記所定のコンフィギュレーションデータを前記記憶手段から取得し、
前記第２のコンフィギュレーション処理の際に、前記所定のコンフィギュレーションデータを前記記憶手段から取得することを特徴とする請求項１乃至８の何れか１項に記載の画像処理システム。
【請求項１０】
前記記憶手段は、前記所定のコンフィギュレーションデータを記憶せず、
前記コンフィギュレーション手段は、
前記第１のコンフィギュレーション処理の際に、前記所定のコンフィギュレーションデータを生成し、
前記第２のコンフィギュレーション処理の際に、前記所定のコンフィギュレーションデータを生成することを特徴とする請求項１乃至８の何れか１項に記載の画像処理システム。
【請求項１１】
前記コンフィギュレーション手段は、前記所定領域の前記回路上の位置に基づいて、前記所定のコンフィギュレーションデータを生成することを特徴とする請求項１０に記載の画像処理システム。
【請求項１２】
前記所定のコンフィギュレーションデータは、前記コンフィギュレーション手段が前記異なる領域に構成されている論理回路を変更せずに前記第１および第２のコンフィギュレーション処理を実行するために用いられることを特徴とする請求項１乃至１１の何れか１項に記載の画像処理システム。
【請求項１３】
前記回路は、ＦＰＧＡであることを特徴とする請求項１乃至１１の何れか１項に記載の画像処理システム。
【請求項１４】
論理回路をコンフィギュレーションデータに従って構成可能な回路上の所定領域に、第１の論理回路を構成するための第１のコンフィギュレーションデータと、前記所定領域に、第２の論理回路を構成するための第２のコンフィギュレーションデータとを記憶する記憶手段と、
前記所定領域と前記所定領域とは異なる領域に対して、前記記憶されている第１のコンフィギュレーションデータと、所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第１の論理回路を構成するための第１のコンフィギュレーション処理を実行し、
前記所定領域と前記異なる領域に対して、前記記憶されている第２のコンフィギュレーションデータと、前記所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第２の論理回路を構成するための第２のコンフィギュレーション処理を実行するコンフィギュレーション手段と、
を有し、
前記記憶手段は、前記所定のコンフィギュレーションデータを重複して記憶しておらず、
前記第１および第２のコンフィギュレーション処理後の前記異なる領域に構成される論理回路は同一であることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを扱う画像処理装置、その制御方法、プログラムに関する。
【背景技術】
【０００２】
内部の論理回路をプログラム可能なＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのプログラマブルロジックデバイス（ＰＬＤ）が良く知られている。ＰＬＤでは、例えばコンフィギュレーション用ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された論理回路構成情報（コンフィギュレーションデータと呼ぶ）が、内部の揮発性メモリであるコンフィギュレーションメモリへ書き込まれる。この書き込みにより、ＰＬＤ内の各論理ブロックの動作が変更され、論理回路が構成される。ＰＬＤへのコンフィギュレーションデータの書き込みをコンフィギュレーションと呼ぶ。
【０００３】
また近年のＰＬＤは、論理回路の部分再構成を行うことができる。つまりコンフィギュレーションメモリ上の或る部分のコンフィギュレーションデータの内容を変更することで、ＰＬＤの持つ複数の論理ブロックを含む全領域のうちの、その或る部分に対応する領域に含まれる論理ブロックの動作だけを変更できる。特許文献１は、部分再構成技術を用いて、パイプラインを構成する複数の論理回路のそれぞれをＰＬＤ内の異なる領域に、パイプラインの処理の進行に応じて順に構成していく方法を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８６９８１号広報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
コンフィギュレーションデータは、コンフィギュレーション用ＲＯＭに記憶されている。複数種類の論理回路を実現しようとする場合には、複数種類のコンフィギュレーションデータがこのＲＯＭに記憶されるが、ＲＯＭに記憶される複数種類のコンフィギュレーションデータどうしの差分が小さい場合がある。
言い換えれば、コンフィギュレーションデータの同一部分をＲＯＭに重複して記憶してしまっているので、コンフィギュレーションデータの記憶に必要なメモリ容量が増大してしまっていた。
【課題を解決するための手段】
【０００６】
本発明によれば、論理回路をコンフィギュレーションデータに従って構成可能な回路と、前記回路上の所定領域に第１の論理回路を構成するための第１のコンフィギュレーションデータと、前記回路上の所定領域に第２の論理回路を構成するための第２のコンフィギュレーションデータとを記憶する記憶手段と、前記所定領域と前記所定領域とは異なる領域に対して、前記記憶されている第１のコンフィギュレーションデータと、所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第１の論理回路を構成するための第１のコンフィギュレーション処理を実行し、前記所定領域と前記異なる領域に対して、前記記憶されている第２のコンフィギュレーションデータと、前記所定のコンフィギュレーションデータとを用いて、前記所定領域に前記第２の論理回路を構成するための第２のコンフィギュレーション処理を実行するコンフィギュレーション手段と、を有し、前記記憶手段は、前記所定のコンフィギュレーションデータを重複して記憶しておらず、前記第１および第２のコンフィギュレーション処理後の前記異なる領域に構成される論理回路は同一であることを特徴とする画像処理システムが提供される。
【発明の効果】
【０００７】
本発明によれば、コンフィギュレーションデータを共通利用するので、コンフィギュレーションデータの格納のためのメモリ容量を削減できる。
【図面の簡単な説明】
【０００８】
【図１】実施例１の画像処理装置の構成の一例を示すブロック図である。
【図２】実施例１の画像処理装置における、動的部分再構成に関わる構成を示すブロック図である。
【図３】従来のコンフィギュレーションデータの格納方法の一例を示す図である。
【図４】実施例１の画像処理装置における、部分再構成部の再構成を行うためのコンフィギュレーションデータの構造について詳細に説明するための図である。
【図５】実施例１の画像処理装置における、コンフィギュレーションデータの格納方法の一例を示す図である。
【図６】実施例１の画像処理装置における、ジョブ実行処理制御を示すフローチャートである。
【図７】実施例１の画像処理装置における、動的部分再構成の実行フローについて詳細に説明するフローチャートである。
【図８】実施例２の画像処理装置における、動的部分再構成の実行フローについて詳細に説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施例を説明する。
【００１０】
（実施例１）
［画像処理装置の構成］
図１は、本実施例の画像処理装置（画像処理システム）のハードウェア構成を説明するブロック図である。本実施例の画像処理装置１００は、画像処理装置１００を使用するユーザが各種の操作を行うための操作部１０３と、操作部１０３からの指示に従い画像情報を読み取るスキャナ部１０９と、画像データを用紙に印刷するプリンタ部１０７とを有する。スキャナ部１０９は、スキャナ部１０９を制御する図示しないＣＰＵや原稿読取を行うための図示しない照明ランプや走査ミラーなどを有する。プリンタ部１０６は、プリンタ部１０６の制御を行う図示しないＣＰＵや画像形成や定着を行うための図示しない感光体ドラムや定着器を有する。
【００１１】
また、画像処理装置１００は、画像処理装置１００の動作を統括的に制御するＣＰＵ１０１を備え、画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。また、画像処理装置１００は、ＣＰＵ１０１が実行するプログラムが格納されているＲＯＭ１０４を有する。また、画像処理装置１００は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるＲＡＭ１１１を有する。また、画像処理装置１００は、ＲＡＭ１１１への書き込み、読み出し動作を制御するメモリコントローラ１１０を有する。メモリコントローラ１１０は、システムバス１２０および画像バス１２１に接続され、ＲＡＭ１１１へのアクセスを制御する。
【００１２】
画像処理装置１００は、論理回路を構成可能な回路を有するプログラマブルロジックデバイスとしてＦＰＧＡ１４０を有する。本実施例ではプログラマブルロジックデバイスとしてＦＰＧＡを例に説明しているが、論理回路を構成可能な回路を有するデバイスであればよい。本実施例のＦＰＧＡ１４０は、部分再構成が可能なデバイスである。
【００１３】
また画像処理装置１００は、コンフィギュレーションコントローラ１３０とコンフィギュレーション用ＲＯＭ１５０を有する。コンフィギュレーションコントローラ１３０は、ＣＰＵ１０１の制御のもと、コンフィギュレーションデータをコンフィギュレーション用ＲＯＭ１５０から取得し、ＦＰＧＡ１４０のコンフィギュレーションメモリに書き込む。ＦＰＧＡ１４０は、書き込まれたコンフィギュレーションデータに従って、内部の論理ブロックの回路の動作を設定することで、論理回路を構成する。以上のようなコンフィギュレーションデータの書き込みによって論理回路を構成することを、コンフィギュレーションと呼ぶ。すなわち、ＦＰＧＡ１４０は、コンフィギュレーションデータに従って論理回路を構成可能な回路を有している。
【００１４】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタへ画像データを出力するプリンタＩ／Ｆ１０６とを有する。ＦＰＧＡ１４０及びスキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６は、処理される画像データを転送するための画像バス１２１に接続される。
【００１５】
また、画像処理装置１００は、ネットワークＩ／Ｆ（インターフェース）１０２を介し、ネットワーク上の図示しない汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＵＳＢ  Ｉ／Ｆ１１４を介し、画像処理装置１００と接続された図示しない汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＦＡＸ（ファクシミリ）Ｉ／Ｆ１１５を介し、公衆回線網と接続し、図示しない他の画像処理装置やファクシミリ装置と通信（送受信）を行う。画像処理装置１００は、ＣＰＵ１０１が実行するプログラム、ＲＯＭ１０４への書き込み、読み出し動作を制御するＲＯＭ  Ｉ／Ｆ１１２を有する。また、画像処理装置１００は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部１０３、ＲＯＭ  Ｉ／Ｆ１１２、コンフィギュレーションコントローラ１３０、ＦＰＧＡ１４０を相互に接続するシステムバス１２０を有する。ＣＰＵ１０１は、ＦＰＧＡ１４０の論理回路に対するパラメータ設定や、スキャナＩ／Ｆ１０８およびプリンタＩ／Ｆ１０６に対するパラメータ設定を、システムバス１２０を介して行う。
【００１６】
［部分再構成に関する構成］
次に、図２を用いて、本実施例の画像処理装置における部分再構成について説明する。図２は画像処理装置１００の部分再構成に特に関わる構成を示したブロック図である。
【００１７】
ＣＰＵ１０１、コンフィギュレーションコントローラ１３０、コンフィギュレーション用ＲＯＭ１５０、ＦＰＧＡ１４０については図１を用いて前述した通りである。
【００１８】
ＦＰＧＡ１４０は、複数の論理ブロックを有する領域を持つ。部分再構成可能なＦＰＧＡ１４０では、この領域を複数の部分の領域に分けて、各部分に対して個別に論理回路を変更することができる。区分された部分の領域のことを図２では部分再構成部２０１、固定部２０２と呼ぶ。部分再構成部２０１に論理回路を部分再構成する場合に、固定部２０２に含まれる論理ブロックの動作は変更されない（固定である）。なお、部分再構成部２０１と固定部２０２は、同一カラム上に並ぶ。部分再構成部２０１と固定部２０２とが同一カラム上に並ぶとは、後述するように、部分再構成部２０１に論理回路を部分再構成する場合に、部分再構成部２０１に加えて固定部２０２に対応するコンフィギュレーションメモリの書き込みが行われることである。
【００１９】
コンフィギュレーションコントローラ１３０は、各部分再構成部２０１の部分再構成を管理する機能を持つ。例えば、コンフィギュレーションコントローラ１３０は、ＣＰＵ１０１から部分再構成部２０１のコンフィギュレーションの実行指示を受け付けると、部分再構成部２０１の論理回路を変更するためのコンフィギュレーションデータを、コンフィギュレーション用ＲＯＭ１５０から読み出す。そしてコンフィギュレーションコントローラ１３０は、読み出されたコンフィギュレーションデータを、ＦＰＧＡ１４０に送信する。ＦＰＧＡ１４０は、送信されたコンフィギュレーションデータを、コンフィギュレーションメモリの対応する部分に書き込むことで、部分再構成部２０１に論理回路を構成する。コンフィギュレーションの詳しい手順については図４〜図７を用いて後述する。
【００２０】
次に、図３を用いてＦＰＧＡ１４０の部分再構成部２０１に構成される論理回路のコンフィギュレーションデータの従来の格納方法について説明する。
【００２１】
図３はコンフィギュレーション用ＲＯＭ１５０に格納されるＦＰＧＡ１４０の部分再構成部２０１に対応するコンフィギュレーションデータの例を示す。この例では、部分再構成部２０１に機能Ａ〜Ｄ用の論理回路を構成するためのコンフィギュレーションデータ３００（３０１〜３０４）が格納されている。
【００２２】
このように、部分再構成部２０１用のコンフィギュレーションデータを機能ごとにコンフィギュレーション用ＲＯＭ１５０に格納しておけば、部分再構成部２０１に様々な機能の論理回路を構成できるようになる。しかし、機能数が増えるとコンフィギュレーション用ＲＯＭ１５０に保持されるコンフィギュレーションデータの総量は多くなってしまう。
【００２３】
＜部分再構成用コンフィギュレーションデータの構成説明＞
図４以降の図を用いて、特定機能（例えば上記の機能Ａ）用のコンフィギュレーションデータによるコンフィギュレーションについて、説明する。
【００２４】
まず、図４（ａ）を用いてＦＰＧＡ１４０の部分再構成部の設計例について説明する。図４（ａ）は本実施例のＦＰＧＡ１４０内のコンフィギュレーションメモリの概念を示す図である。一般に、ＦＰＧＡの部分再構成を実施する場合、ＦＰＧＡ内部のコンフィギュレーションメモリのどの部分が、部分再構成部に対応するかを設計者は決定しておく。「コンフィギュレーションメモリの或る部分が部分再構成部に対応する」とは、その或る部分に書き込まれているコンフィギュレーションデータを書き換えると、その部分再構成部に含まれる論理ブロックの動作が変更されるという対応関係があることである。つまり、部分再構成部の論理回路のみが変更される。図４（ａ）の例では、部分再構成部２０１に含まれる論理ブロックの動作を変更すべく書き換えられるコンフィギュレーションメモリの部分を、部分再構成部用メモリ４０１と呼ぶ。一方、図４（ａ）の固定部用メモリ４０２とは、固定部２０２に含まれる論理ブロックの動作を変更する際に書き換えられる、コンフィギュレーションメモリの部分である。
【００２５】
以降の説明においては、部分再構成部２０１に所望の論理回路を部分再構成することを考える。すなわち、固定部２０２に構成されている論理回路の内容は変更されない。
【００２６】
＜コンフィギュレーション処理の手順＞
部分再構成に際してのコンフィギュレーション処理の手順について説明する。ＦＰＧＡでは、コンフィギュレーションメモリへのコンフィギュレーションデータの書き込みは、自由な単位で行われるわけではなく、書き込みの最小単位で行われる。例えば、模式的に説明すると、コンフィギュレーションメモリの上から下までに延びる１カラム（列）が書き換えの最小単位のＦＰＧＡデバイスもあれば、１ロウ（行）や、特定サイズの正方形領域が書き換えの最小単位のＦＰＧＡデバイスも存在する。すなわち、部分再構成部２０１に論理回路を部分的に構成する場合に、部分再構成部用メモリ４０１に加えて固定部用メモリ４０２にもコンフィギュレーションデータを書き込まなければならないことがある。
【００２７】
例えば、本実施例のＦＰＧＡ１４０のコンフィギュレーションメモリは、カラム（列）が書き込み最小単位である。そのため、部分再構成部２０１に論理回路を構成しようとした場合に、部分再構成部用メモリ４０１と同一カラム（列）上に位置する固定部用メモリ４０２もコンフィギュレーションデータの書き込み対象となる。そのため、固定部２０２に構成されている論理回路の内容を変更しないような、固定部用メモリ４０２のコンフィギュレーションデータが必要である。
【００２８】
従来は、固定部２０２の論理回路の内容を変更しないコンフィギュレーションデータと、部分再構成部２０１に構成したい機能の論理回路のコンフィギュレーションデータと、を合わせて、１つの部分再構成部２０１用コンフィギュレーションデータとしていた。つまり機能Ａ用のコンフィギュレーションデータ３０１は、固定部２０２の論理回路の内容を変更しないコンフィギュレーションデータと、部分再構成部２０１に構成したい機能Ａの論理回路のコンフィギュレーションデータと、を含む。機能Ｂ〜Ｄ用のコンフィギュレーションデータ３０２〜３０４も同様である。そのため、部分再構成部２０１用のコンフィギュレーションデータ３００（図３）では、各機能用のコンフィギュレーションデータ３０１〜３０４において、データ内容が重複する部分があった。例えば「固定部２０２の論理回路の内容を変更しないコンフィギュレーションデータ」が重複していた。すなわち、複数の機能Ａ〜Ｄがあった場合に、従来、コンフィギュレーション用ＲＯＭ１５０は、全く同じ内容のコンフィギュレーションデータを重複して格納していた。これがコンフィギュレーション用ＲＯＭ１５０の容量を圧迫する一因となっていた。
【００２９】
＜コンフィギュレーション処理の手順の詳細＞
図４（ｂ）を用いて、部分再構成部２０１に特定機能の論理回路（特定の論理回路）を構成する際のコンフィギュレーションを詳しく説明する。なお、ここでは部分再構成を行うためのコンフィギュレーションメモリの書き込み最小単位がカラム（列）である。
【００３０】
図４（ｂ）に示される部分再構成用コンフィギュレーションデータ４１０は、例えば図３で例示した機能Ａ用の部分再構成部２０１用のコンフィギュレーションデータ３０１である。部分再構成用コンフィギュレーションデータ４１０は、論理積用コンフィギュレーションデータ４１１および論理和用コンフィギュレーションデータ４１２を含む。コンフィギュレーションは、次の処理結果（１）、（２）を得ることである。（１）まず、部分再構成部用メモリ４０１に書き込まれているコンフィギュレーションデータが、「０」でクリアされる。（２）次に、特定の論理回路を構成するためのコンフィギュレーションデータが、部分再構成部用メモリ４０１に書き込まれる。ただし、コンフィギュレーションの際のコンフィギュレーションデータの書き込みは、あくまでカラム単位で行われることに注意されたい。
【００３１】
具体的には、コンフィギュレーションコントローラ１３０は、部分再構成部用メモリ４０１に書き込まれているコンフィギュレーションデータを「０」でクリアするための論理積用コンフィギュレーションデータ４１１を、ＦＰＧＡ１４０に送信する。このときコンフィギュレーションコントローラ１３０は、図４（ｂ）に示される論理積用コンフィギュレーションデータ４１１を、コンフィギュレーションメモリの第１カラムに書き込まれるデータ、第２カラムに書き込まれるデータ、・・・の順で送信する。すなわち、コンフィギュレーションデータは、カラム単位で送信される。より詳しくは、１つのカラムに書き込まれるデータは、カラムの上から下に向かう順で送信される。そのため、図４（ｂ）の例では、部分再構成部論理積用コンフィギュレーションデータ４１２と固定部論理積用コンフィギュレーションデータ４１３とが交互に送信される。この送信には、ＦＰＧＡ１４０の部分再構成部用メモリ４０１および固定部用メモリ４０２に書き込まれているコンフィギュレーションデータを、論理積用コンフィギュレーションデータ４１１との論理積演算結果で更新する指示が含まれる。
【００３２】
なお論理積用コンフィギュレーションデータ４１１は、部分再構成部論理積用コンフィギュレーションデータ４１２および固定部論理積用コンフィギュレーションデータ４１３を含む。部分再構成部論理積用コンフィギュレーションデータ４１２は、全て「０」のビットストリームデータで構成されていて、固定部論理積用コンフィギュレーションデータ４１３は、全て「１」のビットストリームデータで構成されている。そのため、更新はコンフィギュレーションメモリのカラム単位で行われるものの、固定部用メモリ４０２に書き込まれているコンフィギュレーションデータの内容は変更されずに、固定部論理積用コンフィギュレーションデータ４１１の書き込みが実行される。
【００３３】
そして、コンフィギュレーションコントローラ１３０は、部分再構成部用メモリ４０１に機能Ａ用の論理回路を構成するための論理和用コンフィギュレーションデータ４１４を、ＦＰＧＡ１４０に送信する。このときコンフィギュレーションコントローラ１３０は、図４（ｂ）に示される論理和用コンフィギュレーションデータ４１４を、コンフィギュレーションメモリの第１カラムに書き込まれるデータ、第２カラムに書き込まれるデータ、・・・の順で送信する。すなわち、ここでもコンフィギュレーションデータは、カラム単位で送信される。１つのカラムに書き込まれるデータも前述のとおり、カラムの上から下に向かう順で送信される。そのため、図４（ｂ）の例では、部分再構成部機能用コンフィギュレーションデータ４１５と固定部論理積用コンフィギュレーションデータ４１６とが交互に送信される。この送信には、既に論理積演算で更新されたＦＰＧＡ１４０の部分再構成部用メモリ４０１および固定部用メモリ４０２に書き込まれているコンフィギュレーションデータを、論理和用コンフィギュレーションデータ４１４との論理和演算結果で更新する指示が含まれる。
【００３４】
論理和用コンフィギュレーションデータ４１２は、部分再構成部機能用コンフィギュレーションデータ４１５および固定部論理和用コンフィギュレーションデータ４１６を含む。部分再構成部機能用コンフィギュレーションデータ４１５は、特定機能（例えば機能Ａ）の論理回路に対応するビットストリームデータで構成されていて、固定部論理和用コンフィギュレーションデータ４１６は、全て「０」のビットストリームデータで構成されている。そのため、更新はコンフィギュレーションメモリのカラム単位で行われるものの、固定部用メモリ４０２の内容は変更されずに、固定部論理和用コンフィギュレーションデータ４１４の書き込みが実行される。
【００３５】
以上のようにして、コンフィギュレーションコントローラ１３０は、部分再構成部用メモリ４０１と固定部用メモリ４０２とに対して、部分再構成用コンフィギュレーションデータ４１０（例えば機能Ａ用のコンフィギュレーションデータ３０１）の書き込みをカラム単位で行う。
【００３６】
ここで着目してほしいのは、従来は、部分再構成部２０１に異なる機能の論理回路を構成するための別々のコンフィギュレーションデータは、同一内容のビットストリームデータを重複してコンフィギュレーション用ＲＯＭ１５０に格納されていたことである。つまり、同じデータ内容の論理積用コンフィギュレーションデータ４１１および固定部論理和用コンフィギュレーションデータ４１６が、異なるコンフィギュレーションデータ間で重複していた。次に説明するのは、この重複の無駄を省き、共通利用可能なコンフィギュレーションデータの記憶方法である。なお、本実施例では、ＦＰＧＡデバイスの書き込みの最小単位がカラムであることを前提としているが、本発明は、これに限られない。すなわち、ＦＰＧＡデバイスの書き込みの最小単位に応じて、共通利用されるコンフィギュレーションデータの記憶のされ方が異なる。
【００３７】
＜コンフィギュレーション用ＲＯＭに記憶されるコンフィギュレーションデータ＞
図５を用いて本実施例のコンフィギュレーション用ＲＯＭ１５０に記憶されるコンフィギュレーションデータについて説明する。
【００３８】
図５は本実施例のコンフィギュレーション用ＲＯＭ１５０に記憶されるコンフィギュレーションデータを示す図である。本実施例のコンフィギュレーション用ＲＯＭ１５０には、共通部用コンフィギュレーションデータ５０１、機能Ａ用のコンフィギュレーションデータ５０２、機能Ｂ用のコンフィギュレーションデータ５０３、機能Ｃ用のコンフィギュレーションデータ５０４、機能Ｄ用のコンフィギュレーションデータ５０５が含まれる。共通部用コンフィギュレーションデータ５０１は、図４（ｂ）の論理積用コンフィギュレーションデータ４１１および固定部論理和用コンフィギュレーションデータ４１６に対応する。また各機能用のコンフィギュレーションデータ５０２〜５０５は、図４（ｂ）の部分再構成部機能用コンフィギュレーションデータ４１５に対応する。
【００３９】
本実施例で特徴的なのは、共通部用コンフィギュレーションデータ５０１が各機能用のコンフィギュレーションデータ５０２〜５０５と組み合わせて用いられることである。この共通部用コンフィギュレーションデータ５０１は、各機能用の論理回路を部分再構成部２０１に構成する際に、カラム単位のコンフィギュレーション処理に機能毎に繰返し用いられる。このように共通部用コンフィギュレーションデータ５０１を有することで、機能ごとのコンフィギュレーションデータ５０２〜５０５において、データの重複を避けることができ、コンフィギュレーションデータの総量を従来よりも少なくすることができる。
【００４０】
各コンフィギュレーションデータについて詳しく見ていく。
【００４１】
共通部用コンフィギュレーションデータ５０１は、コンフィギュレーション用ＲＯＭ１５０の、例えば、アドレス０ｘ００００〜０ｘ１ＦＦＦまでに格納されている。共通部用コンフィギュレーションデータ５０１には、図４（ｂ）で説明した論理積用コンフィギュレーションデータ４１１と固定部論理和用コンフィギュレーションデータ４１６が含まれている。論理積用コンフィギュレーションデータ４１１は、アドレス０ｘ００００〜０ｘ０ＦＦＦに格納され、固定部論理和用コンフィギュレーションデータ４１６は、０ｘ１０００〜０ｘ１ＦＦＦまでに格納されている。なお本実施例では、いずれのコンフィギュレーションデータ４１１、４１６も書き込まれる対象のコンフィギュレーションメモリのカラム単位の順で整列されて記憶されている。例えば、アドレス０ｘ００００〜０ｘ００７Ｆには第１カラムに対応するビットストリームデータが記憶され、アドレス０ｘ００８０〜０ｘ００ＦＦには第２カラムに対応するビットストリームデータが記憶される。コンフィギュレーションメモリのこの共通部用コンフィギュレーションデータ５０１の使い方については後述する。
【００４２】
機能Ａ用のコンフィギュレーションデータ５０２は、コンフィギュレーション用ＲＯＭ１５０の、例えば、アドレス０ｘ２０００〜０ｘ２ＦＦＦまでに格納されている、機能Ａ用の論理回路に対応するビットストリームデータである。機能Ａ用のコンフィギュレーションデータ５０２は、図４（ｂ）の部分再構成部機能用コンフィギュレーションデータ４１５に相当する。この機能Ａ用の論理回路に対応するビットストリームデータも、下位こまれる対象のコンフィギュレーションメモリのカラム単位の順で整列されて記憶されている。
【００４３】
機能Ｂ用のコンフィギュレーションデータ５０３、機能Ｃ用のコンフィギュレーションデータ５０４、機能Ｄ用のコンフィギュレーションデータ５０５も、同様に、コンフィギュレーション用ＲＯＭ１５０に格納されている。そしてこれらコンフィギュレーションデータ５０３、５０４、５０５も、図４（ｂ）の部分再構成部機能用コンフィギュレーションデータ４１５に相当する。
【００４４】
＜コンフィギュレーション処理のフロー＞
図６は本実施例の画像処理装置のジョブ実行処理制御を表すフローチャートである。なお、図６のフローチャートの各手順は、ＣＰＵ１０１がＲＯＭ１０４に記憶されているプログラムを実行することで、実現される。すなわち、プログラム実行下のＣＰＵ１０１が、コンフィギュレーションコントローラ１０３を制御する。なお以下では部分再構成部２０１に論理回路が構成されるものとする。
【００４５】
Ｓ６０１において、ＣＰＵ１０１は、実行すべきジョブの受信待ちとなる。すなわち、ＣＰＵ１０１は、ジョブが受信されたか否かを判定し、ジョブが受信された場合に処理をＳ６０２へ進める。
【００４６】
Ｓ６０２において、ＣＰＵ１０１は、Ｓ６０１で受信したジョブを実行するにあたり、当該受信したジョブの処理内容に応じて、ＦＰＧＡ１４０の部分再構成部２０１に構成すべき論理回路（機能）を特定する。例えばＣＰＵ１０１は、受信したジョブの処理内容が機能Ａを必要とするものであれば、コンフィギュレーションメモリに構成すべき論理回路として、機能Ａ用の論理回路を特定する。このとき、固定部２０２には例えば他の機能を持つ論理回路が構成されており、データ処理が実行中である。
【００４７】
Ｓ６０３において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０を制御して、Ｓ６０２で特定された論理回路を部分再構成部２０１に構成する。詳細については図７を用いて後述する。
【００４８】
Ｓ６０４において、ＣＰＵ１０１は、コンフィギュレーション処理が終了したかを判定する。この判定の詳細を説明する。まず、コンフィギュレーションコントローラ１３０は、コンフィギュレーション処理が終了したことを示すコンフィギュレーション終了信号を、ＦＰＧＡ１４０から受け取る。そしてコンフィギュレーションコントローラ１３０は、その終了信号を受け取ったことを、ＣＰＵ１０１に通知する。ＣＰＵ１０１は、その通知を受け取ったことにより、コンフィギュレーション処理が終了したと判定する。コンフィギュレーション処理が終了したと判定された場合に処理はＳ６０５に進み、そうでなければ（コンフィギュレーションコントローラ１３０がＦＰＧＡ１４０からコンフィギュレーション終了信号を受け取るまで）、処理はＳ６０４のまま待機される。
【００４９】
Ｓ６０５において、ＣＰＵ１０１は、Ｓ６０３のコンフィギュレーション処理によってコンフィギュレーションメモリ上に構成された論理回路を用いて、受信ジョブのデータ処理を実行する。
【００５０】
以上が、受信されたジョブの実行手順である。
【００５１】
次に図７を用いて、Ｓ６０３において実行されるコンフィギュレーション処理の詳細なフローを説明する。図７のフローチャートの各手順は、ＣＰＵ１０１と、ＣＰＵ１０１の制御下にあるコンフィギュレーションコントローラ１３０が実行する。ここでは部分再構成部２０１に論理回路を構成する。
【００５２】
Ｓ７０１において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０が次の処理（１）、（２）を行うように、コンフィギュレーションコントローラ１３０に指示を出す。
【００５３】
処理（１）：コンフィギュレーションコントローラ１３０は、図５に示されるコンフィギュレーション用ＲＯＭ１５０のアドレス０ｘ００００〜０ｘ０ＦＦＦに格納されている論理積用コンフィギュレーションデータ４１１を読み出して取得する。
【００５４】
処理（２）：次にコンフィギュレーションコントローラ１３０は、取得された論理積用コンフィギュレーションデータ４１１をカラム単位でＦＰＧＡ１４０に送信する。この送信の際に、コンフィギュレーションコントローラ１３０は、ＦＰＧＡ１４０に次の処理を指示する。ＦＰＧＡ１４０は、コンフィギュレーションデータ４１１とＦＰＧＡ１４０のコンフィギュレーションメモリにすでに書き込まれているコンフィギュレーションデータとの論理積の演算を行う。そしてＦＰＧＡ１４０は、その演算結果を、コンフィギュレーションメモリに書き戻す。
【００５５】
するとＦＰＧＡ１４０は、図４（ｂ）を用いて説明したように、論理積用コンフィギュレーションデータ４１１を用いて、部分再構成部用メモリ４０１と固定部用メモリ４０２とに対して、カラム単位のデータ書き込みを行う。これは図４（ｂ）を用いて説明したとおりである。
【００５６】
なおＳ７０１において、上記以外の方法も考えられる。例えばコンフィギュレーションコントローラ１３０が、コンフィギュレーション用ＲＯＭ１５０のアドレス０ｘ００００からコンフィギュレーションデータ（ビットストリームデータ）を読み出しつつ、順次、ＦＰＧＡ１４０へ送信する方法もある。
【００５７】
Ｓ７０２において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０が次の処理（１）、（２）、（３）を行うように、コンフィギュレーションコントローラ１３０に指示を出す。
【００５８】
処理（１）：コンフィギュレーションコントローラ１３０は、Ｓ６０２で特定された論理回路を構成するために用いられるコンフィギュレーションデータ（部分再構成部機能用コンフィギュレーションデータ４１５）を、コンフィギュレーション用ＲＯＭ１５０から読み出す。例えば、機能Ａ用の論理回路の場合、コンフィギュレーションコントローラ１３０は、機能Ａ用のコンフィギュレーションデータを、コンフィギュレーション用ＲＯＭ１５０のアドレス０ｘ２０００〜０ｘ２ＦＦＦから読み出す。
【００５９】
処理（２）：次にコンフィギュレーションコントローラ１３０は、図５に示されるコンフィギュレーション用ＲＯＭ１５０のアドレス０ｘ１０００〜０ｘ１ＦＦＦに格納されている固定部論理和用コンフィギュレーションデータ４１６を読み出して取得する。
【００６０】
処理（３）：そしてコンフィギュレーションコントローラ１３０は、読み出された２つのコンフィギュレーションデータどうしをマージする。このマージは、マージ後のコンフィギュレーションデータを、コンフィギュレーションメモリにカラム単位で書き込めるようにするためのマージであり、２つのコンフィギュレーションデータを構成するビットストリームデータの並び替え処理である。さらにこのマージは、部分再構成部用メモリ４０１のコンフィギュレーションメモリにおける位置に応じて行われる。すなわち、マージによって得られるコンフィギュレーションデータは、部分再構成部用メモリ４０１に書き込まれているコンフィギュレーションデータの内容を変更するためのビットストリームデータである。
【００６１】
例えば図４（ｂ）で説明すると、部分再構成部機能用コンフィギュレーションデータ４１５のうち第１カラムのビットストリームデータ「１００」と固定部論理和用コンフィギュレーションデータ４１６のうち第１カラムのビットストリームデータ「００００００」がマージされる。このマージによって、部分再構成部用メモリ４０１の位置がカラム上部であるため、ビットストリームデータ「１００」がカラム上部に並び、ビットストリームデータ「００００００」が続いて並ぶ。このマージ後のビットストリームデータ「１００００００００」が第１カラムに対応する。
【００６２】
ところで、もし、部分再構成部用メモリ４０１の位置がカラム中部であれば、データ４１６のうち第１カラムのビットストリームデータ「００００００」がカラム上部用及び下部用の半分に分割され、カラム中部に上部にビットストリームデータ「１００」が並ぶようになる。つまりマージ後のビットストリームデータは、「０００１０００００」となる。
【００６３】
第２カラムについても同様である。つまり、部分再構成部機能用コンフィギュレーションデータ４１５のうち第２カラムのビットストリームデータ「１１１」と固定部論理和用コンフィギュレーションデータ４１６のうち第２カラムのビットストリームデータ「００００００」がマージされる。そしてマージ後の第２カラムに対応するビットストリームデータ「１１１００００００」が、既に得られている第１カラムに対応するマージ後のビットストリームデータ「１００００００００」の後に並び替えられる。つまりビットストリームデータ「１００００００００１１１００００００」が得られる。
【００６４】
以上説明したマージ処理は、コンフィギュレーションコントローラ１３０内の不図示のメモリを用いて行っても良いし、ＲＡＭ１１１を用いて行っても良い。
【００６５】
Ｓ７０３において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０が次の処理を行うように、コンフィギュレーションコントローラ１３０に指示を出す。コンフィギュレーションコントローラ１３０は、Ｓ７０２でマージされて得られたコンフィギュレーションデータ（例：「１００００００００１１１００００００・・・」）をＦＰＧＡ１４０に送信する。この送信の際に、コンフィギュレーションコントローラ１３０は、ＦＰＧＡ１４０に次の処理を指示する。ＦＰＧＡ１４０は、マージされたコンフィギュレーションデータとＳ７０１の処理後のコンフィギュレーションメモリに書き込まれたコンフィギュレーションデータとの論理和の演算を行う。そしてＦＰＧＡ１４０は、その演算結果を、コンフィギュレーションメモリに書き戻す。するとＦＰＧＡ１４０は、図４（ｂ）を用いて説明したように、部分再構成部機能用コンフィギュレーショデータ４１５と固定部論理和用コンフィギュレーションデータ４１６とを用いて、部分再構成部用メモリ４０１と固定部用メモリ４０２とに対して、カラム単位のデータ書き込みを行う。
【００６６】
Ｓ７０３の処理が終了すると、処理は、図６のＳ６０４へ進む。このようにしてコンフィギュレーション処理が行われる。すなわち、コンフィギュレーション処理後の固定部２０２に構成される論理回路は、部分再構成部２０１に構成される論理回路（例：機能Ａ用論理回路、機能Ｂ用論理回路など）によらず、同一である。
【００６７】
なお、Ｓ７０２およびＳ７０３において、ＣＰＵ１０１は次のように動作しても良い。ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に２つのコンフィギュレーションデータを取得してＣＰＵ１０１に送信するよう指示する。次に、ＣＰＵ１０１は、送信された２つのコンフィギュレーションデータを、上記のように、カラム単位のデータへマージする。そしてＣＰＵ１０１は、コンフィギュレーションコントローラ１３０にそのマージ後のデータをＦＰＧＡ１４０に書き込むように指示する。
【００６８】
あるいはＳ７０２およびＳ７０３において、ＣＰＵ１０１は次のようにコンフィギュレーションコントローラ１３０に指示しても良い。コンフィギュレーションコントローラ１３０は、カラム単位でのコンフィギュレーションデータの書き込みが行われるように次の処理を行う。機能用のコンフィギュレーションデータの一部と固定部論理和用のコンフィギュレーションデータの一部とをコンフィギュレーション用ＲＯＭ１５０から交互に読み出す処理である。そしてコンフィギュレーションコントローラ１３０は、読み出された順に、コンフィギュレーションデータをＦＰＧＡ１４０に順次、送信する。
【００６９】
この順次の送信について図４（ｂ）で説明する。（１´）まず、コンフィギュレーションコントローラ１３０は、部分再構成部機能用コンフィギュレーションデータ４１５のうちの第１カラムに対応するデータ「１００」を、コンフィギュレーション用ＲＯＭ１５０から読み出してＦＰＧＡ１５０へ送信する。（２´）次に、コンフィギュレーションコントローラ１３０は、固定部論理和用コンフィギュレーションデータ４１６のうちの第１カラムに対応するデータ「００００００」を、コンフィギュレーション用ＲＯＭ１５０から読み出してＦＰＧＡ１５０へ送信する。（３´）さらにコンフィギュレーションコントローラ１３０は、部分再構成部機能用コンフィギュレーションデータ４１５のうちの第２カラムに対応するデータ「１１１」を、コンフィギュレーション用ＲＯＭ１５０から読み出してＦＰＧＡ１５０へ送信する。（４´）そしてコンフィギュレーションコントローラ１３０は、部分再構成部機能用コンフィギュレーションデータ４１５のうちの第２カラムに対応するデータ「００００００」を、コンフィギュレーション用ＲＯＭ１５０から読み出してＦＰＧＡ１５０へ送信する。以上のような交互の読み出しおよび送信がカラム毎に繰り返される。
【００７０】
以上の図７を用いて説明したようなコンフィギュレーションデータどうしのマージ制御を行うことにより、複数の機能の論理回路を構成する際に、共通するコンフィギュレーションデータを繰返し使いまわすことが可能となる。そして繰返し使いまわすことができる共通のコンフィギュレーションデータをコンフィギュレーション用ＲＯＭ１５０に１つだけ格納しておけば良いので、格納しておくべきコンフィギュレーションデータの総量を削減することができる。もちろん、論理回路のフレキシブルな書き込み性能を落とすことなくである。
【００７１】
（実施例２）
上記実施例１では共通部用コンフィギュレーションデータ５０１をコンフィギュレーション用ＲＯＭ１５０に記憶していた。本実施例では、共通部用コンフィギュレーションデータ５０１をコンフィギュレーション用ＲＯＭ１５０に記憶することなく、コンフィギュレーション処理の実行に際して、共通部用コンフィギュレーションデータ５０１を動的に生成する。
【００７２】
本実施例の画像処理装置（画像処理システム）１００は、図１、図２に示された実施例１の画像処理装置１００とほぼ同様である。本実施例の実施例１との違いは、コンフィギュレーション用ＲＯＭ１５０には共通部用コンフィギュレーションデータが記憶されておらず、コンフィギュレーションコントローラ１３０が、部分再構成用のコンフィギュレーションデータの生成を行う点である。具体的には、図４で示した論理積用コンフィギュレーションデータ４１１と論理和用コンフィギュレーションデータ４１４に対応するビットストリームデータの生成を行う。
【００７３】
本実施例の画像処理装置１００の実行する処理フローは、図６で説明したものと同様である。実施例１の処理フローとの違いは、Ｓ６０３で実行される処理が、図８に示されるフローチャートの処理である点となる。
【００７４】
図８に示されるフローチャートの処理は、ＲＯＭ１０４に記憶されるプログラムの実行しているＣＰＵ１０１がコンフィギュレーションコントローラ１３０を制御することで行われる。以下では、説明の便宜上、図４（ａ）、（ｂ）に示される部分再構成の対象領域とコンフィギュレーションデータを例にして、説明する。
【００７５】
Ｓ８０１において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、図４（ｂ）に示される論理積用コンフィギュレーションデータ４１１を、コンフィギュレーションメモリのカラム順に生成する。このカラム順のコンフィギュレーションデータの生成は、以下のようにして行われる。（１）まずコンフィギュレーションコントローラ１３０は、部分再構成の対象領域のコンフィギュレーションメモリ内の位置を参照する。例えば図４（ａ）では、コンフィギュレーションコントローラ１３０は、部分再構成部用メモリ４０１の位置がコンフィギュレーションメモリの左上であることを確認する。（２）次にコンフィギュレーションコントローラ１３０は、参照された位置におけるコンフィギュレーションメモリにデータ「０」が書き込まれるようなビットストリームデータをカラム単位で生成する。例えば図４（ｂ）では、コンフィギュレーションコントローラ１３０は、コンフィギュレーションメモリの第１カラム用にビットストリームデータ「０００１１１１１１」を生成する。そしてコンフィギュレーションコントローラ１３０は、続いて第２カラム用にビットストリームデータ「０００１１１１１１」を生成する。続くカラムについても同様である。対象領域に関わる全てのカラムに対応するビットストリームデータが、図４（ｂ）の論理積用コンフィギュレーションデータ４１１に相当する。
【００７６】
Ｓ８０２において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、図７のＳ７０１の処理（２）で説明した処理（生成された論理積用コンフィギュレーションデータの送信）を行う。
【００７７】
Ｓ８０３において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、図７のＳ７０２の処理（１）で説明した処理（機能用コンフィギュレーションデータの読み出し）を行う。
【００７８】
Ｓ８０４において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、図４（ｂ）に示される固定部論理和用コンフィギュレーションデータ４１６を、コンフィギュレーションメモリのカラム順に生成する。このカラム順のコンフィギュレーションデータは、全ての要素が「０」ビットストリームデータである。
【００７９】
Ｓ８０５において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、Ｓ８０３で読み出された機能用のコンフィギュレーションデータと、Ｓ８０４で生成された固定部論理和用コンフィギュレーションデータ４１６とをマージする。このマージは、図７のＳ７０２の処理（３）で説明した処理（２つのコンフィギュレーションデータのマージ）と同様である。すなわち処理（３）で説明したように、部分再構成部用メモリ４０１に書き込まれたコンフィギュレーションデータの内容が変更されるような、カラム順のコンフィギュレーションデータ（ビットストリームデータ）が得られる。
【００８０】
Ｓ８０６において、ＣＰＵ１０１は、コンフィギュレーションコントローラ１３０に対して次の処理を行うように指示する。コンフィギュレーションコントローラ１３０は、図７のＳ７０３の処理で説明した処理（マージされたコンフィギュレーションデータの送信）を行う。
【００８１】
以上のようなコンフィギュレーション処理を行うので、コンフィギュレーション用ＲＯＭ１５０に記憶しておくべき共通部用コンフィギュレーションデータ５０１分のメモリ容量を節約することができる。
【００８２】
（その他の実施例）
上記の実施例の説明においては、ＦＰＧＡ１４０は１つの部分再構成部を持ち、部分再構成部に構成する機能をＡ〜Ｄの４つの場合を例に説明した。しかし、部分再構成部の数と、そこに構成する機能を４つに限定した理由は、説明をわかりやすくするためだけであり、部分再構成部の数とそこに構成する機能数は上記実施例のみに限定されない。
【００８３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016111629.tif 000003
【図２】
2016111629.tif 000004
【図３】
2016111629.tif 000005
【図４】
2016111629.tif 000006
【図５】
2016111629.tif 000007
【図６】
2016111629.tif 000008
【図７】
2016111629.tif 000009
【図８】
2016111629.tif 000010