JP2016133898A - 画像処理装置、画像処理装置の制御方法、及びプログラム - Google Patents

画像処理装置、画像処理装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP2016133898A
JP2016133898A JP2015006905A JP2015006905A JP2016133898A JP 2016133898 A JP2016133898 A JP 2016133898A JP 2015006905 A JP2015006905 A JP 2015006905A JP 2015006905 A JP2015006905 A JP 2015006905A JP 2016133898 A JP2016133898 A JP 2016133898A
Authority
JP
Japan
Prior art keywords
circuit
control unit
unit
configuration
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015006905A
Other languages
English (en)
Inventor
靖二郎 森田
Yasujiro Morita
靖二郎 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015006905A priority Critical patent/JP2016133898A/ja
Publication of JP2016133898A publication Critical patent/JP2016133898A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

【課題】FPGA共用構成において、複数のCPU(制御部)からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供する。【解決手段】この画像処理装置は、第1の制御部と、第2の制御部と、それらと接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置である。第1の制御部は、プログラマブル処理部の第1の領域に第1の回路を構成するための回路情報から、第2の制御部に所定の処理の実行を依頼する際に必要な第1の回路情報を前記第2の制御部に転送する。第2の制御部は、第1の制御部から転送された第1の回路情報を受信し、受信した第1の回路情報およびプログラマブル処理部の第2の領域に、第2の制御部が第1の領域に第1の回路を構成できるような第2の回路を構成するための第2の回路情報を記憶し、第1および第2の回路情報を用いてそれぞれ第1および第2の回路を構成する。【選択図】 図6

Description

