(57)【要約】      （修正有）【課題】FPGAを2つ以上のCPUで共用する場合、FPGAのコンフィギュレーションを制御できないマスター以外のCPUにおいて、ジョブ処理時にFPGAを使用した処理を適切に行う。【解決手段】マスター以外のCPUは、ジョブを実行する場合に、ソフト処理を実行するか、FPGAを使用したハード処理を実行するか、判断の結果に基づき切り替えを行う。先行してソフト処理を実行し、マスターCPUからFPGA使用可能である旨の通知を受けたら、FPGAによる高速な処理に切り替えるか又はソフト処理による残りの実行時間から切り替えの判断を行う。【選択図】図６Ａ
2016143369.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
処理の内容が書き換え可能な処理部と、
前記処理部に接続される第１の制御部と、
前記処理部に接続される第２の制御部とを有し、
前記第１の制御部が前記処理部のコンフィギュレーションを制御する手段と、
前記第１の制御部から前記第２の制御部に前記処理部のコンフィギュレーション完了を通知する第１の通知手段と、
前記第１の制御部から前記第２の制御部にジョブ実行依頼を通知する第２の通知手段と、
前記第２の制御部はソフト制御によりジョブを実行するソフト処理手段と、
前記第２の制御部は前記処理部を使用しジョブを実行するハード処理手段と、
前記第２の制御部は、前記ソフト処理手段によりジョブを実行するか、前記ハード処理手段によりジョブを実行するか判断する判断手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第２の制御部は、前記ジョブ実行依頼を受信すると、前記ソフト処理手段により前記ソフト制御によりジョブを実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判断手段は、前記第１の制御部から前記コンフィギュレーション完了の通知を受信した場合に、前記ハード処理手段によりジョブを実行すると判断することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の制御部は、前記ソフト処理手段によるジョブの実行中に前記第１の制御部から前記コンフィギュレーション完了の通知を受信した場合に、当該実行中の前記ソフト処理手段によるジョブの実行を中止、前記ハード処理手段により前記ジョブを実行し直すことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
画像処理装置であって、
処理の内容が書き換え可能な処理部と、
前記処理部に接続される第１の制御部と、
前記処理部に接続される第２の制御部とを有し、
前記第１の制御部が前記処理部のコンフィギュレーションを制御する手段と、
前記第１の制御部から前記第２の制御部に前記処理部のコンフィギュレーション完了を通知する第１の通知手段と、
前記第１の制御部から前記第２の制御部にジョブ実行依頼を通知する第２の通知手段と、
前記第２の制御部はソフト制御によりジョブを実行するソフト処理手段と、
前記第２の制御部は前記処理部を使用しジョブを実行するハード処理手段と、
前記第２の制御部は、前記ソフト処理手段によりジョブを実行するか、前記ハード処理手段によりジョブを実行するか判断する判断手段と、
前記第２の制御部は、前記コンフィギュレーション完了の通知を受信した場合に、前記ソフト処理手段を継続しジョブを実行した場合と、前記ハード処理手段に切り替えジョブを実行した場合とで早くジョブ実行が完了する方を判定する判定手段とを有し、
前記判断手段は、前記判定手段の判定結果に従い、前記ソフト処理手段によるジョブを継続するか、前記ハード処理手段にジョブを実行させるか判断することを特徴とする画像処理装置。
【請求項６】
前記第２の制御部は、第1の制御部からジョブ実行依頼を受信すると、タイマーをスタートさせ、コンフィギュレーション完了通知を受信すると、タイマーをストップさせ、
前記判定手段は、ソフト処理時間と前記タイマーの値からソフト処理の残り時間を算出し、ソフト処理の残り時間とハード処理時間とを比較することにより、ソフト処理手段とハード処理手段とのどちらが早くジョブ実行を完了するか判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
画像処理装置であって、
処理の内容を書き換え可能な処理部と、
前記処理部に接続される第１の制御部と、
前記処理部に接続される第２の制御部と、
前記第１の制御部が前記処理部のコンフィギュレーションを制御する手段と、
前記第１の制御部から前記第2の制御部に前記処理部のコンフィギュレーション完了を通知する第１の通知手段と、
前記第１の制御部から前記第2の制御部にジョブ実行依頼を通知する第２の通知手段と、
前記第２の制御部はソフト制御によりジョブを実行するソフト処理手段と、
前記第２の制御部は前記処理部を使用しジョブを実行するハード処理手段と、
前記第２の制御部は、前記ソフト処理手段によりジョブを実行するか、前記ハード処理手段によりジョブを実行するか判断する判断手段と、
前記第１の制御部は、前記第２の制御部がジョブを前記ソフト処理手段により実行するか、前記ハード処理手段により実行するかを判定する判定手段を有し、
前記第２の通知手段は、前記第１の制御部から前記第２の制御部に前記判定手段の判定結果を含めジョブ実行依頼を通知し、
前記判断手段は、前記第２の制御部は前記ジョブ実行依頼で受信したジョブを前記判定結果に応じ前記ソフト処理手段によりジョブを実行するか前記ハード処理手段によりジョブを実行するかを判断する
ことを特徴とする画像処理装置。
【請求項８】
前記判定手段は、前記ハード処理手段によりジョブを実行した場合の時間と、前記第２の制御部が前記ソフト処理手段によるジョブを実行した場合の時間から判定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記ハード処理手段によりジョブを実行した場合の時間は、前記処理部が処理可能となる時間を示す解放時間とハード処理時間に基づくものであることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
処理の内容を書き換え可能な処理部と、
前記処理部に接続される第１の制御部と、
前記処理部に接続される第２の制御部とを有する、
画像処理装置の制御方法であって、
前記第１の制御部が、前記処理部のコンフィギュレーションを制御する制御工程と、
前記第１の制御部から前記第２の制御部に前記処理部のコンフィギュレーション完了を通知する第１の通知工程と、
前記第１の制御部から前記第２の制御部にジョブ実行依頼を通知する第２の通知工程と、
前記第２の制御部が、ソフト制御によりジョブを実行するソフト処理工程と、
前記第２の制御部が、前記処理部を使用しジョブを実行するハード処理工程と、
前記第２の制御部が、前記ソフト処理工程におけるジョブを実行するか、前記ハード処理工程におけるジョブを実行するか判断する判断工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１１】
請求項１の画像処理装置の各手段をコンピュータの実行により実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブル処理部を備えた画像処理装置に関する。
【背景技術】
【０００２】
FPGA（Field Programmable Gate Array）を搭載した様々な装置が提案されている。装置内に複数個存在するCPUモジュール毎にFPGAを1つずつ搭載するようなシステム構成が提案されている（特許文献１）。このようなシステム構成においては、高性能FPGAを適用した場合、FPGAが多数必要となりコストが高くなるという懸念がある。そこで、CPUが接続可能な高速ポート（例えばPCI Express）を複数搭載したFPGAを用いて、1つのFPGAを２つ以上のCPUから共用するようなシステム構成が考えられている（以下「FPGA共用構成」という。）。
また、FPGAのコンフィギュレーション方法として、従来のようにROMからコンフィギュレーションデータ（回路情報）をロードする方法とは異なる新しい手法が検討されている。それはCPUをマスターデバイスとして、HDDからコンフィギュレーションデータをFPGAにロードする手法である（以下「CPUマスター・コンフィギュレーション」という。）。CPUマスター・コンフィギュレーションを用いることで、ROMを書き換えることなく、HDD内のファイルを置き換えてロードするだけで、FPGAの処理内容をアップデートすることが可能になる。
【０００３】
ところが、FPGAを使用して特定の処理を行うためには、まずその特定の処理用のハードウェア回路をFPGA上で実現するためのコンフィギュレーションデータ（回路情報）の書き込みを、FPGAに対して行うことが、処理に先立って必要である。すなわちコンフィギュレーションデータの書き込みの完了を待たなければならず、FPGAを使用してジョブを実行するまでに時間がかかるという問題がある。そこで、1つのCPUと１つのFPGAを有し、ソフト制御によりジョブ処理を実行しつつ、ソフト制御によるジョブ処理の一部をFPGAによる高速処理に割り当て、ジョブ処理の実行を高速化する手法が提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010−049510号公報
【特許文献２】特開2013−098823号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的なFPGAデバイスの場合、CPUマスター・コンフィギュレーションに対応した高速ポートは１つのみである。つまりFPGA共用構成のように、２つ以上のCPUをFPGAに接続していても、コンフィギュレーションのマスターデバイスになるCPUは１つのみである。
このような場合、マスターデバイス以外のCPUはFPGAのコンフィギュレーションを実行できない。さらに、マスターデバイス以外のCPUはFPGAが使用可能なのかを判断することができない。つまり、マスターデバイス以外のCPUがFPGAを使用して処理を行う場合、処理を実行できないという課題がある。
本発明は上記課題を鑑み、FPGA共用構成において、マスターデバイス以外のCPUがFPGAを使用できるか否かを管理することなく、処理を最適に実行できるような手法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、画像処理装置であって、処理の内容を書き換え可能な処理部と、前記処理部に接続される第１の制御部と、前記処理部に接続される第２の制御部と、前記第１の制御部が前記処理部のコンフィギュレーションを制御する手段と、前記第１の制御部から前記第２の制御部に前記処理部のコンフィギュレーション完了を通知する第１の通知手段と、前記第１の制御部から前記第２の制御部にジョブ実行依頼を通知する第２の通知手段と、前記第２の制御部はソフト制御によりジョブを実行するソフト処理手段と、前記第２の制御部は前記処理部を使用しジョブを実行するハード処理手段と、前記第２の制御部は、前記ソフト処理手段によりジョブを実行するか、前記ハード処理手段によりジョブを実行するか判断する判断手段と、を有することを特徴とする。
【発明の効果】
【０００７】
処理部であるFPGAの共用構成において、第1の制御部であるマスターデバイス以外のCPU（第２の制御部）がFPGAを使用できるか否かを管理することなく、処理を最適に実行することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】画像処理システムの全体ブロック図
【図２】ジョブデータのデータ及びジョブ要求機能対応テーブル
【図３】プログラマブル処理部の内部ブロック図
【図４】制御部111の処理を示すフローチャート（実施例１）
【図５】制御部121の処理を示すフローチャート
【図６Ａ】連携処理を示すフローチャート（ハード処理）
【図６Ｂ】連携処理を示すフローチャート（ソフト処理）
【図７】ジョブ要求機能拡張対応テーブルの構成例（実施例２）
【図８】制御部121の処理を示すフローチャート
【図９】制御部121のジョブ実行完了判定処理を示すフローチャート
【図１０Ａ】連携処理を示すフローチャート（ハード処理）
【図１０Ｂ】連携処理を示すフローチャート（ソフト処理）
【図１１】拡張ジョブデータの構成例（実施例３）
【図１２】制御部111の処理を示すフローチャート
【図１３】制御部111の拡張ソフト処理実行判定処理を示すフローチャート
【図１４】制御部121の処理を示すフローチャート
【図１５Ａ】連携処理を示すフローチャート（ハード処理）
【図１５Ｂ】連携処理を示すフローチャート（ソフト処理）
【発明を実施するための形態】
【０００９】
実施例の説明においては、背景技術で述べた「CPUマスター・コンフィギュレーション」を、以下単に「コンフィギュレーション」という。
【実施例１】
【００１０】
＜システムの全体構成＞
図１は、本実施例における画像処理システム100の全体ブロック図である。
標準処理部110は、画像処理システム100の動作制御や、色空間変換・ハーフトーニングといった基本的な画像処理を実行する。標準処理部110は一般に、メインコントローラーやマザーボードなどと呼ばれる。以下、標準処理部110の内部ブロックを説明する。
【００１１】
［標準処理部110］
制御部111は、標準処理部110を制御するための中央処理装置である。本実施例においては、制御部111は、PCI Expressのポートを少なくとも１ポート内蔵する。
主記憶部112は、SDRAM（Synchronous Dynamic Random Access Memory）などにより構成される高速アクセス可能な記憶装置である。主記憶部112では、制御部111が処理する画像データや印刷データが展開されるほか、制御部111が実行するソフトウェアが展開される。
補助記憶部113は、ハードディスクやフラッシュメモリなどの不揮発性の記憶装置であり、画像データ、印刷データ、ソフトウェアなどが格納される。
【００１２】
外部IF部114は、Ethernet（登録商標）やUSBに対応したインターフェースであり、MACやPHY、コネクタを含んでいる。なお図１において、標準処理部110は外部IF部114を介して拡張処理部120のみと接続されているが、ネットワークサーバやクライアントPCといった外部情報端末と接続されても構わない。
操作表示部115は、表示機能と操作機能を兼ね揃えたタッチパネル等のデバイスであり、標準処理部110のユーザインターフェース部として機能する。なお、液晶ディスプレイとハードキーを組み合わせて操作表示部115を構成してもよい。
以上の構成がシステムバス116上に構成される。
【００１３】
［拡張処理部120］
拡張処理部120は標準処理部110とは異なる種類の処理の実行や、同種の処理でもより高速に実行できるように構成されている。拡張処理部120は一般に、アドオンハードウェアやアクセラレータなどと呼ばれる。以下、拡張処理部120の内部ブロックを説明する。
制御部121は、拡張処理部120を制御するための中央処理装置である。本実施例においては、制御部121は、PCI Expressのポートを少なくとも１ポート内蔵する。また、タイマー等の基本的な機能も有している。
主記憶部122は、SDRAMなどにより構成される高速アクセス可能な記憶装置である。主記憶部122では、制御部121が処理するデータが展開されるほか、制御部121が実行するソフトウェアが展開される。
【００１４】
補助記憶部123は、フラッシュメモリなどの不揮発性の記憶装置であり、画像データ、ソフトウェアなどが格納される。
外部IF部124は、Ethernet（登録商標）やUSBに対応したインターフェースであり、MACやPHY、コネクタを含んでいる。なお図１において、拡張処理部120は外部IF部124を介して標準処理部110のみと接続されているが、ネットワークサーバやクライアントPCといった外部情報端末と接続されても構わない。
IO_IF部125は、USB等の各種インターフェースであり、MACやPHY、コネクタを含んでいる。拡張処理部120にUSBメモリやビデオカメラ等を接続可能とし、画像処理を標準処理部110と外部IF部124を介さずに画像入力が可能なインターフェースである。
以上の構成がシステムバス127上に構成される。
【００１５】
［プログラマブル処理部300］
プログラマブル処理部300は、PCI Express信号およびFPGA制御信号で構成されるインターフェース130および131を介して、制御部111および制御部121と接続されるデバイスである。プログラマブル処理部300は処理の内容が書き換え可能なデバイスであれば限定はしないが、本実施例ではFPGAであることを想定して説明を進める。本実施例におけるプログラマブル処理部300は、PCI Expressのポートを少なくとも２ポート内蔵する。また、前記FPGA制御信号には、FPGAのコンフィギュレーション完了を示す信号であるInitDone信号や、コンフィギュレーションされたロジックの実行終了ステータスを示す信号であるProcDone_0／1信号が含まれている。詳細は図３で述べる。
作動記憶部126は、SDRAMなどにより構成される高速アクセス可能な記憶装置であり、プログラマブル処理部300と接続されワークメモリデバイスとして機能する。
以上が本実施例における画像処理システム100の全体ブロック図である。
【００１６】
＜ジョブデータ構成＞
図２(a)は、実施例１、２におけるジョブデータのデータ構成例である。ここではジョブデータのデータ構成に関してのみ説明し、ジョブデータに関わる処理フローの詳細説明は後述する。
ジョブデータはジョブ制御データと画像データから構成される。画像データは、当該ジョブで処理される対象の画像データである。RAWデータであってもよいし、JPEGやJBIG、TIFFなど一般的な画像データフォーマットであれば何でも構わない。また、本実施例において画像データは、処理するジョブの内容によっては存在しない場合もある。一例としては、拡張処理部120のIO_IF部125等から画像を受信する場合などである。
【００１７】
ジョブ制御データにはジョブID、ジョブ要求機能、ジョブ設定パラメータといった情報が含まれる。ジョブIDは、ジョブごとに固有の情報であり、ジョブIDを参照することでジョブデータを一意に特定することが可能である。ジョブ要求機能は、当該ジョブを実行するために必要な機能を示す情報である。ジョブ設定パラメータは、操作表示部115や外部情報端末においてジョブデータが生成される際に、ユーザによって選択もしくは任意入力された調整パラメータの値である。例えば、濃度値や、モノクロ／フルカラーの選択情報などである。
【００１８】
＜ジョブ要求機能対応テーブル＞
図２(b)は、ジョブ要求機能と、その機能に関連する情報を対応付けたジョブ要求機能対応テーブルの一例である。テーブルの１レコードには、ジョブ要求機能、サポートデバイス、FPGA利用、コンフィギュレーションデータの各情報が含まれる。
ジョブ要求機能の列には、当該画像処理システムで処理可能な機能が示されている。
サポートデバイスの列には、対応するジョブ要求機能を実行可能なデバイスが示されている。具体的には、標準処理部110又は拡張処理部120が書き込まれる。
FPGA利用の列には、対応するジョブ要求機能を実行する際に、FPGAを利用可能であるかが示されている。
コンフィギュレーションデータの列には、対応するジョブ要求機能を実行する際に必要なFPGAコンフィギュレーションデータを一意に特定できる情報が示されている。
標準処理部110は、図２(b)に示されるようなジョブ要求機能対応テーブル及びコンフィギュレーションデータを、主記憶部112もしくは補助記憶部113に格納している。制御部111は、ジョブデータ内のジョブ要求機能の情報と、ジョブ要求機能対応テーブルに基づいて、当該ジョブ要求機能を実現するためのデバイスやコンフィギュレーションデータを決定することができる。
【００１９】
＜プログラマブル処理部300構成＞
図３は、本実施例におけるプログラマブル処理部300の内部ブロック図である。前述したように、本実施例では、プログラマブル処理部300はFPGAであることを想定して説明を進める。
コンフィギュレーションコントローラ301は、ファブリック302のロジック（論理回路ブロックあるいはロジックセルなどと呼ばれる）構築や、PCI Express IP303、メモリコントローラ IP304のパラメータ設定を制御する。前述したFPGAのコンフィギュレーション完了（ロジックの構築の完了）を示す信号であるInitDone信号は、コンフィギュレーションコントローラ301が出力する。コンフィギュレーションコントローラ301は、制御部111によってコンフィギュレーションデータでのコンフィギュレーションが指示されると、そのコンフィギュレーションデータに基づいてファブリック302内のロジックを構築する。またコンフィギュレーションコントローラ301は、制御部111によってジョブの処理実行が指示されると、ファブリック302内のロジックを用いて、ジョブを処理する。
【００２０】
ファブリック302には、コンフィギュレーションデータに基づいたロジックが構築される。ProcDone_Register0及びProcDone_Register1は、コンフィギュレーションされたロジックの実行終了ステータスを示すレジスタである。前述したProcDone_0信号やProcDone_1信号は、これらのレジスタから生成される。本実施例におけるファブリック302には、ProcDone_Register0及びProcDone_Register1が実装されていることを想定して説明を行う。
PCI Express IP 303は、PCI ExpressのPHY等を含むプロトコルスタックである。本実施例におけるプログラマブル処理部300およびPCI Express IP 303は、少なくとも２ポート分のPCI Express接続を実現できる。図３のPCIe_0信号、PCIe_1信号は各ポートに接続されるPCI Expressの送受信信号およびクロック信号を示している。
メモリコントローラ IP304は、DDR規格等に対応したPHYやコントローラを含むメモリインターフェースである。図３のDRAM信号は、データ信号、アドレス信号、クロック信号等を示している。
【００２１】
＜実施例１の制御について＞
実施例１の制御を説明する上で、以下のように説明していく。
まず、図４を用いて、制御部111の処理フローを説明する。
次に、図５を用い、制御部121の処理フローを説明する。
そして、図６を用いて、制御部111、制御部121及びプログラマブル処理部300が図４及び図５のフローを実行し連携して動作した場合の処理フローについて説明する。実施例１のシステムは、全体として図６に示すフローにより実現される。
【００２２】
＜制御部111制御フロー＞
図４は、実施例１における制御部111の制御を示すフローチャートである。本フローは制御部111により実行される。本フローの説明において、制御部111と制御部121間での通信は、外部IF部114及び外部IF部124を介して実現され、制御部111とプログラマブル処理部300間での通信はインターフェース130を介して実現される。
【００２３】
（S101） 制御部111が、ジョブデータを受け付け、拡張処理部120で処理を行うかを判断する。
前記ジョブデータは、操作表示部115をユーザが操作することで、制御部111が実行するアプリケーションソフトにより生成・入力される。もしくは前記ジョブデータは、外部情報端末をユーザが操作することで生成され、ネットワーク経由で外部IF部114から入力される。
【００２４】
制御部111はジョブデータを受け付けると、当該ジョブデータのサポートデバイスが拡張処理部120であるかどうかを判断する。この判断は、図２(b)で説明したように、制御部111がジョブデータ内のジョブ要求機能の情報と、ジョブ要求機能対応テーブル内の「ジョブ要求機能」および「サポートデバイス」とを比較することで決定する。例えば、前記ジョブデータ内のジョブ要求機能が「拡張OCR機能」であった場合、サポートデバイスは「拡張処理部」となる。なお、前記ジョブデータ内のジョブ要求機能が「写真画像処理機能」や「データ送信機能」である場合は、サポートデバイスが標準処理部であるため、本フローは動作しない。
【００２５】
（S102）制御部111が、制御部121へ、S101で受け付けたジョブデータをジョブ実行依頼として送信する。
（S103）制御部111が、S102で制御部111から制御部121へ送信したジョブに対応するジョブ終了通知を制御部121から受信したかを確認する。
−−S103でジョブの終了通知をまだ受信していない場合は、S104に進む。
−−S103でジョブの終了通知を受信した場合は、処理を終了する。
【００２６】
（S104）制御部111が、コンフィギュレーション実行可能かを確認する。コンフィギュレーション実行可能かは、他のジョブを実行するためにプログラマブル処理部300が使用中かを確認する。例えば、図２(b)に示すジョブ要求機能が「写真画像処理機能」を実行中であり、プログラマブル処理部300にコンフィギュレーションデータである「PHOTO.config」が書き込まれている場合には、使用中と判断され、コンフィギュレーションを実行できない。
−−プログラマブル処理部300が使用されている場合には、S103に戻る。
−−プログラマブル処理部300が使用されていない場合には、S105に進む。
【００２７】
（S105）制御部111が、プログラマブル処理部300に対してコンフィギュレーションデータでのコンフィギュレーションを指示・実行する。このコンフィギュレーションに使用されるコンフィギュレーションデータは、制御部111がジョブデータ内のジョブ要求機能の情報と、ジョブ要求機能対応テーブル内の「ジョブ要求機能」とを用いて取得する。具体的には、制御部111が、ジョブデータ内のジョブ要求機能の情報が示すジョブ要求機能に基づき、ジョブ要求機能対応テーブルから、「サポートデバイス」が拡張処理部であるような「ジョブ要求機能」を探し出す。そして制御部111は、その「ジョブ要求機能」を含むレコードの「コンフィギュレーションデータ」によって示されるデータを、補助記憶部113に格納されたデータから取得する。
【００２８】
（S106）制御部111が、プログラマブル処理部300からコンフィギュレーション完了通知を受信するのを待つ。このコンフィギュレーション完了通知は、図３に示したInitDone信号であり、制御部111はInitDone信号がアサートされることでプログラマブル処理部300のコンフィギュレーションが完了したと判断する。
（S107）制御部111が、制御部121にコンフィギュレーション完了通知を送信し、S103に進む。
【００２９】
＜制御部121制御フロー＞
図５は、実施例１における制御部121の制御を示すフローチャートである。本フローは制御部121により実行される。本フローの説明において、制御部111と制御部121間での通信は、外部IF部114及び外部IF部124を介して実現され、制御部121とプログラマブル処理部300間での通信はインターフェース131を介して実現される。
【００３０】
（S201）制御部121が、制御部111からジョブ実行依頼として、ジョブデータを受信する。ジョブデータは図４のS102で制御部111が送信したジョブデータである。
（S202）制御部121が、S201で受信した前記ジョブデータに基づいて、ソフト制御によりジョブ処理を開始する。例えば、S201で受信したジョブデータのジョブ要求機能が「拡張OCR機能」であれば、ジョブデータに含まれる画像データに対し主記憶部122を使用しながらソフト制御によりジョブ処理を開始する。
【００３１】
（S203）制御部121が、S202で開始したソフト制御によるジョブ実行が完了したかを確認する。
−−S203でソフト制御によるジョブ実行が完了したと確認された場合は、S208に進み、制御部121が、ジョブ終了通知を制御部111に送信する。
−−S203でソフト制御によるジョブ実行が完了したと確認されていない場合は、S204に進む。
（S204）制御部121が、制御部111からコンフィギュレーション完了通知を受信したかを確認し、ソフト制御によりジョブを継続するか、ハード制御によりジョブを実行するか判断する。
−−S204でコンフィギュレーション完了通知を受信した場合は、S205に進む。
−−S204でコンフィギュレーション完了通知を受信しない場合は、S203に戻る。
【００３２】
（S205）制御部121が、S202で開始したソフト制御によるジョブの実行を中止する。
（S206）制御部121が、S201で受信した前記ジョブデータに基づいて、プログラマブル処理部300を使用したハード制御によりジョブ処理を実行し直す。すなわち、そのジョブデータは、コンフィギュレーションを完了したプログラマブル処理部300によって処理される。以下、プログラマブル処理部300を使用したこの制御のことを「ハード制御」と呼称する。
【００３３】
（S207）制御部121が、ハード制御によるジョブ処理が完了したかどうかを判断する。詳細には、プログラマブル処理部300から出力される終了ステータス信号であるProcDone_1信号の監視や、制御部121のソフトパラメータ管理により実現する。
（S208）制御部121が、ジョブ終了通知を制御部111に送信する。
【００３４】
＜連携フロー＞
図６は、実施例１において制御部111、制御部121及びプログラマブル処理部300が図４及び図５のフローを実行し連携して動作した場合の処理フローを示す図である。
図６(A)は、制御部121がソフト制御によるジョブ処理実行中に、高速処理可能なプログラマブル処理部300が使用可能になった場合のフローを示す図である。
図６(B)は、制御部121がソフト制御によるジョブ処理実行中に高速処理可能なプログラマブル処理部300が使用可能にならず、ソフト制御によるジョブ処理が完了した場合のフローを示す図である。
【００３５】
まず、図６(A)について説明する。
［制御部111］
（T101）制御部111はジョブデータを受信する（これは図４のS101に対応する。）。
（T102）制御部111はジョブ実行依頼として、T101で受信したジョブデータを制御部121に送信する（これは図４のS102に対応する。）。
→T112（制御部121）
（T103）制御部111はコンフィギュレーション実行可能か確認する。詳細には、制御部121からジョブ終了通知を受信する前に、コンフィギュレーション可能と判断している（これは図４のS104に対応する。）。
（T104）制御部111はプログラマブル処理部300に対して、コンフィギュレーションを指示・実行する（これは図４のS105に対応する。）。
→T108（プログラマブル処理部300）
（T105）    ←T109（プログラマブル処理部300）
制御部111はプログラマブル処理部300からコンフィギュレーション完了通知を受信する（これは図４のS106に対応する。）。
（T106）制御部111は制御部121にコンフィギュレーション完了通知を送信する（これは図４のS107に対応する。）。
→T114（制御部121）
（T107）    ←T118（制御部121）
制御部111は制御部121からジョブ終了通知を受信し終了する（これは図４のS103に対応する。）。
【００３６】
［プログラマブル処理部300］
（T108）    ←T104（制御部111）
プログラマブル処理部300（コンフィギュレーションコントローラ301）が、T104における制御部111からの指示を受け、コンフィギュレーションを実行する。
（T109）プログラマブル処理部300が制御部111に対して、コンフィギュレーション完了通知を送信する。前述したように、このコンフィギュレーション完了通知は、図３に示したInitDone信号である。コンフィギュレーションコントローラ301が、ファブリック302のコンフィギュレーションや初期化した後で、InitDone信号をアサートする。
→T105（制御部111）
（T110）    ←T116（制御部121）
プログラマブル処理部300が制御部121から処理実行指示を受け、処理を開始する。
（T111）プログラマブル処理部300が処理完了後に、制御部121に対して処理完了通知をする。この処理完了通知は、図３に示したProcDone_1信号である。プログラマブル処理部300の処理終了をトリガとして、ProcDone_1信号がアサートされる。
→T117 （制御部111）
【００３７】
［制御部121］
（T112）制御部121は制御部111からジョブ実行依頼としてジョブデータを受信する（これは図５のS201に対応する。）。
→T102（制御部111）
（T113）制御部121はT112で受信したジョブデータに基づいて、ソフト制御によりジョブ処理を開始する（これは図５のS202に対応する。）。
【００３８】
（T114）制御部121は、ソフト制御によるジョブ処理中に制御部111からコンフィギュレーション完了通知を受信する（これは図５のS204に対応する。）。
→T106（制御部111）
（T115）制御部121はT113で開始したソフト制御によるジョブの実行を中止する（これは図５のS205に対応する。）。
（T116）制御部121は受信したT112ジョブデータに基づいて、プログラマブル処理部300を使用したハード制御によりジョブ処理を最初から実行し直す。言い換えるとプログラマブル処理部300は、ソフト制御によるジョブ処理の途中結果を引き継がずに、新たにジョブ処理を実行する（これは図４のS206に対応する。）。
（T117）制御部121はプログラマブル処理部300から処理完了通知を受信し、処理が完了したことを検知する（これは図５のS207に対応する。）。
（T118）    ←T107（制御部111）
制御部121はジョブ終了通知を制御部111に送信する（これは図４のS208に対応する。）。
【００３９】
全体のフローを時間順に要約すると、まず、制御部111は、ジョブデータを受信し（T101)、制御部121にジョブデータを送信することによりジョブ実行依頼を行う（T102)。 
制御部121では、ジョブ実行依頼を受け（T112 ）、ジョブデータに基づきソフト制御によりジョブ処理を行う。
一方、並行して制御部111では、コンフィギュレーションが可能か判断を行い（T103 ）、可能である場合にプログラマブル処理部300に対して、コンフィギュレーションを指示する（T104）。
続いてプログラマブル処理部300において、制御部111からの指示に従い、コンフィギュレーションを実行し（T108）、コンフィギュレーションが完了したら、制御部111に対して、コンフィギュレーション完了通知を行う（T109）。
制御部111では、コンフィギュレーション完了通知を受け取ると（T105）、その完了通知を制御部121に送信する（T106）。
制御部121では、コンフィギュレーション完了通知を受け取ると（T114）、並行して行われていたソフト制御によるジョブ実行を中止し（T115）、ハード制御によるジョブを実行し直す（T116）。
プログラマブル処理部300は、制御部121から指示を受け処理を開始し（T110）、処理が完了すると制御部121に処理終了通知を通知する（T111）。
制御部121では、ハード制御による処理が完了したことを検知すると（T117）、制御部111に対して、ジョブ終了通知を送信する（T118）。
制御部111では、制御部121からのジョブ終了通知を受信し、このフローを終了する（T107）。
【００４０】
次に図６(B)について説明する。
図６(B)に記載されている各ステップのうち、図６(A)と差分のあるステップのみ説明する。また、図６(B)では、プログラマブル処理部300を使用したステップや、制御部111から制御部121へのコンフィギュレーション完了通知が削除されている。これは、プログラマブル処理部300が使用可能になる前に、制御部121においてジョブ処理が完了しているためである。
［制御部111］
（T201）制御部111はプログラマブル処理部300が使用可能にならないため、図６(A)のT104の処理に進めない状態である。詳細には、コンフィギュレーション実行可能になるのが早いか、制御部121からジョブ終了通知のどちらかの発生を待っている状態である（これは図４のS103及びS104に対応する。）。
この図６(B)では、コンフィギュレーション可能と判断される前に、制御部121からジョブ終了通知を受信している。このため、T107で、制御部111は、プログラマブル処理部300にコンフィギュレーション実行を指示せずに終了している（これは図４のS104に対応する。）。
【００４１】
［制御部121］
（T202）制御部121は、制御部111からのコンフィギュレーション完了通知を受信する前に、T113で開始したソフト制御によるジョブ実行を終了し、T118に進む（これは図５のS203に対応する。）。
以上説明したように、制御部121は、ジョブ実行依頼を受信すると、ソフト制御によりジョブ実行を開始する。制御部121はソフト制御によりジョブ実行中に高速処理可能なプログラマブル処理部300が使用可能になった場合には、ソフト制御によるジョブ実行を終了する。そして、プログラマブル処理部300を使用し高速にジョブの実行が可能なハード制御に切りかえることができる。また、制御部121は、先行してジョブをソフト制御により実行しているため、プログラマブル処理部300が使用可能にならない場合でも、ジョブ実行を遅いながらも完了できる。
よって、FPGA共用構成において、マスターデバイス以外のCPUがFPGAを使用できるか否かを管理することなく、処理を最適に実行することが可能となる。
【実施例２】
【００４２】
実施例１においては、制御部121が制御部111からコンフィギュレーション完了通知を受信した場合には、即座にソフト制御によるジョブの実行を中止していた。実施例２では、制御部121が制御部111からコンフィギュレーション完了通知を受信した場合に、実施例１のように、即座にソフト制御によるジョブの実行を中止するのではない。コンフィギュレーション完了通知を受信した場合に、ソフト制御を継続してジョブ実行した場合と、プログラマブル処理部300を使用してジョブを実行し直す場合とで、早くジョブ処理を完了する方を選択することを特徴としている。
【００４３】
＜ジョブ要求機能拡張対応テーブル＞
図７は、ジョブ要求機能と、その機能を制御部121においてハード制御によりジョブを実行した場合の処理時間と、ソフト制御によりジョブを実行した場合の処理時間の目安を示すジョブ要求機能拡張対応テーブルである。
ハード処理時間は、制御部121がハード制御によりジョブを実行した場合の処理完了までの時間を示すものである。ソフト処理時間は、制御部121がソフト制御によりジョブを実行した場合の処理完了までの時間を示すものである。ソフト処理時間については、制御部121のその他の処理状況により処理完了までの時間が変わる可能性があるため、上述したように、処理時間の「目安」としている。
ジョブ要求機能拡張対応テーブルは、主記憶部112若しくは補助記憶部113に格納している。
【００４４】
＜制御部111制御フロー＞
制御部111の処理フローは、図４のフローと同様であるが、S102で制御部121にジョブ実行依頼として送信するデータとして、図２に示すジョブデータの他に、図７に示すジョブ要求機能拡張対応テーブルも送信する。
その他の処理は全て図４のフローと同じである。
【００４５】
＜制御部121制御フロー＞
図８は、実施例２における制御部121の制御を示すフローチャートである。本フローは制御部121により実行される。ここでは、図５に示す実施例１の制御部121における制御フローとの差分のみ説明する。
（S301）制御部121が、制御部111からジョブ実行依頼として、図２(A)に示すジョブデータと図７に示すジョブ要求機能拡張対応テーブルを受信する。
（S302）制御部121が、制御部121内のタイマーをスタートする。
（S303）制御部121が、ソフト制御によるジョブ実行を継続した場合と、ハード制御によりジョブを実行しなおした場合のどちらがジョブ完了までの時間が早いかを判定する。判定方法は図９で後述する。
【００４６】
（S304）制御部121が、S303で判定した結果、
−−ハード制御によりジョブを実行しなおした方が早いと判定した場合はS205に進む。
−−ソフト制御によるジョブ実行を継続した方が早いと判定した場合はS305に進む。
（S305）制御部121が、S202で開始したソフト制御によるジョブ実行を継続する。
（S306）制御部121が、ソフト制御によるジョブの実行が完了するのを待つ。ソフト制御によるジョブの実行が完了すると、ステップS208に進む。
【００４７】
＜ジョブ実行完了判定処理フロー＞
図９は、図８のS303のジョブ実行完了判定フローの詳細な処理フローである。本フローは制御部121により実行される。
本フローでは、S301で受信したジョブ要求機能拡張対応テーブルと、S302でスタートしたタイマーの値を参照する。
（S401）制御部121が、S302でスタートしたタイマーをストップする。
（S402）制御部121が、ソフト制御を継続した場合にジョブの実行完了までにあと何秒かかるかの残ソフト処理時間を算出する。算出方法は、ジョブ要求機能拡張対応テーブルのソフト処理時間からS401でストップしたタイマーの値を減算して求める。
【００４８】
（S403）制御部121が、S402で算出した残ソフト処理時間とジョブ要求機能拡張対応テーブルのハード処理時間を比較する。
−−残ソフト処理時間の方が長い場合はS404に進み、制御部121が、ハード制御によりジョブ実行し直す方が早くジョブ処理を完了すると判定する。
−−残ソフト処理時間の方が短い場合はS405に進み、制御部121が、ソフト制御を継続した方が早くジョブ処理を完了すると判定する。
【００４９】
＜連携フロー＞
図10は、実施例２において制御部111、制御部121及びプログラマブル処理部300が図４及び図８のフローを実行し連携して動作した場合の処理フローを示す図である。
図10(A)は、制御部121がソフト制御によるジョブ処理実行中にコンフィギュレーション完了通知を受信した場合に、ハード制御によりジョブを実行しなおした方が、ジョブ実行完了が早いと判定した場合のフローを示す図である。
図10(B)は、制御部121がソフト制御によるジョブ処理実行中にコンフィギュレーション完了通知を受信した場合に、ソフト制御によるジョブ実行を継続した方が、ジョブ実行完了が早いと判定した場合のフローを示す図である。
【００５０】
／ハード制御によるジョブ実行／
まず、図10(A)について説明する。
図10(A)に記載されている各ステップのうち、図６(B)と差分のあるステップのみ説明する。
［制御部111］
（T301）制御部111はジョブ実行依頼として、T101で受信したジョブデータとジョブ要求機能拡張対応テーブルを制御部121に送信する（これは図４のS102に対応する。）。
→T302（制御部121）
【００５１】
［制御部121］
（T302）    ←T301（制御部111）
制御部121は制御部111からジョブ実行依頼として、ジョブデータとジョブ要求機能拡張対応テーブルを受信する（これは図８のS301に対応する。）。
（T303）制御部121はタイマーをスタートする（これは図８のS302に対応する。）。
（T304）制御部121はハード制御によりジョブを実行しなおした方が、ジョブ実行完了が早いと判定する。そして、T115以降でハード制御によるジョブ実行フローを実行する（これは図８のS303の判定で、その詳細を示す図９におけるS404に判定したことに対応する。）。
【００５２】
／ソフト制御によるジョブ実行／
次に、図10(B)について説明する。
図10(B)に記載されている各ステップのうち、図10(B)と差分のあるステップのみ説明する。
［制御部121］
（T401）制御部121はソフト制御によるジョブ実行を継続した方が、ジョブ実行完了が早いと判定する（これは図８のS303の判定で、その詳細を示す図９におけるS405に判定したことに対応する。）。
（T402）制御部121はT113で開始したソフト制御によるジョブ実行を継続する（これは図８のS305に対応する。）。
（T403）制御部121はソフト制御によるジョブの実行が完了するのを待つ（これは図８のS306に対応する。）。
【００５３】
以上説明したように、制御部121が制御部111からコンフィギュレーション完了通知を受信した場合に、ソフト制御を継続してジョブ実行した場合と、ハード制御によりジョブ実行をやり直す場合で、早くジョブ処理を完了する方を選択可能となる。
【実施例３】
【００５４】
実施例１においては、制御部121がジョブ実行依頼を受信するとソフト制御によるジョブの実行を先行して開始していた。また、実施例２では、制御部121によりソフト制御によるジョブの実行を開始した後、コンフィギュレーション完了通知を受信した時点で、ソフト制御によりジョブ実行を継続するか、ハード制御によりジョブ実行をするかを判定していた。実施例３では、制御部111でソフト制御によりジョブ実行をするか、ハード制御によりジョブ実行をするかを最初に判定する。制御部111の判定結果に従い、制御部121はソフト制御によりジョブを実行するか、ハード制御によりジョブを実行するかを制御する。
【００５５】
＜拡張ジョブデータ＞
図11は、図２(a)に示すジョブデータを拡張した拡張ジョブデータである。拡張しているのは、ジョブ制御データ内の拡張制御フラグである。拡張制御フラグは、制御部121がソフト制御によりジョブ実行をするか、ハード制御によりジョブ実行をするかを指示するフラグである。
【００５６】
＜制御部111制御フロー＞
図12は、実施例３における制御部111の制御を示すフローチャートである。本フローは制御部111により実行される。ここでは、図４に示す実施例１の制御部111における制御フローとの差分のみ説明する。
（S501）制御部111が、S101で受信したジョブデータを制御部121で実行する場合に、制御部121のソフト制御によりジョブを実行するか、ハード制御によりジョブを実行するかを判定し、図11に示す拡張ジョブデータ内の拡張制御フラグを設定する。判定方法の詳細については、図13で後述する。
（S502）制御部111が、制御部121にジョブ実行依頼として拡張ジョブデータを送信する。
【００５７】
（S503）制御部111が、S502で送信したジョブを制御部121がハード制御により実行するかを判定する。判定方法は、S501で判定した内容に従う。
−−S501で制御部121がジョブ処理をソフト制御により実行すると判定した場合は、S505に進む。
−−S501で制御部121がジョブ処理をハード制御により実行すると判定した場合は、S504に進む。
（S504）制御部111が、コンフィギュレーション実行可能になるのを待つ。図４に示すS104と同様の処理であるが、ジョブ終了通知を受信するかコンフィギュレーション実行可能になるかの両方を待つのではなく、コンフィギュレーション実行可能になるまで待つだけである。
（S505）制御部111が、制御部121からのジョブ終了通知を受信するのを待つ。
【００５８】
＜拡張ソフト処理実行判定フロー＞
図13は、図12のS501の拡張ソフト処理実行判定フローの詳細な処理を示すフローチャートである。本フローは制御部111により実行される。
（S601）制御部111が、プログラマブル処理部300がいつ処理可能になるかを示す解放時間を算出する。例えば、他のジョブ処理によりプログラマブル処理部300が使用されていなければ0秒である。他のジョブ処理によりプログラマブル処理部300が使用されている場合には、プログラマブル処理部300を使用しているジョブがいつ完了するのかを算出する。例えば、図２(b)に示すジョブ要求機能対応テーブルのうち、「写真画像処理機能」を実行するためプログラマブル処理部300に「PHOTO.config」が構成されている場合は、「写真画像処理機能」が終了する時間から算出する。
【００５９】
（S602）制御部111が、図７に示すソフト処理時間と、S501で算出したプログラマブル処理部300の解放時間と図７に示すハード処理時間を加算した値を比較する。
−−ソフト処理時間の方が大きい場合は、制御部121が当該ジョブを実行するにあたり、ハード制御の方が早くジョブ処理を完了できると判断し、S603に進む。
−−ソフト処理時間の方が小さい場合は、制御部121が当該ジョブを実行するにあたり、ソフト制御の方が早くジョブ処理を完了できると判断し、S604に進む。
（S603）制御部111が、拡張制御フラグに「ハード制御」を設定した拡張ジョブデータを生成する。
（S604）制御部111が、拡張制御フラグに「ソフト制御」を設定した拡張ジョブデータを生成する。
【００６０】
＜制御部121制御フロー＞
図14は、実施例３における制御部121の制御を示すフローチャートである。本フローは制御部121により実行される。ここでは、図５に示す実施例１の制御部121における制御フローとの差分のみ説明する。
（S701）制御部121が、制御部111からジョブ実行依頼として、図11に示す拡張ジョブデータを受信する。
（S702）制御部121が、S701で受信した拡張ジョブデータの拡張制御フラグを確認し、S701で受信したジョブをハード制御により実行するか、ソフト制御により実行するか判断する。
−−ハード制御により実行する場合はS703に進む。
−−ソフト制御により実行する場合はS704に進む。
【００６１】
／ハード制御によるジョブ実行／
（S703）制御部121が、制御部111からコンフィギュレーション完了通知を受信するのを待ち、コンフィギュレーション完了通知を受信するとS206に進む。
／ソフト制御によるジョブ実行／
（S704）制御部121が、S201で受信した拡張ジョブデータに基づいて、ソフト制御によりジョブ処理を開始する。
（S705）制御部121が、ソフト制御によるジョブ処理が完了するのを待ち、ジョブ処理完了を検知するとS208に進む。
【００６２】
＜連携フロー＞
図15は、実施例３において制御部111、制御部121及びプログラマブル処理部300が、図12及び図14のフローを実行し連携して動作した場合の処理フローを示す図である。
図15(A)は、制御部111が制御部121でのジョブ実行はハード制御により実行すると判定した場合のフローを示す図である。
図15(B)は、制御部111が制御部121でのジョブ実行はソフト制御により実行すると判定した場合のフローを示す図である。
【００６３】
／ハード制御によるジョブ実行／
まず、図15(A)について説明する。
図15(A)に記載されている各ステップのうち、図6(A)と差分のあるステップのみ説明する。
［制御部111］
（T501）制御部111はT101で受信したジョブデータを制御部121での実行はハード制御により実行すると判定する。そして、ジョブデータに対し拡張制御フラグを「ハード制御」に設定した拡張ジョブデータを生成する（これは図12のS501の判定で、図13のS603に判定したことに対応する。）。
（T502）制御部111はジョブ実行依頼として、T501で生成した拡張ジョブデータを制御部121に送信する（これは図12のS502に対応する。）。
（T503）制御部111はT501で判定した結果に基づき、T103以降でプログラマブル処理部300のコンフィギュレーションを実行するフローに進む（これは図12のS503の"YES"の分岐に対応する。）。
【００６４】
（T504）制御部121は制御部111からジョブ実行依頼として拡張ジョブデータを受信する（これは図14のS701に対応する。）。
（T505）制御部121はT504で受信した拡張ジョブデータの拡張制御フラグを確認し、ハード制御によりジョブを実行すると判定する（これは図14のS702の"YES"の分岐に対応する。）。
（T506）制御部121は制御部111からコンフィギュレーション完了通知を受信し、T116以降でハード制御によるジョブを実行する（これは図14のS703に対応する。）。
【００６５】
／ソフト制御によるジョブ実行／
次に図15(B)について説明する。
図15(B)に記載されている各ステップのうち、図15(A)と差分のあるステップのみ説明する。また、図15(B)において、プログラマブル処理部300を使用したステップや、制御部111から制御部121へのコンフィギュレーション完了通知が削除されているのは、ソフト制御によりジョブを実行すると判定しているためである。
【００６６】
［制御部111］
（T601）制御部111はT101で受信したジョブデータを制御部121での実行はソフト制御により実行すると判定する。そして、ジョブデータに対し拡張制御フラグを「ソフト制御」に設定した拡張ジョブデータを生成する（これはS501の判定で、S604に判定したことに対応する。）。
（T602）制御部111はT501で判定した結果に基づき、プログラマブル処理部300のコンフィギュレーションは不要と判定済みである。そして、T107の制御部121からジョブ終了通知の受信を待つフローに進む（これは図12のS503の"NO"の分岐に対応する。）。
【００６７】
（T603）制御部121はT504で受信した拡張ジョブデータの拡張制御フラグを確認し、ソフト制御によりジョブを実行すると判定する（これは図14のS702の"NO"の分岐に対応する。）。
（T604）制御部121はT504で受信した拡張ジョブデータに基づいて、ソフト制御によりジョブ処理を開始する。これはS704に対応する。
（T605）制御部121はソフト制御によるジョブの実行を完了しT118に進む。これはS705に対応する。
【００６８】
以上説明したように、制御部121でのソフト制御によるジョブ実行を先行して開始するかを制御部111が事前に判定することで、制御部121は不要なソフト制御によるジョブ実行をしなくて済む。よって、制御部121はその他の処理にソフトリソースを割くことができ、画像処理システム100の全体性能としてパフォーマンスを上げることができる。また、制御部111は不要なコンフィギュレーションを実行せずに済む。
【００６９】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成が可能である。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介して装置に供給し、その装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。
【符号の説明】
【００７０】
110  標準処理部
111  制御部
120  拡張処理部
121  制御部
300  プログラマブル処理部
【図１】
2016143369.tif 000003
【図２】
2016143369.tif 000004
【図３】
2016143369.tif 000005
【図４】
2016143369.tif 000006
【図５】
2016143369.tif 000007
【図６Ａ】
2016143369.tif 000008
【図６Ｂ】
2016143369.tif 000009
【図７】
2016143369.tif 000010
【図８】
2016143369.tif 000011
【図９】
2016143369.tif 000012
【図１０Ａ】
2016143369.tif 000013
【図１０Ｂ】
2016143369.tif 000014
【図１１】
2016143369.tif 000015
【図１２】
2016143369.tif 000016
【図１３】
2016143369.tif 000017
【図１４】
2016143369.tif 000018
【図１５Ａ】
2016143369.tif 000019
【図１５Ｂ】
2016143369.tif 000020