(57)【特許請求の範囲】
【請求項１】
論理回路が作られるプログラマブル回路と、
機能に対応するコンフィグレーションデータを用いて、前記プログラマブル回路に論理回路を作る再構成手段と、
前記再構成手段により前記プログラマブル回路に作られた論理回路が前記機能を実行するために利用される記憶手段と、
コマンドに含まれるアドレスの少なくとも一部を用いて、前記コマンドが前記プログラマブル回路に作られた前記論理回路が前記機能を実行するために利用する前記記憶手段に対するコマンドであるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて、前記アドレスにアクセスする制御手段と、
を有する情報処理装置であって、
前記コンフィグレーションデータは、該コンフィグレーションデータを用いて前記プログラマブル回路に作られた前記論理回路により利用される前記記憶手段のアドレス空間に対応する信号を前記判定手段に出力する論理回路を作るデータを含み、
前記判定手段は、前記アドレスの少なくとも一部と前記信号に対応する値との比較に基づいて、前記記憶手段に対応するコマンドであることを判定することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、前記プログラマブル回路を複数有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数の前記プログラマブル回路のそれぞれから出力される前記信号に重複があるか否かを検出する検出手段を更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記アドレスの少なくとも一部が、複数の前記プログラマブル回路から出力されるいずれの信号とも一致しない場合、その旨をユーザに通知する通知手段を更に有することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記コンフィグレーションデータを記憶するデータ記憶手段を更に有し、
前記データ記憶手段は、前記プログラマブル回路ごとに、当該プログラマブル回路に作られる前記機能を実行する論理回路を構成するための前記コンフィグレーションデータを記憶することを特徴とする請求項２乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記再構成手段は、複数の機能のそれぞれに対応するコンフィグレーションデータから選択された一つのコンフィグレーションデータを用いて、前記複数の機能のうち一つの機能に対応する論理回路を前記プログラマブル回路に作ることができ、
前記再構成手段が前記プログラマブル回路に作ることのできる前記論理回路により実行される前記機能ごとに当該機能を実行するために利用される前記記憶手段を有し、
前記記憶手段は、前記機能ごとに異なるアドレス空間の割り当てられていることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記コマンドは、前記記憶手段に対するリードコマンド、または、ライトコマンドであることを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記判定手段は、前記アドレスの少なくとも一部と、前記コンフィグレーションデータにより前記プログラマブル回路に作られた前記論理回路が出力する前記信号が一致しているか否かを判定し、
前記制御手段は、前記判定手段が前記アドレスの少なくとも一部と、前記コンフィグレーションデータにより前記プログラマブル回路に作られた論理回路が出力する前記信号が一致していると判定した場合、前記アドレスにアクセスすることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記制御手段は、前記判定手段が前記コマンドに含まれる前記アドレスの少なくとも一部と、前記コンフィグレーションデータにより作られた論理回路が出力する前記信号が一致すると判定した場合に、前記プログラマブル回路を選択する選択信号を出力し、
前記記憶手段は、出力された前記信号と前記記憶手段を制御するコマンドとに基づいてアクセスされることを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記記憶手段のアドレス空間に対応する信号は、前記プログラマブル回路に作られた論理回路が機能を実行するために利用する前記記憶手段のアドレスの最上位のビットから所定のビットまでの値であることを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記アドレスの一部は、前記アドレスの最上位のビットから所定のビットまでの値であることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記記憶手段には、前記プログラマブル回路に入力される画像データの格納されているアドレス、前記プログラマブル回路が出力する画像データを格納する格納先のアドレス、前記プログラマブル回路の生成する画像の大きさを示す値、前記プログラマブル回路による処理の開始を示す値の少なくとも一つが記憶されることを特徴とする請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記記憶手段は、前記プログラマブル回路が前記機能を実行するために利用するレジスタであることを特徴とする請求項１乃至１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記プログラマブル回路は、前記再構成手段により前記プログラマブル回路に作られている前記論理回路と異なる他の論理回路が作られるまで、作られている前記論理回路が利用する前記記憶手段のアドレス空間に対応する信号を出力し続けることを特徴とする請求項１乃至１３のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
内部にユーザがプログラミング可能な複数の論理ブロックを備える回路（コンフィグレーションメモリとも呼ぶ）を有するデバイスがある。ユーザは各論理ブロックをプログラミングすることで様々な論理回路（機能に対応する）をチップ上に構成可能である。このプログラミングは、論理ブロックで実現する論理（例えばＡＮＤロジックなど）の情報をコンフィグレーションデータとして、コンフィグレーションメモリに書き込むことで行われる。これをコンフィグレーションと呼ぶ。代表的なデバイスとして、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が挙げられる。
【０００３】
近年、コンフィグレーションメモリを複数の領域（部分再構成部とも呼ぶ）に区分し、各部分再構成部に別々のタイミングでコンフィグレーションを可能とするデバイスが登場している。このようなコンフィグレーションを部分再構成と呼ぶ。特許文献１は、パイプラインを構成する複数の論理回路のそれぞれを、パイプラインの先頭から順に、コンフィグレーションメモリ上の対応する部分再構成部に構成していく手法を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８６９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、一つの部分再構成部に、異なる論理回路を切り替えて構成することができる。すなわち、複数の部分再構成部がコンフィグレーションメモリ上に存在すれば、ある機能（ある機能を実現するための論理回路）を、任意の部分再構成部に構成することができる。このようなロケーションフリーとなる部分再構成を行うと、次の課題が生じる。
【０００６】
例えば、デバイスの部分再構成部に、アプリケーションプログラムが利用する機能に対応する論理回路が構成されているとする。アプリケーションプログラムは、その機能に対応する論理回路の制御のためにアクセスされる複数レジスタの論理アドレスを認識している。すなわち、アプリケーションプログラムは、機能に固有のレジスタ空間を認識している。一方、構成される論理回路が同じであっても、デバイスは、その論理回路の制御のためにアクセスされる複数のレジスタの物理アドレスを、部分再構成部ごとに異なるように割り当てている。すなわち、デバイスは、部分再構成部に固有のレジスタ空間を認識している。このような場合、ある機能の論理回路が任意の部分再構成部に構成されてしまうと、その機能を利用するプログラムが認識するレジスタ空間と、その機能の論理回路が構成される部分再構成部に割り当てられる固有のレジスタ空間とが合致しなくなってしまう。その結果、論理回路のロケーションフリーな部分再構成を行うと、アプリケーションプログラムが発行するアドレスから、部分再構成部の適切なレジスタにアクセスすることができなくなってしまう。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、論理回路が作られるプログラマブル回路と、機能に対応するコンフィグレーションデータを用いて、前記プログラマブル回路に論理回路を作る再構成手段と、前記再構成手段により前記プログラマブル回路に作られた論理回路が前記機能を実行するために利用される記憶手段と、コマンドに含まれるアドレスの少なくとも一部を用いて、前記コマンドが前記プログラマブル回路に作られた前記論理回路が前記機能を実行するために利用する前記記憶手段に対するコマンドであるか否かを判定する判定手段と、前記判定手段による判定結果に基づいて、前記アドレスにアクセスする制御手段と、を有する情報処理装置であって、前記コンフィグレーションデータは、該コンフィグレーションデータを用いて前記プログラマブル回路に作られた前記論理回路により利用される前記記憶手段のアドレス空間に対応する信号を前記判定手段に出力する論理回路を作るデータを含み、前記判定手段は、前記アドレスの少なくとも一部と前記信号に対応する値との比較に基づいて、前記記憶手段に対応するコマンドであることを判定する。
【発明の効果】
【０００８】
本発明によれば、任意の機能がいずれの部分再構成部に構成された場合でも、その部分再構成部が割り当てられるレジスタ空間とプログラムの認識するレジスタ空間が一致させ、部分再構成部の適切なレジスタにアクセスすることができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置の構成例を示す図。
【図２】第一の実施形態に係る画像処理装置の動的部分再構成に係る構成を示す図。
【図３】ジョブと部分再構成される機能との関係を示す図。
【図４】回路情報の格納方法の一例を示す図。
【図５】第一の実施形態に係るアドレスマップの一例を示す図。
【図６】第一の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図７】第一の実施形態に係る一致検出回路の詳細を説明するための図。
【図８】第一の実施形態に係る部分再構成部の内部構成を説明するための図。
【図９】第一の実施形態に係るコマンド発生時のタイミングチャート。
【図１０】第一の実施形態に係る制御処理のフローチャート。
【図１１】第二の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図１２】第二の実施形態に係る組合せ回路の詳細を説明するための図。
【図１３】第三の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図１４】第三の実施形態に係るベースアドレス保持部の詳細を説明するための図。
【図１５】第三の実施形態に係る制御処理のフローチャート。
【図１６】第四の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図１７】第四の実施形態に係るＬＵＴ部の詳細を説明するための図。
【図１８】第四の実施形態に係る制御処理のフローチャート。
【図１９】第五の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図２０】第五の実施形態に係る重複検出部の詳細を説明するための図。
【図２１】第六の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図２２】第六の実施形態に係るＡｃｋ生成部の詳細を説明するための図。
【図２３】第七の実施形態に係るＦＰＧＡの詳細を説明するための図。
【図２４】第七の実施形態に係る制御処理のフローチャート。
【図２５】第七の実施形態に係るサブプログラムにおける動作のフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態では、画像処理装置を例にとって説明するが、これに限定するものではなく、他の情報処理装置であってもよい。
【００１１】
＜第一の実施形態＞
［画像処理装置の構成］
図１は、第一の実施形態に係る画像処理装置１００の構成例を示す図である。画像処理装置１００は、ユーザが各種の操作を行うための操作部１０３、操作部１０３からの指示に従い画像情報を読み取るスキャナ部１０９、および、画像データを紙等の印刷媒体に印刷するプリンタ部１０７を有する。スキャナ部１０９は、スキャナ部１０９の全体動作を制御するＣＰＵ（不図示）や、原稿読取を行うための照明ランプや走査ミラー（不図示）を有する。プリンタ部１０７は、プリンタ部１０７の全体動作を制御するＣＰＵ（不図示）や、画像形成や定着を行うための感光体ドラムや定着器（不図示）を有する。
【００１２】
また、画像処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０４、ＲＡＭ１１１、およびメモリコントローラ１１０を備える。ＣＰＵ１０１は、画像処理装置１００全体の動作を統括的に制御し、画像処理装置１００が備える各ユニットを制御するための制御ソフトウェアを実行する。ＲＯＭ１０４は、不揮発性の記憶部であり、ＣＰＵ１０１が実行するプログラムが格納されている。ＲＡＭ１１１は、揮発性の記憶部であり、ＣＰＵ１０１が実行するプログラム等を動作させるために利用されるシステムワークメモリとしてや、画像データを一時記憶するための画像メモリとして機能する。メモリコントローラ１１０は、ＲＡＭ１１１と、ＲＡＭ１１１への書き込み、読み出し動作を制御する。メモリコントローラ１１０は、システムバス１２０および画像バス１２１に接続され、ＲＡＭ１１１へのアクセスを制御する。
【００１３】
画像処理装置１００は、再構成可能デバイスとして画像処理回路等を構成するＦＰＧＡ１４０を有する。ＦＰＧＡ１４０は、動的書き換え可能、かつ、部分書き換え可能なものである。すなわち、ＦＰＧＡ１４０の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。なお、本実施形態では再構成可能デバイス（プログラマブル回路部）としてＦＰＧＡを例に説明しているが、ＦＰＧＡ以外の再構成可能デバイスが接続される構成であってもよい。
【００１４】
また、画像処理装置１００は、コンフィグコントローラ１３０、およびコンフィグレーション用ＲＯＭ１５０を有する。コンフィグコントローラ１３０は、ＣＰＵ１０１の制御の下、ＦＰＧＡの回路構成（コンフィグレーション）を制御する。コンフィグレーション用ＲＯＭ１５０は、ＦＰＧＡ１４０に構成するための論理回路構成情報（コンフィグレーションデータ）が格納されている。ここで格納されているコンフィグレーションデータの詳細については図４を用いて後述する。
【００１５】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタ部１０７へ画像データを出力するプリンタＩ／Ｆ１０６とを有する。ＦＰＧＡ１４０、スキャナＩ／Ｆ１０８、およびプリンタＩ／Ｆ１０６は、画像データを転送するための画像バス１２１に接続される。
【００１６】
画像処理装置１００は、ネットワークＩ／Ｆ１０２を介して、ネットワーク上の汎用コンピュータ（不図示）と通信（送受信）を行う。また、画像処理装置１００は、ＵＳＢ  Ｉ／Ｆ１１４を介して、画像処理装置１００に接続された汎用コンピュータ（不図示）と通信（送受信）を行う。また、画像処理装置１００は、ＦＡＸ  Ｉ／Ｆ１１５を介して公衆回線網と接続し、他の画像処理装置やファクシミリ装置（不図示）と通信（送受信）を行う。画像処理装置１００は、ＲＯＭ  Ｉ／Ｆ１１２、システムバス１２０を有する。ＲＯＭ  Ｉ／Ｆ１１２は、ＣＰＵ１０１が実行するプログラムの、ＲＯＭ１０４からの読み出し動作を制御する。システムバス１２０は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部１０３、ＲＯＭ  Ｉ／Ｆ１１２、コンフィグコントローラ１３０、およびＦＰＧＡ１４０を相互に接続する。ＣＰＵ１０１は、ＦＰＧＡ１４０、スキャナＩ／Ｆ１０８、およびプリンタＩ／Ｆ１０６のパラメータ設定を、システムバス１２０を介して行う。
【００１７】
［部分再構成に関する構成］
次に、図２を用いて、本実施形態における部分再構成に関する構成について説明する。ＣＰＵ１０１、コンフィグコントローラ１３０、コンフィグレーション用ＲＯＭ１５０、ＦＰＧＡ１４０、メモリコントローラ１１０、およびＲＯＭ  Ｉ／Ｆ１１２については、図１を用いて前述した通りである。
【００１８】
ＦＰＧＡ１４０は、内部に、部分再構成部２００（ＰＲ０）、部分再構成部２０１（ＰＲ１）、部分再構成部２０２（ＰＲ２）、および部分再構成部２０３（ＰＲ３）を備える。この各部分再構成部に論理回路が構成され、本実施例では１つの部分再構成部には複数の論理回路のうちのいずれもが構成可能となっている。各部分再構成部は動的に画像処理回路等を書き換えることが可能である。なお、部分再構成部を以後「ＰＲ」とも呼ぶ。なお、本実施形態においては部分再構成部の数を４つとしたが、この構成に限定するものではなく、増減しても構わない。
【００１９】
本実施形態において、各ＰＲに構成される機能の種類を図３に示す。本実施形態においては、画像処理または圧縮伸長機能を持つ回路をＰＲに構成する例について説明をしているが、これに限定するものではなく、それら以外の回路をＰＲに構成してもよい。図３では、画像処理装置１００がジョブを実行する際にＦＰＧＡ１４０上に構成される機能との関係の一例を示している。以下、図３に挙げたジョブ種ごとにその動作の概要と構成される回路について説明する。以下の動作は、ＣＰＵ１０１が実行するプログラムにより制御される。
【００２０】
（コピージョブ）
コピージョブでは、スキャナ部１０９で原稿が読みとられることによって生成された画像データに対し、ＰＲ０〜ＰＲ３のいずれかに構成された読取用画像処理機能３０２を備える回路により画像処理が行われ、ＲＡＭ１１１の所定の領域にバッファする。ＲＡＭ１１１にバッファされた画像データは、次に、ＰＲ０〜ＰＲ３のいずれかに構成されたプリント用画像処理機能３０３を備える回路によって画像処理が行われる。その後、画像処理が行われた画像データは、プリンタ部１０７へプリンタＩ／Ｆ１０６を介して転送される。
【００２１】
読取用画像処理機能３０２は、像域分離処理部、色空間変換処理部、フィルタ処理部、および下地除去処理部などから構成される。像域分離処理部は、入力画像から文字部を検出することにより像域を判定し、その後の画像処理に利用する像域信号を生成する。テーブル変換処理部は、テーブル変換により、読み取った画像データの輝度データを濃度データに変換する。フィルタ処理部は、例えばエッジ強調などの目的に従ったデジタル空間フィルタで演算を行う。下地除去処理部は、背景に薄い色がある原稿を読み取った画像データが送られてきた場合に背景色を除去する。
【００２２】
プリント用画像処理機能３０３は、色空間変換処理部、補正処理部、および誤差拡散処理部などから構成される。色空間変換処理部は、ＲＧＢデータを画像処理装置の出力特性に合わせてＣＭＹＫ変換を行う。補正処理部は、画像データの濃度変換を行う。誤差拡散処理部は、入力画像データを所定の閾値と比較することによりＮ値化を行い、その際の入力画像データと閾値との差分を、以降にＮ値化処理の対象となる周囲画素に対して拡散することでハーフトーン処理を行う。
【００２３】
（プリントジョブ）
プリントジョブでは、ホストコンピュータ等からネットワークを介して送信されたＰＤＬデータをネットワークＩ／Ｆ１０２を介して受信し、一時的にＲＡＭ１１１の所定の領域にバッファする。ＣＰＵ１０１は、バッファされたＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを解析して描画コマンド群を生成し、ＲＡＭ１１１の所定の領域にバッファする。バッファされた描画コマンド群は、ＰＲ０〜ＰＲ３のいずれかに構成されたＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理機能３１８を備える回路によってＲＩＰ処理が行われ、ＲＡＭ１１１の所定の領域に画像データが描画される。描画された画像データは、ＰＲ０〜ＰＲ３のいずれかに構成されたプリント用画像処理機能３０３を有する回路により画像処理が行われ、その後、プリンタ部１０７へプリンタＩ／Ｆ１０６を介して転送される。
【００２４】
（ＦＡＸジョブ）
ＦＡＸジョブでは、ＦＡＸ  Ｉ／Ｆ１１５を介して外部公衆回線網から送信されたＦＡＸデータを受信し、ＲＡＭ１１１の所定領域にバッファする。受信されたＦＡＸデータからは、そのヘッダ情報を元にＪＢＩＧ（Ｊｏｉｎｔ  Ｂｉ−ｌｅｖｅｌ  Ｉｍａｇｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）の圧縮データが抽出される。そして、圧縮データに対し、ＰＲ０〜ＰＲ３のいずれかに構成されたＪＢＩＧ伸長処理機能３２２を備える回路によりＪＢＩＧ伸長処理が行われる。その後、復元されたＦＡＸ画像データは、ＲＡＭ１１１の所定領域にバッファされる。バッファされたＦＡＸ画像データは、ＰＲ０〜ＰＲ３のいずれかに構成されたＦＡＸ用画像処理機能３０６を備える回路によりＦＡＸ用画像処理が行われ、ＨＤＤ１１７の所定領域に格納される。ＦＡＸ用画像処理機能３０６は、スムージング処理、ファクシミリ規格の解像度から画像処理装置１００の印刷解像度へ解像度変換を行う画像処理等を含む。
【００２５】
（ＳＥＮＤジョブ）
ＳＥＮＤジョブでは、スキャナ部１０９で原稿が読みとられることによって生成された画像データに対し、ＰＲ０〜ＰＲ３のいずれかに構成された読取用画像処理機能３０２を備える回路によって画像処理が行われ、ＲＡＭ１１１の所定の領域にバッファする。次に、ネットワークＩ／Ｆ１０２を介して外部の汎用コンピュータ（不図示）へ効率よく画像データを送信するために、画像データに対し、部分再構成部２００〜２０３のいずれかに構成されたＪＰＥＧ圧縮機能を備える回路によりＪＰＥＧ圧縮処理が行われる。その後、圧縮されたデータは、ネットワークＩ／Ｆ１０２を介して外部の汎用コンピュータ（不図示）へ送信される。
【００２６】
以上、ジョブと機能との関係を説明した。本実施形態では各ジョブに対して２つの機能を使う例を示しているが勿論これに限定されるものではなく、１のジョブ種に対し３以上の機能が行われてもよい。また、ジョブ実行のために必要な機能の内容についても図３に示すものに限定されるものではない。
【００２７】
本願発明は、ＰＲ０〜ＰＲ３に任意の機能が構成され、更に、その機能を構成するＰＲが変わった際の課題と解決手段に関するものである。本実施形態では、ＦＰＧＡ１４０は４つのＰＲを備え、ＰＲに構成する機能をＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの場合を例に説明する。本実施形態では、ＰＲの数を４、機能数を６としているが、機能の内容、数をこれらに限定するものではない。
【００２８】
［コンフィグレーションデータの構成］
図４は、コンフィグレーション用ＲＯＭ１５０に格納されるＦＰＧＡ１４０の各ＰＲ０〜ＰＲ３に構成されるコンフィグレーションデータの例である。コンフィグレーション用ＲＯＭ１５０には部分再構成に必要な複数個のコンフィグレーションデータが格納される。ＰＲ０用のコンフィグレーションデータ４００は、ＰＲ０に構成することが可能なコンフィグレーションデータを表す。コンフィグレーションデータ４０１は、ＰＲ０に機能Ａの回路を構成するためのデータである。同様に、コンフィグレーションデータ４０２〜４０６それぞれは、ＰＲ０に機能Ｂ〜Ｆの回路構成を構成するためのデータを表す。
【００２９】
ＰＲ１用のコンフィグレーションデータ４１０は、ＰＲ１に構成することが可能なコンフィグレーションデータを表す。ＰＲ１用のコンフィグレーションデータ４１０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグレーションデータを格納しており、部分再構成部（ＰＲ１）２０２には６つの機能を切り替えて構成することが可能である。
【００３０】
ＰＲ２用のコンフィグレーションデータ４２０は、ＰＲ２に構成することが可能なコンフィグレーションデータを表す。ＰＲ２用のコンフィグレーションデータ４２０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグレーションデータを格納しており、部分再構成部（ＰＲ２）２０３には６つの機能を切り替えて構成することが可能である。
【００３１】
ＰＲ３用のコンフィグレーションデータ４３０は、ＰＲ３に構成することが可能なコンフィグレーションデータを表す。ＰＲ３用のコンフィグレーションデータ４３０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグレーションデータを格納しており、ＰＲ３には６つの機能を切り替えて構成することが可能である。
【００３２】
上述したように、ＰＲごとに各機能に対応したコンフィグレーションデータを用意する必要がある。例えば、機能Ａの回路構成をＰＲ０に構成する場合はＰＲ０用機能Ａのコンフィグレーションデータ４０１を用い、機能Ａの回路構成をＰＲ１に構成する場合はＰＲ１用機能Ｂのコンフィグレーションデータ４０２を用いる。このように、同じ機能を実現する場合においても、構成場所（部分再構成部）それぞれに応じて異なるコンフィグレーションデータを用意しておく必要がある。
【００３３】
図５は、ＣＰＵ１０１がシステムバス１２０に接続された各Ｉ／ＦやＦＰＧＡ１４０などのブロックにアクセスする際の各ブロックとアクセスアドレスとの関係を示すアドレスマップの一例である。図５（ａ）は画像処理装置１００全体を示す。図５（ｂ）は、特にＦＰＧＡ１４０に構成される画像処理回路のレジスタ空間の詳細を示す。ＦＰＧＡ１４０に構成される可能性のある機能Ａ〜Ｆの６つに対し、例えば図５（ｂ）に示すレジスタ空間のように、「０ｘ８０００＿００００」から４Ｋバイトずつマッピングされている。なお、レジスタ空間を示す値に付与されている「０ｘ」は本値が１６進数表現であることを意味する。
【００３４】
上述したように、従来、各ＰＲは固有のレジスタ空間が対応付けられているのに対し、各ＰＲを制御するプログラムは回路の機能（アクセスすべき論理回路の種類）によりレジスタ空間が決まっていた。そのため、機能がロケーションフリーに複数のＰＲのうちのいずれかに再構成されることにより、ＰＲに割り当てられるレジスタ空間とプログラムの認識するレジスタ空間とが合わなくなるという課題があった。本実施例を含む以下の複数の実施例は、この課題を解決する。
【００３５】
［ＦＰＧＡの構成］
図６（ａ）は、本実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。ここでは一例として、ＰＲ０に機能Ｅ、ＰＲ１に機能Ｆ、ＰＲ２に機能Ａ、ＰＲ３に機能Ｂがコンフィグレーションデータにより構成されているものとする。これらの関係は再構成が行われるたびに動的に変わるものであり、この構成に限定されるものではない。図６（ａ）では、前述のように構成されたＦＰＧＡ１４０においてＣＰＵ１０１が各ＰＲへシステムバス１２０を介してアクセスする際のアドレスのデコード方法について説明している。従って、画像バス１２１とのインターフェース、コンフィグコントローラ１３０、コンフィグレーション用ＲＯＭ１５０とのインターフェース、およびそれらに関する回路部は図６から省略している。
【００３６】
ＣＰＵ１０１は、レジスタに対するアクセスコマンドを発行する。アクセスコマンドとは、ＦＰＧＡ１４０内の特定のレジスタへデータをライトするライトコマンド、および、ＦＰＧＡ１４０内の特定のレジスタへデータをリードするリードコマンドが挙げられる。システムバス１２０は、ＣＰＵ１０１から出力されるＡｄｄｒ［３１：０］、Ｗｒｉｔｅ信号、Ｒｅａｄ信号、ＦＰＧＡ１４０から返されるＡｃｋ信号、双方向のＤａｔａ［３１：０］信号を含む通信を行う。Ｗｒｉｔｅ信号は、ライトコマンドの発生を示し、Ｒｅａｄ信号はリードコマンドの発生を示す。Ａｃｋ信号は、Ａｄｄｒ［３１：０］によりアクセス先として指定されたブロックがライトコマンドまたはリードコマンドを受信したことをＣＰＵ１０１に知らせるアクノリッジ信号である。例えば、ライトコマンドは、ＣＰＵ１０１がＡｄｄｒ［３１：０］信号とＤａｔａ［３１：０］信号を出力しながらＷｒｉｔｅ信号を有効にすることにより開始し、Ａｃｋ信号の応答により終了する。また、リードコマンドは、ＣＰＵ１０１がＡｄｄｒ［３１：０］信号を出力しながらＲｅａｄ信号を有効にすることにより開始し、Ａｃｋ信号の応答時にＤａｔａ［３１：０］をＣＰＵ１０１が取得することにより終了する。詳細はタイミングチャートを用いて後述する。
【００３７】
ＦＰＧＡ１４０は、前述の４つのＰＲ０〜ＰＲ３以外にデコーダ６０１とＯＲ６２２をさらに含む。デコーダ６０１およびＯＲ６２２は電源がオンとなった際にコンフィグコントローラ１３０により回路が構成され、以後は再構成が行われないスタティック領域に属する。また、ＦＰＧＡ１４０内の各ブロックを接続する配線もスタティック領域に属する。
【００３８】
デコーダ６０１は、一致検出回路６１０、６１１、６１２、および６１３を含んで構成されるアドレスデコーダである。一致検出回路６１０は、システムバス１２０の上位２０ビット（Ａｄｄｒ［３１：１２］）と部分再構成部２００から出力されるＰＲ０＿Ｂａｓｅ信号（２０ビット）とを比較する。そして、一致検出回路６１０は、これらが一致した場合にセレクト信号Ｓｅｌｅｃｔ０をＰＲ０（部分再構成部２００）へ出力する論理回路である。各部分再構成部から出力されるＢａｓｅ信号の値は、図６（ｂ）に示すとおりである。
【００３９】
一致検出回路６１０の詳細を図７に示す。一致検出回路６１０に入力されるＡｄｄｒ［３１：１２］とＰＲ０＿Ｂａｓｅは、それらの対応するビット同士がＸＯＲゲート（排他的論理素子）により比較される。ここでは、信号は２０ビットであるため、ＸＯＲゲートも２０個用意される。排他的論理素子７０１は各ビットの値が等しい場合に「０」を出力する。各出力は負論理入力のＡＮＤゲート７０２の入力であるので、その全入力が「０」の場合、即ちＡｄｄｒ［３１：１２］とＰＲ０＿Ｂａｓｅの値が一致した場合に、一致検出回路６１０はＳｅｌｅｃｔ０として「１」を出力する。他の一致検出回路６１１、６１２、６１３も同一の論理回路であるため説明は省略する。
【００４０】
ＰＲ０（部分再構成部２００）の内部構成を図８（ａ）に示す。ＰＲ０は、ＰＲ０＿Ｂａｓｅ出力部８１０、有限ステートマシン（ＦＳＭ）８０３、レジスタ群８０４、および画像処理回路８０５を含む。本実施形態において、これらの回路および配線情報は全てＰＲ０用機能Ｅのコンフィグレーションデータ４０５に含まれている。
【００４１】
ＰＲ０＿Ｂａｓｅ出力部８１０は回路素子を持たず、ＰＲ０＿Ｂａｓｅ信号を構成する２０本の各信号線を電源８０１またはグランド８０２へ接続することにより、図８（ｂ）を用いて後述する所定の値をＰＲ０＿Ｂａｓｅ信号として常時出力する。なお、ＰＲ０＿Ｂａｓｅ信号の出力を持つためのＰＲ０＿Ｂａｓｅ出力部８１０を構成することにより必要となる回路リソースは軽微である。ここでＰＲ０＿Ｂａｓｅ信号は、自身が属するＰＲのレジスタ空間のベースアドレスを示す。図５（ｂ）のアドレスマップで示されているように、ＰＲ０に構成された機能Ｅに対応するレジスタアクセス空間は０ｘ８０００＿４０００〜０ｘ８０００＿４ＦＦＦの空間である。そのため、ＰＲ０＿Ｂａｓｅ信号は、ベースアドレス０ｘ８０００＿４０００の上位２０ビット、即ち、「０ｘ８０００４」となる。なお、他の機能がＰＲ０に構成された場合のＰＲ０＿Ｂａｓｅ信号もその機能に応じた値となる。ＰＲ０に構成される機能と、各機能が構成された際に出力されるＰＲ０＿Ｂａｓｅの値と関係を図８（ｂ）の表に示す。
【００４２】
ＰＲ１、ＰＲ２、ＰＲ３についても同様である。例えば、図６（ａ）のＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅは、各ＰＲに構成されている機能Ｆ、機能Ａ、機能Ｂのベースアドレスを示すため、それぞれ、０ｘ８０００５、０ｘ８００００、０ｘ８０００１となる。まとめると図６（ｂ）の表となる。デコーダ６０１は、システムバス１２０のＡｄｄｒ［３１：１２］がＰＲ０＿Ｂａｓｅ〜ＰＲ３＿Ｂａｓｅの何れかと一致した場合に、対応するＰＲへセレクト信号（Ｓｅｌｅｃｔ０〜Ｓｅｌｅｃｔ３）を出力する。その結果、各機能のレジスタ空間は、図６（ａ）に示すアドレスマップ６３０となる。つまり、ＦＰＧＡ１４０に構成された機能Ｅ、Ｆ、Ａ、Ｂのレジスタ空間は、図５（ｂ）と一致する。
【００４３】
図８の説明に戻る。ＦＳＭ８０３は、Ｓｅｌｅｃｔ０が有効（「１」）、かつ、Ｗｒｉｔｅ信号またはＲｅａｄ信号のアサートを受けた場合に、レジスタ群８０４へライトまたはリードを指示するとともに、Ａｃｋ０信号の返信制御を行う有限ステートマシンである。レジスタ群８０４は、ＦＳＭ８０３からライト指示を受けた場合に、信号群６２０のＡｄｄｒ［１１：０］（１２ビット）により特定されるレジスタにＤａｔａ［３１：０］信号の３２ビットの値をセットする。また、レジスタ群８０４は、ＦＳＭ８０３からリード指示を受けた場合に、信号群６２０のＡｄｄｒ［１１：０］（１２ビット）により特定されるレジスタの値をＤａｔａ［３１：０］信号にて出力する。
【００４４】
画像処理回路８０５は、レジスタ群８０４内のレジスタにセットされた値により動作が制御される画像処理回路である。例えば、画像処理回路８０５において、機能ＥとしてＪＰＥＧ圧縮処理機能が構成されている場合、レジスタ群８０４は、以下のレジスタを含む。即ち、元データの格納アドレスを示す入力アドレスレジスタ、圧縮データ出力先アドレスを示す出力アドレスレジスタ、画像サイズを示す幅レジスタ、高さレジスタ、任意のデータをライトすることにより処理を開始させる起動レジスタである。ＣＰＵ１０１は、入力アドレスレジスタ、出力アドレスレジスタ、幅レジスタ、高さレジスタをセットした後に起動レジスタに任意のデータをライトする。画像処理回路８０５は、ＲＡＭ１１１内の入力アドレスレジスタが示すアドレスから画像バス（不図示）を介して画像データを読み取り、圧縮処理を施して、ＲＡＭ１１１内の出力レジスタが示すアドレスへ圧縮後のデータを格納する。
【００４５】
ＰＲ１、ＰＲ２、ＰＲ３についても、構成された機能が異なる点と、それにより出力するＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅの値が図８（ｂ）の表に示すように変わる点以外は同様である。
【００４６】
［タイミングチャート］
図９は、ＣＰＵ１０１が、ＰＲ０に対してライトコマンドとリードコマンドを発行した場合の動作を表すタイミングチャートである。以下、タイミングチャートに沿って時系列にＦＰＧＡ１４０内の動作を説明する。
【００４７】
時刻Ｔ０から時刻Ｔ２まではＷｒｉｔｅ信号、Ｒｅａｄ信号共にアクティブでは無い、即ちアイドルサイクルである。時刻Ｔ２において、ＣＰＵ１０１は、Ｗｒｉｔｅ信号をアサートし、ライトコマンドのサイクルを開始する。同時に、ＣＰＵ１０１は、Ａｄｄｒ［３１：０］にアクセス先を示すアドレスを出力する。上述したように、ＣＰＵ１０１は、機能ごとに固定されたアクセス先を認識しており、ここでは機能Ｅに対応するアドレス空間のアドレスが指定される。ここでは例えば、Ａｄｄｒ［３１：０］＝０ｘ８０００＿４０１４とする。出力されたＡｄｄｒ［３１：０］の上位２０ビット（Ａｄｄｒ［３１：１２］）は、デコーダ６０１内の一致検出回路６１０、６１１、６１２、６１３のそれぞれに入力される。そして、入力された各Ａｄｄｒは、ＰＲ０、ＰＲ１、ＰＲ２、ＰＲ３から各一致検出回路に入力されるＰＲ０＿Ｂａｓｅ、ＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅとそれぞれ比較される。つまり、デコーダ６０１内の一致検出回路６１０、６１１、６１２、６１３には、アドレスを特定するために、同じ値（Ａｄｄｒ［３１：０］の上位２０ビット）が入力される。ここで４つのＰＲ０〜ＰＲ３のレジスタ空間はそれぞれ排他的なので複数の一致検出回路が一致を検出することは無く、１つの一致検出回路のみが一致を検出する。ここでは、Ａｄｄｒ［３１：１２］とＰＲ０＿Ｂａｓｅが一致するので一致検出回路６１０のみがＳｅｌｅｃｔ０（「１」）を出力する。
【００４８】
時刻Ｔ３でＦＳＭ８０３は、Ｗｒｉｔｅ信号がアサートされ、かつ、Ｓｅｌｅｃｔ０が有効（「１」）であることから、部分再構成部２００へのライトアクセスを認識し、Ａｃｋ０を出力する。Ａｃｋ０はさらに、ＯＲ６２２を介してシステムバス１２０のＡｃｋ信号としてＣＰＵ１０１へ出力される。同じく時刻Ｔ３でＦＳＭ８０３は、レジスタ群８０４へライトコマンド受信を通知する。
【００４９】
レジスタ群８０４は、前述のライトコマンドの通知を受け付け、時刻Ｔ４でＡｄｄｒ［１１：０］で特定されたレジスタ群８０４内のレジスタにＤａｔａ［３１：０］の値がセットされる。またＣＰＵ１０１は、時刻Ｔ４でＡｃｋ信号を検出し、Ｗｒｉｔｅ信号をディアサートし、ライトコマンドの終了を示す。時刻Ｔ５でＦＳＭ８０３は、Ｗｒｉｔｅ信号のディアサートを検知し、Ａｃｋ０をディアサートする。以上でシステムバス１２０はアイドル状態へ戻る。
【００５０】
時刻Ｔ８からはリードコマンドのサイクルを示す。時刻Ｔ８においてＣＰＵ１０１は、Ｒｅａｄ信号をアサートし、リードコマンドのサイクルを開始する。時刻Ｔ９でＦＳＭ８０３は、Ｒｅａｄがアサートされて、かつ、Ｓｅｌｅｃｔ０が有効（「１」）であることから、ＰＲ０へのリードアクセスを認識し、Ａｃｋ０を出力する。Ａｃｋ０はさらに、ＯＲ６２２を介してシステムバス１２０のＡｃｋ信号としてＣＰＵ１０１へ出力される。同じく時刻Ｔ９でＦＳＭ８０３は、レジスタ群８０４へライトコマンド受信を通知する。
【００５１】
レジスタ群８０４は、前述のリードコマンドの通知を受け付け、時刻Ｔ９でＡｄｄｒ［１１：０］で特定されたレジスタ群８０４内のレジスタの値をＤａｔａ［３１：０］にて出力する。またＣＰＵ１０１は、時刻Ｔ１０でＡｃｋ信号を検出し、Ｒｅａｄ信号をディアサートし、リードコマンドの終了を示す。時刻Ｔ１１でＦＳＭ８０３は、Ｒｅａｄ信号のディアサートを検知し、Ａｃｋ０をディアサートするとともにＤａｔａ［３１：０］としてのレジスタ値の出力を停止する。以上により、システムバス１２０はアイドル状態へ戻る。
【００５２】
［処理フロー］
図１０は、本実施形態に係る画像処理装置１００のジョブ実行処理制御を表すフローチャートである。なお、図１０のフローチャートはＣＰＵ１０１により実行される。
【００５３】
Ｓ１００１にて、ＣＰＵ１０１は、画像処理装置１００が各種ジョブ（コピージョブ、プリントジョブ、ＦＡＸジョブ、ＳＥＮＤジョブ等）を受信したか否かを判定する。画像処理装置１００がジョブを受信した場合（Ｓ１００１にてＹＥＳ）、Ｓ１００２へ進む。
【００５４】
Ｓ１００２にて、ＣＰＵ１０１は、受信したジョブを実行するにあたり、ＦＰＧＡ１４０に構成する必要がある機能を特定する。ここでの機能の特定方法は、例えば、図３の表を参照して特定することができる。Ｓ１００３にて、ＣＰＵ１０１は、必要な機能を備える回路をＰＲ０〜ＰＲ３のいずれに構成するかを決定する。
【００５５】
Ｓ１００４にて、ＣＰＵ１０１は、Ｓ１００３で決定された再構成するＰＲに基づいて、コンフィグレーション用ＲＯＭ１５０に格納されたコンフィグレーションデータの中からＰＲにロードするコンフィグレーションデータを特定する。例えば、図４の例において、機能Ｅの回路をＰＲ４に再構成する場合、ＰＲ４用機能Ｅのコンフィグレーションデータであるコンフィグレーションデータ４３５が、ロードするコンフィグレーションデータとして決定される。ここでコンフィグレーションデータ４３５は、機能Ｅに対応するレジスタ空間上のアドレス０ｘ８０００４を出力するＰＲ０＿Ｂａｓｅ出力部８１０の回路情報を含む。
【００５６】
Ｓ１００５にて、ＣＰＵ１０１は、コンフィグコントローラ１３０を用いてＰＲを再構成する。例えば、ＰＲ４に機能Ｅのコンフィグレーションデータ４３５をロードすることによって、ＰＲ４が機能Ｅを備える回路として再構成される。更には、本実施形態では、ＰＲ０＿Ｂａｓｅ出力部８１０の回路も構成されることとなる。
【００５７】
Ｓ１００６にて、ＣＰＵ１０１は、ジョブ実行に必要な機能を再構成したＰＲを用いて実行する。本ステップは、処理のための各種レジスタ設定、起動のためのレジスタアクセス、処理終了待ち動作等も含む。
【００５８】
以上で１つの機能による処理が終了する。Ｓ１００７にて、ＣＰＵ１０１は、終了した処理が受け付けたジョブに対する最後の処理か否かを判定する。最後の処理で無ければ（Ｓ１００７にてＮＯ）Ｓ１００３に戻り、次の機能を実行する。最後の処理であれば（Ｓ１００７にてＹＥＳ）、本処理フローを終了する。
【００５９】
以上、任意の機能がどのＰＲに構成された場合であっても、そのＰＲが割り当てられるレジスタ空間とプログラムの認識するレジスタ空間が一致するシステムを提供することができる。その結果、部分再構成部を有する回路を含む装置であっても、適切にレジスタ空間にアクセスすることができる。
【００６０】
＜第二の実施形態＞
第一の実施形態では、各ＰＲ（部分再構成部２００〜２０３）は、自身のレジスタ空間を示す情報として２０ビットのベースアドレスを出力した。しかし、各ＰＲからは機能を識別するために必要なビット数のみを出力し、デコーダ６０１内で２０ビットのベースアドレスに変換した方がＦＰＧＡ１４０の配線リソース（Ｂａｓｅ出力部の構成）を節約できる。本実施形態では、この構成について説明する。
【００６１】
図１１（ａ）は、本実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。第一の実施形態と同様、ＰＲ０に機能Ｅ、ＰＲ１に機能Ｆ、ＰＲ２に機能Ａ、ＰＲ３に機能Ｂのコンフィグレーションデータがロードされ、論理回路が構成されている。
【００６２】
第一の実施形態の図６（ａ）との差分は、各ＰＲが自身の機能を示す識別する識別信号を出力する点である。例えば、ＰＲ０は、機能Ｅが構成されているため、機能Ｅを示すＦｕｎｃＥ＿ＩＤを出力する。各部分再構成部が構成できる機能は６種類（機能Ａ〜Ｆ）であるため、各機能を一意に識別するための識別信号は３ビットで表現可能である。例えば、図１１（ｂ）に示すように機能と識別信号の値を割り当てることができる。なお、再構成可能な機能数に応じて、識別信号を表現するためのビット数は増減する。各識別信号は組合せ回路１１００、１１０１、１１０２、１１０３へ入力され、各組み合せ回路がそれぞれ、ＰＲ０＿Ｂａｓｅ、ＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅを出力する。
【００６３】
第一の実施形態では、各コンフィグレーションデータは、機能に対応するレジスタ空間上のアドレスを出力するためのＢａｓｅ出力部の回路情報を含んでいた。これに対し、本実施形態では、機能を識別するための識別信号を出力するための部位の回路情報が含まれることとなる。
【００６４】
図１２（ａ）は、組合せ回路１１００の入出力を示す。また、図１２（ｂ）は組合せ回路の真理値表を示し、例えばコンフィグレーション用ＲＯＭ１５０等に保持されているものとする。図１２（ｂ）に示す入出力論理により、ＰＲ０に構成された機能の種類に応じて対応するレジスタ空間のベースアドレスを出力する。真理値表に示す論理を実現する組合せ回路の作成は従来の手法を利用するものとし、組合せ回路の詳細な説明は省略する。組合せ回路１１０１、１１０２、１１０３についても組合せ回路１１００と同一の論理構成を有する回路であるので説明を省略する。
【００６５】
以上により、第一の実施形態の効果に加え、第一の実施形態に比べてＦＰＧＡ１４０の配線リソースを節約することができる。
【００６６】
＜第三の実施形態＞
第三の実施形態は、各ＰＲのレジスタ空間をＣＰＵ１０１から設定可能な形態である。そのため、本実施形態では、一致検出回路６１０〜６１３へ入力する各ＰＲのベースアドレスはＣＰＵ１０１が設定可能なレジスタとしてＦＰＧＡ１４０内に備える。
【００６７】
図１３は、本実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。ＦＰＧＡ１４０以外の構成は第一の実施形態と同様であるため、説明を省略する。第一の実施形態のＦＰＧＡ（図６）との差分は、各ＰＲ（１３００〜１３０３）がそのレジスタ空間を示すベースアドレスを出力するのではなくベースアドレス保持部１３１０が出力する点である。従って、本実施形態では、各機能のコンフィグレーションデータは、レジスタ空間に関する情報（例えばベースアドレス）を出力するための回路情報を含む必要はない。
【００６８】
本実施形態に係るデコーダ６０１は、特定値検出回路１３２０を備える。特定値検出回路１３２０は、ＣＰＵ１０１がベースアドレス保持部１３１０にアクセスするために、システムバス１２０を介して受信したＡｄｄｒ［３１：１２］が特定値の場合に、Ｓｅｌｅｃｔ信号をベースアドレス保持部１３１０へ出力する。ここでの特定値は、例えば「０ｘ８０００８」とする。この構成により、アドレスマップ１３３０に示すように、ベースアドレス保持部１３１０は、０ｘ８０００＿８０００から４Ｋバイトの領域内に割り当てられる。即ち、ＣＰＵ１０１が０ｘ８０００＿８０００から４Ｋバイト分の領域にアクセスした場合、ベースアドレス保持部１３１０が選択される。なお、ベースアドレス保持部１３１０は、デコーダ６０１と同様、電源がオンとなった際にコンフィグコントローラ１３０により回路が構成され、以後は再構成が行われないスタティック領域に属する。
【００６９】
図１４は、本実施形態に係るベースアドレス保持部１３１０の詳細を説明するための図である。ベースアドレス保持部１３１０は、ＦＳＭ１４０３、およびレジスタ群１４０４を含む。ＦＳＭ１４０３は、Ｓｅｌｅｃｔ入力が有効な状態で、かつ、Ｗｒｉｔｅ信号またはＲｅａｄ信号のアサートを受けた場合、レジスタ群１４０４へライトまたはリードを指示するとともにＡｃｋ信号の返信制御を行う。タイミングは図９に示したタイミングチャートと同様である。
【００７０】
レジスタ群１４０４は、Ｒｅｇ０、Ｒｅｇ１、Ｒｅｇ２、およびＲｅｇ３を含む。レジスタ群１４０４は、ＦＳＭ１４０３からライト指示を受けた場合、信号群６２０のＡｄｄｒ［１１：０］により特定されるＲｅｇ０からＲｅｇ３の何れかのレジスタにＤａｔａ［１９：０］をセットする。また、レジスタ群１４０４は、ＦＳＭ１４０３からリード指示を受けた場合に、信号群６２０のＡｄｄｒ［１１：０］により特定されるＲｅｇ０からＲｅｇ３の何れかのレジスタの値をＤａｔａ［１９：０］信号にて出力する。Ｒｅｇ０、Ｒｅｇ１、Ｒｅｇ２、Ｒｅｇ３はそれぞれ、ＰＲ０、ＰＲ１、ＰＲ２、ＰＲ３のレジスタ空間のベースアドレスを示す。また、Ｒｅｇ０、Ｒｅｇ１、Ｒｅｇ２、Ｒｅｇ３はそれぞれ、一致検出回路６１０、６１１、６１２、６１３へ接続される。
【００７１】
［処理フロー］
図１５は、本実施形態に係る画像処理装置１００のジョブ実行処理制御を表すフローチャートである。図１５のフローチャートは、ＣＰＵ１０１により実行される。第一の実施形態との差分として、第三の実施形態は、ＣＰＵ１０１がベースアドレス保持部１３１０への設定を行う点である。図１５のフローチャートにおいてはＳ１５０１に相当する。なお、第一の実施形態にて述べた図１０の処理と同じ処理については、同じ参照番号を付す。
【００７２】
差分に着目してフローチャート全体を説明する。ＣＰＵ１０１は、ジョブを受信すると（Ｓ１００１にてＹＥＳ）、ジョブに必要な機能を特定し（Ｓ１００２）、機能を実現するＰＲを決定し（Ｓ１００３）、構成するコンフィグレーションデータを決定する（Ｓ１００４）。なお、本実施形態において、コンフィグレーションデータは、機能に対応するレジスタ空間の情報（もしくは機能の識別情報）を出力するための回路情報を含む必要は無い。続いて、ＣＰＵ１０１は、コンフィグレーションデータをＰＲへロードすることにより機能を再構成する（Ｓ１００８）。
【００７３】
更に、Ｓ１５０１にて、ＣＰＵ１０１は、機能に対応するレジスタ空間のベースアドレスをレジスタ群１４０４の対応するレジスタへセットする。本工程により、再構成された機能のレジスタ空間が図１３のアドレスマップ１３３０に示す場所に割り当てられる。図１３の例の場合、具体的には、Ｒｅｇ０、Ｒｅｇ１、Ｒｅｇ２、Ｒｅｇ３にはそれぞれ、０ｘ８０００４、０ｘ８０００５、０ｘ８００００、０ｘ８０００１がセットされる。
【００７４】
Ｓ１００６、Ｓ１００７は第一の実施形態と同じであるので説明を省略する。
【００７５】
以上、本実施形態においても、第一の実施形態と同様の効果を得ることができる。
【００７６】
＜第四の実施形態＞
第四の実施形態は、第三の実施形態と同様、ＣＰＵ１０１により各ＰＲのレジスタ空間をセットする形態である。本実施形態では、レジスタ空間の割り当てのために、ルックアップテーブル（ＬＵＴ）を用いる。なお、本実施形態において、第三の実施形態と同様、コンフィグレーションデータは、機能に対応するレジスタ空間の情報（もしくは機能の識別情報）を出力するための回路情報を含む必要は無い。
【００７７】
図１６は、本実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。ＦＰＧＡ１４０以外の構成は第一の実施形態と同様なので説明を省略する。図１６においてデコーダ１６００は、ＬＵＴ部１６１０、および特定値検出回路１６２０を有する。ＬＵＴ部１６１０は、Ａｄｄｒ［３１：１２］を入力とし、４ビットのセレクト信号Ｓｅｌｅｃｔ［３：０］を出力とする。特定値検出回路１６２０は、ＬＵＴ部１６１０の出力論理を設定するためのアクセスを検出する。例えば、ＬＵＴ部１６１０の出力論理の設定を０ｘ８０００＿８０００から１Ｋバイト分の空間内で行う場合、特定値検出回路１６２０は入力されるＡｄｄｒ［３１：１２］が０ｘ８０００８の場合に「１」を出力する論理回路を構成すれば良い。
【００７８】
図１７（ａ）は、本実施形態に係るＬＵＴ部１６１０の詳細を説明するための図である。ＳＲＡＭ１７０５は、２０ビットのアドレス入力に応じて４ビットのデータをＳｅｌｅｃｔ［３：０］として出力するＳＲＡＭであり、ＬＵＴ機能を実現する。ここで出力される４ビットのＳｅｌｅｃｔ信号により、いずれの機能が選択されているかを示す。ＦＳＭ１７０３は、特定値検出回路１６２０が出力するＳｅｌｅｃｔ信号が有効（「１」）、かつ、Ｗｒｉｔｅ信号またはＲｅａｄ信号のアサートを受けた場合に、レジスタ群１７１０にライトまたはリードの指示を伝えるとともに、Ａｃｋ信号の返信制御を行う。
【００７９】
レジスタ群１７１０は、ＬＵＴの出力論理を設定するモードを示す１ビットのＳＲＡＭ設定モードレジスタ１７１１と、ＳＲＡＭ設定モード時にＳＲＡＭのライトアドレスを示す２０ビットのＳＲＡＭアドレスレジスタ１７１２を含む。それらは例えば、図１７（ｂ）のアドレスマップに示すようにＬＵＴ設定空間内に配置される。さらにレジスタ群１７１０は、ＣＰＵ１０１が同設定空間に配置されるＳＲＡＭポートアドレスにライトアクセスを行った場合に、ライトイネーブル信号ｗｅを生成するｗｅ信号生成部１７１３を有する。以上の構成により、ＣＰＵ１０１は、ＳＲＡＭ１７０５の任意のアドレスに任意のデータを設定することが可能となる。
【００８０】
［ＳＲＡＭ設定処理］
ＳＲＡＭ設定処理の手順を、図１７（ｃ）のフローチャートを用いて説明する。図１７（ｃ）のフローチャートは、ＣＰＵ１０１により実行される。
【００８１】
Ｓ１７０１にて、ＣＰＵ１０１は、ＳＲＡＭ設定モードレジスタ１７１１に「１」をセットする。更に、ＣＰＵ１０１は、セレクタ１７０６にＳＲＡＭアドレスレジスタ１７１２の値をＳＲＡＭ１７０５の入力として選択させる。
【００８２】
Ｓ１７０２にて、ＣＰＵ１０１は、ＳＲＡＭアドレスレジスタ１７１２に、設定したいＳＲＡＭ１７０５のアドレスをセットする。
【００８３】
Ｓ１７０３にて、ＣＰＵ１０１は、ＳＲＡＭデータポートアドレスに、設定したいデータをライトする。これにより、ｗｅ信号生成部１７１３は、ライト信号のパルスを発生させる。その際、ＳＲＡＭ１７０５のＤ入力へはＤａｔａ［３：０］の４ビットが入力されるため、Ｓ１７０２でセットしたＳＲＡＭ１７０５のアドレスにそのデータが書き込まれる。
【００８４】
Ｓ１７０４にて、ＣＰＵ１０１は、続けて他のデータをＳＲＡＭ１７０５へライトするか否かを判定する。他のデータをライトする場合は（Ｓ１７０４にてＹＥＳ）Ｓ１７０２へ戻り、他のデータをライトしない場合は（Ｓ１７０４にてＮＯ）Ｓ１７０５へ進む。
【００８５】
Ｓ１７０５にて、ＣＰＵ１０１は、ＳＲＡＭ設定モードレジスタ１７１１をクリアする。更に、ＣＰＵ１０１は、ＰＲ０〜ＰＲ３をセレクトするためのデコード機能を有効にする。そして、本処理フローを終了する。
【００８６】
図１７（ｄ）は、ＰＲ０〜ＰＲ３において機能Ｅ、機能Ｆ、機能Ａ、機能Ｂが構成されている場合のＳＲＡＭ１７０５へ設定すべき値を示す。図１７（ｄ）の４ビットにおいて、下位ビットから順に、ＰＲ０、ＰＲ１、ＰＲ２、ＰＲ３に対応している。例えば、「０１００」の場合ＰＲ２がセレクトされることを示す。
【００８７】
［処理フロー］
図１８は、本実施形態に係る画像処理装置１００のジョブ実行処理制御を表すフローチャートである。図１８のフローチャートは、ＣＰＵ１０１により実行される。
【００８８】
第三の実施形態では、図１５のＳ１５０１でＣＰＵ１０１がベースアドレス保持部１３１０への設定を行うのに対し、第四の実施形態では図１８のＳ１８０１でＬＵＴ部１６１０の設定を行う点が差異となる。図１８のＳ１８０１におけるＬＵＴ部１６１０への設定処理は、図１７（ｃ）で示した手順で行われる。
【００８９】
以上、本実施形態に係る構成においても第三の実施形態と同様の効果を得ることができ、さら、第三の実施形態に比べデコーダにおける処理負荷を抑えることができる。
【００９０】
＜第五の実施形態＞
第五の実施形態は、コンフィグレーションデータの誤りまたはレジスタ空間の誤設定を検出する手段を備える実施形態である。例えば、第一の実施形態の図６においてＰＲ０に構成された機能Ｅのコンフィグレーションデータに誤りが有り、ＰＲ０＿Ｂａｓｅとして「０ｘ８０００４」ではなく「０ｘ８０００５」が出力されたとする。その場合、部分再構成部２０１に構成された機能ＦのＰＲ１＿Ｂａｓｅと重複する。その結果、ＣＰＵ１０１が機能Ｆのレジスタ空間にアクセスした場合にＳｅｌｅｃｔ０とＳｅｌｅｃｔ１が共にアサートされシステムがハングアップする恐れがある。そのようなエラーが発生した場合、原因の特定が難しいのでコンフィグレーションデータの誤り、または、レジスタ空間の誤設定を検出できることが望ましい。本実施形態ではこの課題を解決する。
【００９１】
図１９は、本実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。ＦＰＧＡ１４０以外の構成は第一の実施形態と同様なので説明を省略する。図１９において、第一の実施形態（図６（ａ））との差分は、ＦＰＧＡ１４０が重複検出部１９０１を備える点である。重複検出部１９０１は、各ＰＲから出力されるＰＲ０＿Ｂａｓｅ、ＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅを入力として、これらの信号において同じ値がある場合には、Ｅｒｒｏｒ信号を出力する。Ｅｒｒｏｒ信号は、割込み検出回路（不図示）を介してＣＰＵ１０１へ通知される。なお、重複検出部１９０１は、デコーダ６０１と同様、電源がオンとなった際にコンフィグコントローラ１３０により回路が構成され、以後は再構成が行われないスタティック領域に属する。
【００９２】
本実施形態において、第一の実施形態と同様、コンフィグレーションデータは、機能に対応するレジスタ空間上のアドレスを出力するＢａｓｅ出力部の回路情報を含む。もしくは、第二の実施形態と同様、識別情報を出力する回路情報を含むようにしてもよい。
【００９３】
図２０は、本実施形態に係る重複検出部１９０１の詳細を説明するための図である。図２０において、一致検出回路２００１〜２００６は、図７に示した一致検出回路６１０と同一の論理構成を有する回路である。一致検出回路２００１〜２００６は、ＰＲ０＿Ｂａｓｅ、ＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅの中いずれかの２組が等しい場合にいずれかの一致検出回路が「１」を出力するように構成されている。一致検出回路２００１〜２００６の出力は、ＯＲ２０１０により論理和が求められ、Ｅｒｒｏｒ信号として出力される。つまり、一致検出回路２００１〜２００６およびＯＲ２０１０により、ＰＲ０＿Ｂａｓｅ、ＰＲ１＿Ｂａｓｅ、ＰＲ２＿Ｂａｓｅ、ＰＲ３＿Ｂａｓｅの中いずれかが等しい場合、Ｅｒｒｏｒ信号が出力される。
【００９４】
Ｅｒｒｏｒ信号が出力された場合、例えば、ＣＰＵ１０１は、部分再構成部を再構成するように制御しても良い。また、本実施形態では、重複の検出を行うのみであるが、例えば、どの部分再構成部間で重複が発生したかを検出するような構成であってもよい。
【００９５】
本実施形態により、コンフィグレーションデータの誤り、または、レジスタ空間の誤設定を検出可能となる。
【００９６】
＜第六の実施形態＞
第六の実施形態は、ＣＰＵ１０１が、各ＰＲのいずれにも構成されていない機能に対応するレジスタ空間へアクセスしたとしても、Ａｃｋ信号が返送される手段を備える実施形態である。例えば、第一の実施形態の図６において、機能Ｃのレジスタ空間に含まれるアドレス０ｘ８０００２０００にＣＰＵ１０１がアクセスした場合、何れのＰＲにもアクセスが発生しないため、Ａｃｋ信号がＣＰＵ１０１へ返らずシステムがハングアップする。そのようなエラーの場合、原因の特定が難しいため、ＣＰＵ１０１がＰＲ０〜ＰＲ３のいずれにも構成されていない機能に対応するレジスタ空間へアクセスしてもＡｃｋ信号を返送されることが望ましい。本実施形態では、この課題を解決する。
【００９７】
なお、本実施形態において、第一の実施形態と同様、コンフィグレーションデータは、機能に対応するレジスタ空間上のアドレスを出力するＢａｓｅ出力部の回路情報を含む。もしくは、第二の実施形態と同様、識別情報を出力する回路情報を含むようにしてもよい。
【００９８】
図２１は、第六の実施形態に係るＦＰＧＡ１４０の詳細を説明するための図である。ＦＰＧＡ１４０以外の構成は第一の実施形態と同様なので説明を省略する。図２１において第一の実施形態との差分は、ＦＰＧＡ１４０が疑似Ａｃｋ生成部２１０１を備える点である。疑似Ａｃｋ生成部２１０１は、一致検出回路６１０、６１１、６１２、６１３が出力するＳｅｌｅｃｔ信号、Ａｄｄｒ［３１：１２］、および信号群６２０を入力として、疑似Ａｃｋ信号を生成する。Ａｃｋ生成部２１０で生成された疑似Ａｃｋ信号は、ＯＲ６２２で論理和が求められ、ＣＰＵ１０１へ通知される。
【００９９】
図２２は、疑似Ａｃｋ生成部２１０１の詳細を説明するための図である。図２２において、論理回路２２０１は、Ａｄｄｒ［３１：１２］が０ｘ８００００〜０ｘ８０００６の範囲に含まれる場合に「１」を出力する論理回路である。ＡＮＤ素子２２０２は、Ｓｅｌｅｃｔ０〜Ｓｅｌｅｃｔ３の全信号がアサートされておらず、かつ、論理回路２２０１が「１」を出力した場合に、「１」を出力する。即ち、ＡＮＤ素子２２０２の出力は、ＣＰＵ１０１がアドレスマップ６３０のＲｅｓｅｒｖｅｄ領域にアクセスした場合に「１」となる。ＦＳＭ２２０３は、ＡＮＤ素子２２０２の出力が「１」であり、かつ、信号群６２０のＷｒｉｔｅ信号またはＲｅａｄ信号が「１」である場合に疑似Ａｃｋ信号を出力する。出力タイミングは、第一の実施形態にて述べた図９のタイミングチャートと同様である。
【０１００】
以上、ＰＲに構成されていない機能のアドレス空間へ間違ってアクセスした場合でも、Ａｃｋ信号が返される。そのため、本実施形態により、間違ったアクセスが生じた場合でもシステムがハングすることを防ぐことができる。
【０１０１】
＜第七の実施形態＞
第一〜第六の実施形態においては、ある機能の論理回路がどのＰＲに再構成されても、その論理回路を制御するためのレジスタ空間は変わらないようにする手段が施されていた。つまり、第一〜第六の実施形態では、機能ごとに利用可能なレジスタ空間が固定されていた。
【０１０２】
第七の実施形態では、ある機能の論理回路が部分再構成されるＰＲに応じて、そのレジスタ空間を変化させる。従って、プログラムが、そのレジスタ空間の変化に合わせてレジスタアクセスのためのアドレスを変える形態について説明する。
【０１０３】
図２３は、第七の実施形態に係るＦＰＧＡ１４０の詳細を説明する図である。ＦＰＧＡ１４０以外の構成は第一の実施形態と同様なので説明を省略する。なお、本実施形態では、各機能のコンフィグレーションデータは、レジスタ空間に関する情報を出力するための回路情報を含む必要はない。
【０１０４】
第一の実施形態との差分として、第七の実施形態のデコーダ２３０１では、Ａｄｄｒ［３１：１２］の値により一意にＳｅｌｅｃｔ０からＳｅｌｅｃｔ３の出力が決定する点である。つまり、Ａｄｄｒ［３１：１２］が０ｘ８００００の場合はＳｅｌｅｃｔ０を出力する。同様に、Ａｄｄｒ［３１：１２］が０ｘ８０００１の場合はＳｅｌｅｃｔ１を出力し、０ｘ８０００２の場合はＳｅｌｅｃｔ２を出力し、０ｘ８００３の場合はＳｅｌｅｃｔ３を出力する。つまり、各ＰＲのレジスタ空間は構成される機能によらず、ＰＲごとに利用可能なレジスタ空間が固定されている。言い換えると、同じ機能であっても構成されるＰＲに依存してその機能を制御するためのレジスタ空間が変更される。
【０１０５】
［処理フロー］
図２４は、本実施形態に係る画像処理装置１００のジョブ実行処理制御を表すフローチャートである。図２４のフローチャートは、ＣＰＵ１０１により実行される。
【０１０６】
ジョブを受信すると（Ｓ１００１にてＹＥＳ）、ＣＰＵ１０１は、ジョブに必要な機能として例えば機能Ａを特定し（Ｓ１００２）、機能を構成するＰＲを例えばＰＲ２として決定する（Ｓ１００３）。さらに、ＣＰＵ１０１は、構成するコンフィグレーションデータを決定する（Ｓ１００４）。この際、機能を再構成するＰＲに対応するコンフィグレーションデータが決定される。なお、本実施形態において、コンフィグレーションデータは、機能に対応するレジスタ空間の情報を出力する回路情報を含む必要は無い。
【０１０７】
続いて、Ｓ２４０１にて、ＣＰＵ１０１は、対象としているＰＲに関連付けられているベースアドレスを取得する。例えば、機能を実現するＰＲがＰＲ２である場合、ベースアドレスは、ＰＲ２に対応する「０ｘ８０００＿２０００」となる。本実施形態において、基準となるベースアドレスは、ＰＲに応じて予め定義されているものとする。
【０１０８】
Ｓ２４０２にて、ＣＰＵ１０１は、ベースアドレスを引数としてサブプログラムＡを実行する。サブプログラムＡは、機能Ａが構成されたＰＲの制御レジスタにアクセスすることにより、既定の処理を実行させる制御プログラムである。サブプログラムＡについても、ＣＰＵ１０１により実行される。
【０１０９】
Ｓ２４０２におけるサブプログラムＡの処理フローを図２５（ａ）に示す。ここで、機能Ａの論理回路は、例えばＪＰＥＧ圧縮処理であるとする。この場合、機能Ａの論理回路に関し、例えば以下のレジスタを含む。即ち、入力データの格納アドレスを示す入力アドレスレジスタ、圧縮データ出力先アドレスを示す出力アドレスレジスタ、画像サイズを示す幅レジスタ、高さレジスタ、任意のデータをライトすることにより処理を開始させる起動レジスタである。サブプログラムＡは、これらのレジスタのアドレスをベースアドレスからのオフセットとして認識している。ベースアドレスは、上位プログラム（ここでは、図２４に示すフローチャートのプログラム）によって指定されるため、このベースアドレスとオフセットの値を用いることで、機能Ａが何れのＰＲに構成されても同じサブプログラムＡを使用できる。オフセットの値は予め定義されている。なお、オフセットは、図２５（ｂ）の値に限定するものではなく、機能に応じて決定することができる。
【０１１０】
Ｓ２５０１にて、ＣＰＵ１０１は、引数のベースアドレスを変数ＦｕｎｃＡ＿Ｂａｓｅとして取得する。以降、レジスタの絶対アドレスを求める処理とレジスタにアクセスする処理を組とするステップが続く。
【０１１１】
Ｓ２５０２にて、ＣＰＵ１０１は、ＦｕｎｃＡ＿Ｂａｓｅと入力アドレスレジスタのオフセット（０ｘ１００）とを加算することにより、入力アドレスレジスタの絶対アドレスを計算する。ここで示す例の場合、入力アドレスレジスタの絶対アドレスは、０ｘ８０００＿２１００となる。Ｓ２５０３にて、ＣＰＵ１０１は、Ｓ２５０２で得られた絶対アドレスに入力データの格納アドレスをライトする。
【０１１２】
Ｓ２５０４にて、ＣＰＵ１０１は、ＦｕｎｃＡ＿Ｂａｓｅと出力アドレスレジスタのオフセット（０ｘ２００）を加算することにより、出力アドレスレジスタの絶対アドレスを計算する。ここで示す例の場合、出力アドレスレジスタの絶対アドレスは、０ｘ８０００＿２２００となる。Ｓ２５０５にて、ＣＰＵ１０１は、Ｓ２５０４で得られた絶対アドレスに圧縮データの出力先アドレスをライトする。
【０１１３】
Ｓ２５０６にて、ＣＰＵ１０１は、ＦｕｎｃＡ＿Ｂａｓｅと幅レジスタのオフセット（０ｘ３００）を加算することにより、幅レジスタの絶対アドレスを計算する。ここで示す例の場合、幅レジスタの絶対アドレスは、０ｘ８０００＿２３００となる。Ｓ２５０７にて、ＣＰＵ１０１は、Ｓ２５０６で得られた絶対アドレスに画像幅をライトする。
【０１１４】
Ｓ２５０８にて、ＣＰＵ１０１は、ＦｕｎｃＡ＿Ｂａｓｅと高さレジスタのオフセット（０ｘ４００）を加算することにより、高さレジスタの絶対アドレスを計算する。ここで示す例の場合、高さレジスタの絶対アドレスは、０ｘ８０００＿２４００となる。Ｓ２５０９にて、ＣＰＵ１０１は、Ｓ２５０８で得られた絶対アドレスに画像高さをライトする。
【０１１５】
Ｓ２５１０にて、ＣＰＵ１０１は、ＦｕｎｃＡ＿Ｂａｓｅと起動レジスタのオフセット（０ｘ５００）を加算することにより、起動レジスタの絶対アドレスを計算する。ここで示す例の場合、起動レジスタの絶対アドレスは、０ｘ８０００＿２５００となる。Ｓ２５１１にて、Ｓ２５１０で得られた起動アドレスに任意の値をライトする。
【０１１６】
Ｓ２５１１にて、ＣＰＵ１０１は、圧縮処理の終了を待ち、処理が終了したか否かを判定する。処理が終了した場合（Ｓ２５１２にてＹＥＳ）ＣＰＵ１０１はサブプログラムＡを終了し、上位プログラムへリターンする（図２４のＳ１００７へ進む）。
【０１１７】
Ｓ１００７は第一の実施形態と同じであるため、説明を省略する。
【０１１８】
以上、本実施形態に示す構成においても、第一の実施形態と同様の効果を得ることができる。
【符号の説明】
【０１１９】
１０１…ＣＰＵ、１１０…メモリコントローラ、１３０…コンフィグコントローラ、１４０…ＦＰＧＡ、１５０…コンフィグレーション用ＲＯＭ、２００…部分再構成部 
【図１】
0006516489.tif 000002
【図２】
0006516489.tif 000003
【図３】
0006516489.tif 000004
【図４】
0006516489.tif 000005
【図５】
0006516489.tif 000006
【図６】
0006516489.tif 000007
【図７】
0006516489.tif 000008
【図８】
0006516489.tif 000009
【図９】
0006516489.tif 000010
【図１０】
0006516489.tif 000011
【図１１】
0006516489.tif 000012
【図１２】
0006516489.tif 000013
【図１３】
0006516489.tif 000014
【図１４】
0006516489.tif 000015
【図１５】
0006516489.tif 000016
【図１６】
0006516489.tif 000017
【図１７】
0006516489.tif 000018
【図１８】
0006516489.tif 000019
【図１９】
0006516489.tif 000020
【図２０】
0006516489.tif 000021
【図２１】
0006516489.tif 000022
【図２２】
0006516489.tif 000023
【図２３】
0006516489.tif 000024
【図２４】
0006516489.tif 000025
【図２５】
0006516489.tif 000026