本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関し、特に、プログラマブルロジックデバイスを備えた画像処理装置に関する。
近年、FPGA等のプログラマブルロジックデバイスを搭載した様々なシステムが提案されている。例えば、特許文献11は、システム内に複数個存在するCPUモジュール毎にFPGAを1つずつ割り当てて搭載するシステムが開示されている。このシステムにおいて、FPGAをコンフィギュレーションする場合、CPUが、ハードディスク等に記憶されているコンフィギュレーションデータ(ファブリック・コンフィギュレーションデータ)を、そのFPGAにロードさせる。するとFPGAは、複数の内部ロジック(ロジックエレメント)を備えるコア・ファブリック(以下、単にファブリックまたは内部回路と呼ぶ)の内部ロジックおよび配線情報を書き換える。この書き換えをファブリック(あるいは内部回路)のコンフィギュレーションと呼ぶ。
特開2010−049510号公報
しかしながら、FPGAがファブリック・コンフィギュレーションデータをCPUから受け取るには、該FPGAの所定のI/Oエレメント(例えば、PCI Expressポート)が、該CPUと関連付けられている必要がある。さらに、FPGA内部のコンフィギュレーション制御回路と関連付けられている必要がある。このI/Oエレメントは、FPGAのファブリックとFPGAの外部回路(例えば、CPU)とを接続するインターフェースであり、ファブリックの周辺に配置される。I/Oエレメントがどの外部回路と関連付けられ、FPGA内部のコンフィギュレーション制御回路と関連付けられるかは、動的に変更可能(プログラマブル)であり、次のようにコンフィギュレーションされる。FPGAは、ファブリックのコンフィギュレーションの前に、所定のROM(Read Only Memory)からI/Oエレメントの関連付けを決めるためのコンフィギュレーションデータ(ペリフェラル・コンフィギュレーションデータ)をロードする。すると、FPGAは、ファブリックの周辺の回路(周辺回路またはペリフェラル回路と呼ぶ)に含まれるI/Oエレメントの関連付け(配線情報)を書き換える。この書換えをペリフェラル回路のコンフィギュレーションと呼ぶ。
特許文献1に開示されるシステムでは、1つのCPUに対して1つのFPGAが割り当てられているため、FPGAのペリフェラル回路は、対応するCPUからファブリック・コンフィギュレーションデータを受け取り可能なように構成されていればよかった。しかしながら、システム規模を削減するため、複数のCPUに対して1つのFPGAが割り当てられるシステム(FPGA共用構成)を採用すると、特許文献1の技術を適用することが難しい。すなわち、FPGAは、複数のCPUに1つのI/Oエレメントを関連付けることができないため、複数のCPUからファブリックのコンフィギュレーションを行うことができない。
本発明は、上記課題を鑑みて、FPGA共用構成において、複数のCPU(制御部)からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供することを目的とする。
上記課題を解決するために、本発明の画像処理装置は、第1の制御部と、第2の制御部と、前記第1および第2の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置であって、前記第1の制御部は、前記プログラマブル処理部の第1の領域に第1の回路を構成するための回路情報を格納する格納手段と、前記第2の制御部に所定の処理の実行を依頼する依頼手段と、前記格納手段に格納した前記回路情報から前記所定の処理の実行に必要な第1の回路情報を前記第2の制御部に転送する転送手段と、を備え、前記第2の制御部は、前記第1の制御部から転送された前記第1の回路情報を受信する受信手段と、前記受信手段により受信した前記第1の回路情報を記憶する第1の記憶手段と、前記プログラマブル処理部の第2の領域に、前記第2の制御部が前記第1の領域に前記第1の回路を構成できるような第2の回路を構成するための第2の回路情報を記憶する第2の記憶手段と、前記第1の回路情報を用いて前記第1の領域に前記第1の回路を構成し、前記第2の回路情報を用いて前記第2の領域に前記第2の回路を構成する制御手段と、を備えることを特徴とする。
本発明によれば、複数のCPUに対して1つのFPGAが割り当てられるシステム(FPGA共用構成)において、複数のCPU(制御部)からファブリックのコンフィギュレーションを行うことができる画像処理装置を提供することができる。
画像処理システムの構成の一例を示すブロック図である。 プログラマブル処理部の内部ブロック図である。 ペリフェラル・コンフィギュレーションデータの格納先を示す図である。 要求機能対応テーブルの一例を示す図である。 標準処理部の制御部の処理を示すフローチャートである。 拡張処理部の制御部の処理を示すフローチャートである。 画像処理システム全体の処理を示すシーケンス図である。 標準処理部の制御部の処理を示すフローチャートである。 拡張処理部の制御部の処理を示すフローチャートである。
以下、本発明を実施するための最良の形態について図面などを参照して説明する。
(第1実施形態)
<システムの全体構成>
図1は、本実施形態に係る画像処理システム(画像処理装置)100の全体構成を示すブロック図である。画像処理システム100は、標準処理部110と、プログラマブル処理部300を含む拡張処理部120を有する。標準処理部110は、画像処理システム100の動作制御や、色空間変換・ハーフトーニングといった基本的な画像処理等の処理を実行する。一般的に、標準処理部110は、メインコントローラーやマザーボードなどと呼ばれる処理部である。以下、標準処理部110の内部ブロックについて説明する。
制御部(第1の制御部)111は、標準処理部110を制御するための中央処理装置(CPU)である。なお、本実施形態では、制御部111は、PCI Expressのポートを少なくとも1ポート内蔵する。また、標準処理部110は、制御部111が動作するためのワークメモリであって、画像データ等のデータを一時記憶するためのメモリでもあるRAM112を有する。
補助記憶部(格納手段)113は、ハードディスクやフラッシュメモリなどの不揮発性の記憶装置であって、制御部111が実行するブートプログラムを格納する。また、補助記憶部113には、制御部111から後述のプログラマブル処理部300のファブリック(内部回路)のコンフィギュレーションを行う際に用いられるファブリック・コンフィギュレーションデータが格納される。ファブリック・コンフィギュレーションデータは、後述のファブリック302に構成される内部ロジックおよび配線情報(回路情報)を示す。以下、制御部111からのファブリックのコンフィギュレーションのことをCPUマスター・コンフィギュレーションと呼ぶ。
外部IF部114は、Ethernet(登録商標)やUSB等に対応したインターフェースであり、MACやPHY等のコネクタを含む。なお、図1において、標準処理部110は、外部IF部114を介して拡張処理部120のみと接続されているが、ネットワークを介して、例えば、ネットワークサーバやクライアントPCといった外部情報端末と接続されてもよい。
操作表示部115は、表示機能と操作機能を兼ねたタッチパネル等のデバイスであり、標準処理部110のユーザインターフェース部として機能する。なお、操作表示部115は、液晶ディスプレイとハードキーを組み合わせて構成してもよい。そして、上記の標準処理部110の各構成要素がシステムバス116上に構成される。
次に、拡張処理部120の内部ブロックについて説明する。本実施形態では、拡張処理部120は、標準処理部110とは異なる種類の処理の実行や、同種の処理でもより高速に実行できるように構成されている。一般的に、拡張処理部120は、アドオンハードウェアやアクセラレータなどと呼ばれる。以下、拡張処理部120の内部ブロックを説明する。
制御部(第2の制御部)121は、拡張処理部120を制御するための中央処理装置である。なお、本実施形態では、制御部111は、PCI Expressのポートを少なくとも1ポート内蔵する。補助記憶部(第1の記憶手段)123は、フラッシュメモリなどの不揮発性の記憶装置であり、制御部121が実行するためのブートプログラムなどが格納される。また、拡張処理部120は、制御部121が動作するためのワークメモリであるRAM122を有する。
外部IF部124は、Ethernet(登録商標)やUSBに対応したインターフェースであり、MACやPHY等のコネクタを含む。なお、図1において、拡張処理部120は、外部IF部124を介して標準処理部110のみと接続されているが、ネットワークサーバやクライアントPCといった他の外部情報端末と接続されてもよい。そして、上記の拡張処理部120の各構成要素がシステムバス126上に構成される。また、標準処理部110と拡張処理部120は、外部IF部114および外部IF部124を介して、ネットワークバス127上に構成される。
プログラマブル処理部300は、PCI Express信号線(単に、PCEe信号と呼ぶ)等で構成されるインターフェース130および131を介して、制御部111および制御部121と接続されるデバイスである。プログラマブル処理部300は、プログラミング可能なデバイスであれば限定はしないが、本実施形態では、FPGAとして説明する。プログラマブル処理部300は、PCI Expressのポートを少なくとも2ポート内蔵する。なお、本実施形態のプログラマブル処理部300は、同時に、インターフェース130および131の両方をCPUマスター・コンフィギュレーションのためのインターフェースとして機能させることはできないものとする。なお、本実施形態において、この「同時」とは、2つのタイミングがオーバーラップした、または全くの同一タイミングということである。すなわち、時分割による見かけ上の同一タイミングは、同時という意味には含まれない。
RAM134は、SDRAM等により構成される高速アクセス可能な記憶装置であり、プログラマブル処理部300と接続されワークメモリデバイスとして機能する。ROM132は、不揮発性の記憶装置であり、プログラマブル処理部300のペリフェラル回路構成をコンフィギュレーションするためのペリフェラル・コンフィギュレーションデータが格納される。
<プログラマブル処理部300の構成例>
次に、図2および3を用いて、本実施形態に係るプログラマブル処理部300の内部ブロック、およびペリフェラル・コンフィギュレーションデータの関係について説明する。前述のように、本実施形態では、プログラマブル処理部300は、FPGAであるとして説明を進める。図2は、プログラマブル処理部の内部ブロック図である。図2に示すように、プログラマブル処理部300は、ペリフェラル回路(第2の回路)301と、論理回路が構成される領域(第1の領域)にファブリック(第1の回路)302を有する。ペリフェラル回路301は、プログラマブル処理部300の外部I/Oと内蔵するIP(Intellectual Property)との接続により構成される。ペリフェラル回路301は、PCI Express IP304および305、メモリコントローラIP306、コンフィギュレーションコントローラ303、を含む領域(第2の領域)に構成される回路である。
PCI Express IP304およびPCI Express IP305は、PCI ExpressのPHY等を含むプロトコルスタックである。なお、本実施形態では、プログラマブル処理部300は、少なくとも2ポート分のPCI Express接続を実現できる。PCI ExpressIP304および305は、それぞれ制御部111、制御部121と接続し、ジョブや画像等のデータ転送や、ファブリック302をコンフィギュレーションするためのファブリック・コンフィギュレーションデータの転送等に用いられる。なお、本実施形態では、PCI Expressのポートを採用しているが、これに限定することなく、データ転送等が可能であれば、他のポートであってもよい。
メモリコントローラIP306は、DDR規格等に対応したPHYやコントローラを含むメモリインターフェースであり、RAM133と接続し、画像データ等の一時格納に用いられる。コンフィギュレーションコントローラ303は、ROM131からペリフェラル・コンフィギューレションデータをロードし、ペリフェラル回路301を構築する。ペリフェラル回路301を構成する際、コンフィギュレーションコントローラ303は、PCI Express IP304および305、メモリコントローラIP306のパラメータ設定を制御する。さらに、コンフィギュレーションコントローラ303は、PCI Express IP304および305を介して転送されるファブリック・コンフィグレーションデータを用いてファブリック302の論理回路を構成する。
図3は、ROM132に格納されるペリフェラル・コンフィギュレーションデータの格納先を説明する図である。本実施形態では、ROM132の0x00_0000番地からペリフェラル・コンフィギュレーションデータAが格納されており、0x20_0000番地からペリフェラル・コンフィギュレーションデータBが格納されている。本実施形態において、ROM132の番地は、0x3F_FFFF番地まであるものとする。
図2(A)は、ペリフェラル・コンフィギュレーションデータA(第3の回路情報)を用いてコンフィギュレーションコントローラ303が構成するブロック図である。ペリフェラル・コンフィギュレーションデータAを用いて構成したペリフェラル回路301では、PCI Express IP304とコンフィギュレーションコントローラ303が接続している。この接続状態により、制御部111は、インターフェース130およびPCI Express IP304を介してファブリック・コンフィギュレーションデータを転送し、CPUマスター・コンフィギュレーションが可能であることを示している。
図2(B)は、ペリフェラル・コンフィギュレーションデータB(第2の回路情報)を用いてコンフィギュレーションコントローラ303が構成するブロック図である。ペリフェラル・コンフィギュレーションデータBを用いて構成したペリフェラル回路301では、PCI Express IP305とコンフィギュレーションコントローラ303が接続している。この接続状態により、制御部121は、インターフェース131およびPCI Express IP305を介してファブリック・コンフィギュレーションデータを転送し、CPUマスター・コンフィギュレーションが可能であることを示している。
ファブリック302には、コンフィギュレーションコントローラ303により、ファブリック・コンフィギュレーションデータに基づいた論理回路が構築される。本実施形態に係る画像処理システム100においては、電源投入後、まずコンフィグレーションコントローラ303は、ROM132からペリフェラル・コンフィギュレーションデータAをロードし、ペリフェラル回路を構成する。次に、制御部111は、PCI Express IP304を介してファブリック・コンフィギュレーションデータをコンフィギュレーションコントローラ303に転送することで、ファブリック302に論理回路を構成する。
<要求機能対応テーブル>
図4は、画像処理システム100が行うジョブにより発生するジョブ要求機能と、ジョブ要求機能に対応するコンフィギュレーションデータの関係を管理する要求機能対応テーブルの一例を説明する図である。
ジョブ要求機能の列には、画像処理システム100が処理可能な機能が示されている。本実施形態では、画像処理システム100は、熱源人感機能、オブジェクト認識機能、カメラ人感機能、および文字読取機能を有する。熱源人感機能は、赤外線センサ等を用いて画像処理システム100に近づく人を検知する機能であり、オブジェクト認識機能は、画像データの各領域が文字・写真のいずれかを認識する機能である。また、カメラ人感機能は、カメラを用いて画像解析することにより画像処理システム100に近づく人を検知する機能であり、文字読取機能は、画像データに含まれる文字を認識する機能である。
サポートデバイスの列には、対応するジョブ要求機能を実行可能なデバイスが示されている。本実施形態では、熱源人感機能およびオブジェクト認識機能は、標準処理部110が行う機能であり、カメラ人感機能および文字読取機能は、拡張処理部120が行う機能であることを示す。
構成回数の列には、上記の要求機能を実行する際に、プログラマブル処理部300の再構成が必要な回数が示されている。本実施形態では、熱源人感機能は、プログラマブル処理部300を利用しないことを示す。また、オブジェクト認識機能は、プログラマブル処理部300を1回の再構成により実現される論理回路を利用することを示す。さらに、カメラ人感機能は、プログラマブル処理部300を2回再構成しながら利用することを示している。
ファブリック・コンフィギュレーションデータの列には、対応するジョブ要求機能を実行する際に必要なコンフィギュレーションデータを一意に特定できる情報が示されている。この情報に基づき特定できるコンフィギュレーションデータを用いてプログラマブル処理部300をコンフィギュレーションして構成される論理回路を利用して、各制御部は、処理を実行することができる。オブジェクト認識機能では、画像データの各領域が文字・写真のいずれかを示す情報を生成する論理回路を構成するための「std_ASEP.config」が用いられる。カメラ人感機能では、入力画像の歪みを補正した出力画像を得る論理回路を構成するための「ext_GEOC.config」と、画像データから特徴量情報を生成する論理回路を構成するための「ext_CHAD.config」が用いられる。文字読取機能では、画像データに含まれる文字を認識する情報を生成する論理回路を構成する「ext_CHAR.config」が用いられる。
標準処理部110は、コンフィギュレーション対応テーブルを補助記憶部113に格納している。制御部111は、ジョブに対して、要求機能対応テーブルに基づいて、当該ジョブ要求機能を実現するためのデバイスやコンフィギュレーションデータを決定することができる。
<再構成制御フロー>
本実施形態において、ジョブによる要求機能の実行を、拡張処理部が行う場合のプログラマブル処理部300の再構成制御の処理フローについて、図5および6のフローチャートを用いて説明する。また、制御部111と制御部121での通信は、外部IF部114および外部IF部124を介してネットワークパス127上で実現される。
まず、図5を用いて、制御部111が行う処理について説明する。ステップS101で、制御部111は、サポートデバイスが拡張処理部120のジョブを受信したか否かを判定する。本実施形態では、カメラ人感機能を必要とするジョブは、ユーザからの処理要求が所定時間発生しない場合、画像処理システム100が実施するジョブである。なお、画像処理システム100が実行するジョブは、操作表示部115や外部IF114を介したユーザ要求や、画像処理システム100に新たにデバイスが追加された時などに発生する。制御部111は、受信(発生)したジョブを解析し、ジョブにより必要となる要求機能を認識し、要求機能対応テーブル内の「サポートデバイス」を参照することによってサポートデバイスが拡張処理部120のジョブであるか否かを判定する。制御部111が、要求機能のサポートデバイスが拡張処理部120のジョブを受信したと判定した場合(YES)、ステップS102に移行する。一方、サポートデバイスが拡張処理部120のジョブを受信していない場合(NO)、受信するまで判定を繰り返す。
次に、ステップS102で、制御部111は、当該ジョブがプログラマブル処理部300を利用するジョブか否かを判定する。この判定は、制御部111が認識した要求機能に基づき、要求機能対応テーブル内の「構成回数」を参照することで判定する。構成回数が1以上の場合、プログラマブル処理部300を利用するジョブであると判定し(YES)、ステップS103へ移行する。一方、構成回数が1未満の場合、プログラマブル処理部300を利用しないジョブであると判定し(NO)、ステップS105へ移行する。例えば、カメラ人感機能を拡張処理部120に実行依頼する場合、「構成回数」が2であることから、この場合はステップS103へ移行する。
次に、ステップS103で、制御部111は、拡張処理部120に対して、不図示の依頼手段により機能実行(所定の処理の実行)を依頼する。本実施形態において、機能実行依頼には、少なくとも実行する機能の種類、および実行完了条件を通知することによって行う。実行完了条件とは、例えば、「所定ページ画像処理実行」や、標準処理部110からの「停止命令」や、所定の結果を得た時のみ完了する「条件付き完了」などを用いてよい。さらに、機能の種類によって、機能実行に必要なパラメータや処理対象のデータを転送してもよい。また、制御部111は、プログラマブル処理部300を用いる機能であるか否かを示す情報を付加して拡張処理部120に依頼を行ってもよい。プログラマブル処理部300を用いる機能であるか否かを示す情報を付加して依頼することにより、拡張処理部120の制御部121は、依頼される機能に対してプログラマブル処理部300が必要か否かの対応を管理しなくてもよい。
次に、ステップS104で、制御部111は、ステップS103で依頼した機能において必要となるファブリック・コンフィギューレションデータ(第1の回路情報)を、補助記憶部113から読み出す。そして、不図示の転送手段により、外部IF部114を介してネットワークパス127を通して拡張処理部120に転送する。ここで、制御部111は、要求機能に基づき、要求機能対応テーブル内の「ファイブリック・コンフィギューレションデータ」を参照することで、補助記憶部113から読み出すデータを選択することが出来る。例えば、カメラ人感機能を拡張処理部120に実行依頼する場合、制御部111は、ファブリック・コンフィギュレーションデータとして、ext_GEOC.configと、ext_CHAR.configを、拡張処理部120に転送し、本処理を終了する。一方、ステップS105で、制御部111は、ステップS103と同様に、拡張処理部120に対して、機能実行を依頼する。そして、本処理を終了する。
次に、図6を用いて、制御部121が行う処理について説明する。まず、ステップS201で、制御部121は、機能実行依頼を受信するまで待機して、機能実行依頼を受信したか否かを判定する。ステップS103またはステップS105において制御部111が行った機能実行依頼を受信した場合(YES)、ステップS202へ移行する。一方、機能実行依頼を受信していない場合(NO)、受信するまで待機する。
ステップS202で、制御部121は、受信した機能実行依頼から、機能の種類を認識し、認識した機能においてプログラマブル処理部300を利用するか否かを判定する。制御部121は、認識した機能の種類に対応する処理の手順を管理するテーブル等を用いることで判定してもよく、依頼内容からプログラマブル処理部300の利用に関する情報を得ることで判定してもよい。制御部121がプログラマブル処理部300を利用すると判定した場合(YES)、ステップS203へ移行する。一方、利用しないと判定した場合(NO)、ステップS211へ移行し、制御部121は、依頼された処理を実行し、ステップS212で、完了したか(完了条件を満たしているか)否かを判定する。完了条件を満たしている場合(YES)、処理を終了する。一方、完了条件を満たしていない場合(NO)、完了条件を満たすまで、依頼された機能を実行する。
次に、ステップS203で、制御部121は、ステップS201で依頼された機能に用いるファブリック・コンフィギュレーションデータを、不図示の受信手段により標準処理部110から受信し、RAM122または補助記憶部123に記憶する。例えば、カメラ人感機能では、ext_GEOC.configと、ext_CHAR.configをファブリック・コンフィギュレーションデータとして扱う。
次に、ステップS204で、制御部121は、不図示の制御手段によりROM(第2の記憶手段)132に格納されているペリフェラル・コンフィギュレーションデータBを用いて、プログラマブル処理部300にペリフェラル回路301を再構成する指示を行う。本実施形態では、制御部121は、PCI Express IP305およびファブリック302を介して、コンフィギュレーションコントローラ303対して命令を行う。なお、プログラマブル制御部300とROM132間に制御デバイスを準備して、制御デバイスに制御部121からロードするペリフェラル・コンフィギュレーションデータを切り替える制御を行ってもよい。
ステップS205で、制御部121は、ペリフェラル・コンフィギュレーションが完了したか否かを判定する。すなわち、ペリフェラル・コンフィギュレーションの完了を待機し、完了を確認できた場合(YES)、ステップS206へ移行する。このとき、プログラマブル処理部300は、図2(B)に示す状態になる。本実施形態では、ステップS205における完了の確認は、プログラマブル処理部300が出力するコンフィギュレーション完了信号(不図示)を制御部121が検知することで行う。また、ペリフェラル・コンフィギュレーションに必要な時間を制御部121が有することで判定してもよい。なお、ステップS203に先行してステップS204からステップS205のペリフェラル・コンフィギュレーションを実行し、その後ステップS203のファブリック・コンフィギュレーションデータ受信の順で処理を行ってもよい。一方、ペリフェラル・コンフィギュレーションの完了を確認できない場合(NO)、完了まで待機する。
なお、ステップS204およびステップS205において、インターフェース131と接続するPCI Express IP305がコンフィギュレーションコントローラ303と接続された。これにより、制御部121がファブリック302をコンフィギュレーションすることが可能となる。次に、ステップS206で、制御部121は、不図示の制御手段によりステップS203で受信したファブリック・コンフィギュレーションデータを用いて、コンフィギュレーションコントローラ303にファブリック302のコンフィギュレーション指示を行う。例えば、カメラ人感機能では、このときext_GEOC.configを用いて、カメラからの入力画像の歪みを補正する論理回路がファブリック302に構成される。
次に、ステップS207で、制御部121は、ファブリック302のコンフィギュレーションが完了したか否かを判定する。すなわち、ファブリック302のコンフィギュレーションの完了を待機し、完了を確認できた場合(YES)、ステップS208へ移行する。一方、ファブリック302のコンフィギュレーションの完了を確認できない場合(NO)、完了まで待機する。
次に、ステップS208で、制御部121は、プログラマブル処理部300を利用して、設定および処理対象データ等の転送処理を行い、依頼された機能の処理を実行する。次に、ステップS209で、制御部121は、ステップS208の処理が完了したか(完了条件を満たしているか)否かを判定する。完了条件を満たしている場合(YES)、処理を終了する。一方、完了条件を満たしていない場合(NO)、ステップS210へ移行する。なお、完了条件は、ステップS201で受信した依頼に基づいて制御部121が判定する。例えば、カメラ人感機能において、人検知した場合のみ完了とする「条件付き完了」の場合、検知していなければ、ステップS210に進む。また、複数回のファブリック302の再構成と処理実行が必要な機能においても、複数回の再構成と処理が完了しない場合は、ステップS210へ移行する。
次に、ステップS210で、制御部121は、ファブリック302のコンフィギュレーションが必要か否かを判定する。ファブリック302のコンフィギュレーションが必要である場合(YES)、ステップS206へ戻り、ファブリック302を再構成する処理を行う。複数回のファブリック302の再構成と処理実行が必要な機能において、複数回の処理が完了していない場合は、必要であると判定し、ステップS206へ移行する。例えば、カメラ人感機能の場合、2回目のステップS206では、制御部121は、ext_CHAD.configを用いて、画像データから特徴量を抽出する論理回路がファブリックS302に構成する。一方、ファブリック302のコンフィギュレーションが必要ではない場合(NO)、ステップS208に戻り、依頼された機能を実行する。以上、図5および6の処理により、拡張処理部120がプログラマブル処理部300を制御して利用する場合、ペリフェラル回路301の構成を制御することで、CPUマスター・コンフィギュレーション可能なインターフェースが拡張処理部120側に変更される。
<機能実行シーケンス>
図7は、本実施形態に係る拡張処理部120がカメラ人感機能を実行した場合の、制御部111、制御部121、プログラマブル処理部300の処理シーケンスである。本実施形態では、図4を参照して、カメラ人感機能は、サポートデバイスが拡張処理部120で、構成回数が2である。なお、図7に示す各ステップは、図5および6で用いた各ステップに対応するため、その詳細な説明は省略する。
まず、標準処理部111の制御部111は、ステップS103およびステップS104で、ファブリック・コンフィギュレーションデータを制御部121に転送する。拡張処理部121の制御部121は、ステップS201およびステップS203で、カメラ人感機能に必要な2つのファブリック・コンフィギューレションデータを受信する。次に、ステップS204〜ステップS210で説明したように、制御部121は、プログラマブル処理部300に構成したカメラからの入力画像の歪みを補正する論理回路を利用した処理を行う。そして、制御部121は、プログラマブル処理部300に構成した画像データから特徴量を抽出する論理回路を利用した処理を行う。なお、図示していないが、図7において、2回目のステップS206の前で、ステップS210の判定処理を実行している。
以上のように、本実施形態によれば、従来のように、制御部121が制御部111に、ファブリック302のコンフィギュレーションを依頼する必要がなくなる。このことにより、各制御部がプログラマブル処理部300を利用した処理を適切なタイミングで開始できることが可能となる。
(第2実施形態)
第1実施形態では、ジョブ要求機能のサポートデバイスが拡張処理部120でありプログラマブル処理部300を利用する場合、ペリフェラル回路301の再構成指示を行った。これに対して、本実施形態では、要求機能対応テーブル内の構成回数が2回以上のときのみ、ペリフェラル回路301の再構成指示を行う場合について、図8および9を用いて説明する。
まず、図8を用いて、制御部111が行う処理について説明する。なお、ステップS101およびステップS102、ステップS103〜ステップS105の処理については第1実施形態と同様の処理であるため、その詳細な説明を省略する。
次に、ステップS301で、制御部111は、当該ジョブがプログラマブル処理部300を、2回以上(所定の回数以上)フィギュレーションを行って利用するジョブか否かを判定する。この判定は、制御部111が認識した要求機能に基づき、要求機能対応テーブル内の「構成回数」を参照することで判定する。構成回数が2以上の場合(YES)、ステップS103へ移行する。一方、構成回数が2以上でない場合(NO)、すなわち、所定の回数未満である場合、ステップS302へ移行する。例えば、文字読取機能を拡張処理部120に実行依頼する場合、「構成回数」が1であることから、ステップS302へ移行する。次に、ステップS302で、制御部111は、補助記憶部113に格納されたファブリック・コンフィギュレーションデータを用いて、コンフィギュレーションコントローラ303にファブリック302の論理回路のコンフィギュレーション指示を行う。
次に、ステップS303で、制御部111は、ファブリック302のコンフィギュレーションが完了したか否かを判定する。すなわち、ファブリック302のコンフィギュレーションの完了を待機し、完了を確認できた場合(YES)、ステップS304に移行する。一方、ファブリック302のコンフィギュレーションの完了を確認できない場合(NO)、完了まで待機する。
次に、ステップS304で、制御部111は、拡張処理部120に対して、機能実行を依頼する。本実施形態では、機能実行依頼には、少なくとも実行する機能の種類、および実行完了条件を通知することによって行う。また、このとき、拡張処理部120の制御部121がプログラマブル処理部300のコンフィギュレーションが必要ないこと(不要であること)を示す情報を付加して依頼して、処理を終了する。
次に、図6を用いて制御部121が行う処理について説明する。なお、ステップS101およびステップS102、ステップS103〜ステップS105、ステップS203〜ステップ212の処理については第1実施形態と同様の処理であるため、その詳細な説明を省略する。
ステップS401で、制御部121は、受信した依頼から、制御部121がファブリック302のコンフィギュレーションを可能となるようにペリフェラル回路301のコンフィギュレーションを行う必要があるか(不要か)否かを判定する。なお、本実施形態では、依頼内容からプログラマブル処理部300のコンフィギュレーションの必要に関する情報を得ることで判定する。すなわち、制御部111のステップS304の処理により、すでに拡張処理部120が用いる論理回路がファブリック302に構成されているか否かを判定する。
ペリフェラル回路301のコンフィギュレーションを行う必要がある場合(YES)、ステップS203へ移行する。一方、ペリフェラル回路301のコンフィギュレーションを行う必要がない場合(NO)、すなわち、すでに拡張処理部120が用いる論理回路がファブリック302に構成されていることが認識できる場合、ステップS208へ移行する。また、制御部121は、認識した機能の種類に対応する処理の手順を管理するテーブル等を用いて、制御部111のステップS301の判定において「構成回数」を参照することで、ステップS203またはステップS208へ移行するかを判定してもよい。
以上、本実施形態によれば、必要となるファブリック302の構成回数が少ない場合、制御部111がファブリック302のコンフィギュレーションを行うことにより、第1実施形態の効果に加え、コンフィギュレーションを行う処理手順を削減することができる。これにより、処理を開始するまでの時間を短縮することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。

Claims (10)

  1. 第1の制御部と、第2の制御部と、前記第1および第2の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置であって、
    前記第1の制御部は、
    前記プログラマブル処理部の第1の領域に第1の回路を構成するための回路情報を格納する格納手段と、
    前記第2の制御部に所定の処理の実行を依頼する依頼手段と、
    前記格納手段に格納した前記回路情報から前記所定の処理の実行に必要な第1の回路情報を前記第2の制御部に転送する転送手段と、
    を備え、
    前記第2の制御部は、
    前記第1の制御部から転送された前記第1の回路情報を受信する受信手段と、
    前記受信手段により受信した前記第1の回路情報を記憶する第1の記憶手段と、
    前記プログラマブル処理部の第2の領域に、前記第2の制御部が前記第1の領域に前記第1の回路を構成できるような第2の回路を構成するための第2の回路情報を記憶する第2の記憶手段と、
    前記第1の回路情報を用いて前記第1の領域に前記第1の回路を構成し、前記第2の回路情報を用いて前記第2の領域に前記第2の回路を構成する制御手段と、
    を備える
    ことを特徴とする画像処理装置。
  2. 前記制御手段は、前記第2の回路を構成した後に、前記第1の回路を構成し、前記依頼手段により依頼された前記所定の処理を実行する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記第2の記憶手段は、さらに、前記第2の領域に、前記第1の制御部が前記第1の領域に前記第1の回路を構成できるような第3の回路を構成するための第3の回路情報を記憶し、前記制御手段は、前記第3の回路情報を用いて前記第2の領域に前記第3の回路を構成する
    ことを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記第1の制御部は、
    前記所定の処理に基づいて前記第1の領域に前記第1の回路を構成する回数を管理する管理手段
    をさらに備え、
    前記転送手段は、前記管理手段により管理される前記回数を前記第2の制御部に転送し、前記第2の制御部は、前記制御手段を用いて、前記回数に基づいて前記第1の回路の構成を行う
    ことを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記第1の制御部は、前記回数が所定の回数未満である場合、前記第1の回路情報を用いて前記第1の領域に前記第1の回路を構成し、前記依頼手段は、前記第2の制御部に、前記制御手段により前記第2の回路の構成が不要であることを示す情報を付加して依頼する
    ことを特徴とする請求項4に記載の画像処理装置。
  6. 前記制御手段は、前記受信手段が前記依頼手段から前記第2の回路の構成が不要であることを示す情報を受信した場合、前記第1の回路の構成および前記第2の回路の構成を行わない
    ことを特徴とする請求項5に記載の画像処理装置。
  7. 前記第1の制御部は、前記回数が前記所定の回数以上である場合、前記第1の回路を構成しない
    ことを特徴とする請求項5に記載の画像処理装置。
  8. 前記所定の回数は、2である
    ことを特徴とする請求項5〜7のいずれか1項に記載の画像処理装置。
  9. 第1の制御部と、第2の制御部と、前記第1および第2の制御部と接続する回路構成を書き換え可能なプログラマブル処理部と、を備える画像処理装置の制御方法であって、
    前記第1の制御部は、
    前記プログラマブル処理部の第1の領域に第1の回路を構成するための回路情報を格納する格納工程と、
    前記第2の制御部に所定の処理の実行を依頼する依頼工程と、
    前記格納工程により格納した前記回路情報から前記所定の処理の実行に必要な第1の回路情報を前記第2の制御部に転送する転送工程と、
    を有し、
    前記第2の制御部は、
    前記第1の制御部から転送された前記第1の回路情報を受信する受信手段と、
    前記受信工程において受信した前記第1の回路情報を記憶する第1の記憶工程と、
    前記プログラマブル処理部の第2の領域に、前記第2の制御部が前記第1の領域に前記第1の回路を構成できるような第2の回路を構成するための第2の回路情報を記憶する第2の記憶工程と、
    前記第1の回路情報を用いて前記第1の領域に前記第1の回路の構成を行い、前記第2の回路情報を用いて前記第2の領域に前記第2の回路の構成を行う制御工程と、
    を備える
    ことを特徴とする画像処理装置の制御方法。
  10. 請求項1〜8のいずれか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。

JP2015006905A 2015-01-16 2015-01-16 画像処理装置、画像処理装置の制御方法、及びプログラム Pending JP2016133898A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015006905A JP2016133898A (ja) 2015-01-16 2015-01-16 画像処理装置、画像処理装置の制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015006905A JP2016133898A (ja) 2015-01-16 2015-01-16 画像処理装置、画像処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2016133898A true JP2016133898A (ja) 2016-07-25

Family

ID=56438110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015006905A Pending JP2016133898A (ja) 2015-01-16 2015-01-16 画像処理装置、画像処理装置の制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2016133898A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110694A1 (ja) * 2016-12-16 2018-06-21 日本電気株式会社 管理装置、管理システム、管理装置の制御方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110694A1 (ja) * 2016-12-16 2018-06-21 日本電気株式会社 管理装置、管理システム、管理装置の制御方法及びプログラム
US11243796B2 (en) 2016-12-16 2022-02-08 Nec Corporation Management apparatus, management system, method for controlling management apparatus, and program

Similar Documents

Publication Publication Date Title
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US9864606B2 (en) Methods for configurable hardware logic device reloading and devices thereof
US10037170B2 (en) Motherboard and a method for boot-up
CN107430565B (zh) 具有多个独立微控制器的低接脚微控制器装置
US20160034411A1 (en) Subsystem Peripheral Ownership Scheduling and Reconfiguration for Highly Integrated System on Chips
EP3159802B1 (en) Sharing method and device for pcie i/o device and interconnection system
JP6033942B2 (ja) 識別子を制御システムのコンポーネントへ割り当てるデバイス、システム及び方法
JP6094575B2 (ja) I/oデバイス共有システムおよびi/oデバイス共有方法
CN114691317A (zh) 可重新配置的计算结构中的循环执行
CN112416505A (zh) 一种远程控制系统、方法及计算设备
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
US10749836B2 (en) Slave device for performing address resolution protocol and operating method thereof
JP2016133898A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
US10037591B2 (en) Information processing apparatus and method of controlling the same
US20120066676A1 (en) Disabling circuitry from initiating modification, at least in part, of state-associated information
US9413355B2 (en) Information processing apparatus and control method therefor
TWI556171B (zh) 主機板及開機的方法
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
JP7361669B2 (ja) 制御装置
US10803008B2 (en) Flexible coupling of processor modules
CN117421268A (zh) 一种互联系统、设备及网络
US9854117B2 (en) Information processing system including device provided with circuit capable of configuring logic circuit according to circuit information and plurality of control units
Kevin et al. Intelligent reconfigurable gateway for heterogeneous wireless sensor and actuator networks
Vu et al. On-demand reconfiguration for coprocessors in mixed criticality multicore systems
US9811492B2 (en) System and method for providing internal system interface-based bridging support in management controller