JP2016111633A - 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム - Google Patents

回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム Download PDF

Info

Publication number
JP2016111633A
JP2016111633A JP2014249432A JP2014249432A JP2016111633A JP 2016111633 A JP2016111633 A JP 2016111633A JP 2014249432 A JP2014249432 A JP 2014249432A JP 2014249432 A JP2014249432 A JP 2014249432A JP 2016111633 A JP2016111633 A JP 2016111633A
Authority
JP
Japan
Prior art keywords
information
circuit
control unit
processing system
job
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
JP2014249432A
Other languages
English (en)
Inventor
学 小澤
Manabu Ozawa
学 小澤
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 JP2014249432A priority Critical patent/JP2016111633A/ja
Priority to US14/960,562 priority patent/US9854117B2/en
Publication of JP2016111633A publication Critical patent/JP2016111633A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00885Power supply means, e.g. arrangements for the control of power supply to the apparatus or components thereof
    • H04N1/00888Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00949Combining applications, e.g. to create workflows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00954Scheduling operations or managing resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • H04N1/32598Bus based systems

Abstract

【課題】回路情報に従った論理回路が構成されるプログラマブルロジックデバイスを複数の制御手段を共有する、複雑化せずにデバイスのコンフィギュレーションを可能にするシステムを提供する。【解決手段】第1の制御手段に対して、第2の制御手段が、ジョブ発生を検知したことに基づいてコンフィギュレーション依頼を送信するS504。そして、第1の制御手段は、受信したコンフィギュレーション依頼に基づいて、第2の制御手段がそのジョブの処理で利用する論理回路の回路情報を、PCIeバス経由でFPGAデバイスに送信する。FPGAデバイスは、この送信された回路情報に従って論理回路を構成し、第2の制御手段は、構成済みの論理回路を利用してそのジョブを処理する。【選択図】図5

Description

本発明は回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システムに関する。
内部の論理回路構成を変更可能なCPLD(COMPLEX PROGRAMMABLE LOGIC DEVICE)やFPGA(FIELD PROGRAMMABLE GATE ARRAY)などのプログラマブルロジックデバイスが知られている。例えばFPGAは、ファブリックとコンフィギュレーションメモリを有する。ファブリックは、複数の論理ブロックと、論理ブロック間の配線領域とを含む。またFPGAは、FPGA内部と外部とのデータを受け渡すインターフェースを有する。コンフィギュレーションメモリにコンフィギュレーションデータ(回路情報とも呼ぶ)を書き込むことで、ファブリック(複数の論理ブロック)を様々な論理回路として機能させることができる。回路情報を書き込むことでファブリックを論理回路として機能させることを、FPGAのコンフィギュレーションと呼ぶ。
FPGAのファブリックは、コンフィギュレーションによって様々な機能を果たすことができるので、ハードウェアの高速性と、ソフトウェアの柔軟性とを両立させることができる。特許文献1の開示するシステムでは、複数のCPUがコンフィギュレーション済みのFPGAを共通に利用するようにしている。
特開2008−287571号公報
プログラマブルロジックデバイスは、高速なデータ通信を実現するためのバスインターフェース(例えばPCI Expressバス:PCIeバス)のIPコア(Intellectual Property Core:以下ポートと呼ぶ)を備えるものがある。そのようなデバイスでは、ポートと接続したCPUは、そのポートを介して、論理回路で処理すべきデータをデバイスに高速に送信できる。このような高速ポートを複数備えたFPGAを複数CPUで共有すれば、各ポートに異なるCPUを接続でき、各CPUは対応ポートに向けてデータを他のCPUを介さずに(独立して)送信することで論理回路を用いてそのデータを処理できる。
近年のプログラマブルロジックデバイスは、その高速ポートを介してCPUが回路情報をデバイスに送信することで、CPUからデバイスのコンフィギュレーションを行うことが可能になってきている。
ここで、プログラマブルロジックデバイスによっては、CPUから回路情報を受け取ることが可能ではあるが、その回路情報を用いたコンフィギュレーションには対応しないポートが存在する場合がある。つまりコンフィギュレーション可能な高速ポートが割り当てられていないCPUのためのコンフィギュレーションの仕組みが必要となる。
あるいは、異なるCPUがそれぞれ接続されている複数の高速ポートのいずれからでもデバイスのコンフィギュレーションが可能とされている場合であっても、各CPUは、他のCPUによるコンフィギュレーションと競合しないような制御を行う必要が生じる。例えば他の全てのCPUに対してコンフィギュレーションを禁止するような制御を行う必要があり、システムが複雑化してしまう恐れがある。
本発明は、上記の課題の少なくともいずれか1つを解決することを目的とする。
本発明によれば、請求項1に記載される情報処理システムが提供される。
本発明によれば、回路情報に従った論理回路が構成されるプログラマブルロジックデバイスを複数の制御手段が共有するシステムにおいて、システムを複雑化せずにデバイスのコンフィギュレーションを可能にする。
情報処理システム100の全体ブロック図である。 ジョブデータの例、ジョブ要求機能対応テーブルの例である。 プログラマブル処理部400の構成情報の構成例である。 プログラマブル処理部400の内部ブロック図の一例である。 第2処理部によるコンフィギュレーション依頼処理のフローチャートである。 第1処理部によるコンフィギュレーション処理のフローチャートである。 状態遷移テーブルの例である。 第1処理部による先行コンフィギュレーション処理を伴うコンフィギュレーション処理のフローチャートである。 先行コンフィギュレーション処理のフローチャートである。
以下、本発明の実施例について図面を用いて説明する。
(実施例1)
本実施例によれば、第1の制御手段に対して、第2の制御手段が、ジョブ発生を検知したことに基づいてコンフィギュレーション依頼を送信する。そして、第1の制御手段は、受信したコンフィギュレーション依頼に基づいて、第2の制御手段がそのジョブの処理で利用する論理回路の回路情報を、PCIeバス経由でFPGAデバイスに送信する。するとFPGAデバイスは、この送信された回路情報に従って論理回路を構成し、第2の制御手段は、構成済みの論理回路を利用してそのジョブを処理する。
つまり、第2の制御手段で処理すべきジョブの発生が検知されたことに基づいて、第1の制御手段は、そのジョブの処理に必要な論理回路の回路情報をFPGAデバイスに送信する。
また別の視点から述べると、第1の制御手段がジョブの処理において利用しない論理回路であっても、第1の制御手段は、その論理回路の回路情報を、PCIeバス経由でFPGAデバイスに送信する。
なお、以降の全実施例の説明において、「ジョブを処理する」とは、そのジョブで処理すべきデータを処理することである。また「制御手段が論理回路を利用してジョブを処理する」とは、制御手段がFPGAデバイスにジョブで処理すべきデータを送信し、FPGAデバイス上の論理回路がそのデータを処理し、制御手段がその処理結果を受け取ることである。
<システムの全体構成>
図1は、本実施例における情報処理システムの一例である画像処理システム100の全体ブロック図である。本実施例における画像処理システム100は、ジョブを処理する処理部(制御部)を少なくとも2つ以上有する。
第1処理部110は、画像処理システム100の動作制御や、色空間変換・ハーフトーニングといった基本的な画像処理を実行する。第1処理部110は一般に、メインコントローラやマザーボードなどと呼ばれる。以下、第1処理部110の内部ブロックを説明する。
制御部111は、第1処理部110を制御するための中央処理装置(CPU)である。制御部111は、PCIeバスと接続するポートを少なくとも1ポート備える。このPCIeのポートは、PCIeバスを介して、後述のプログラマブル処理部400の備えるPCIe IP403(後述の第1ポート)と電気的に接続されている。制御部111は、このPCIeのポートから、PCIeバスを介して、プログラマブル処理部400(後述の第1ポート)に対して、ジョブで処理すべきデータや後述の回路情報を送信する。例えば、制御部111は、第1の回路情報をPCIeバス経由でプログラマブル処理部400(後述の第1ポート)へ送信することで、その第1の回路情報に従って第1の論理回路がプログラマブル処理部400に構成される。そして制御部111は、第1のジョブで処理すべきデータをPCIeバス経由でプログラマブル処理部400(後述の第1ポート)に送信する。そして制御部111は、第1の論理回路によって処理されたデータ(処理結果)を、プログラマブル処理部400(後述の第1ポート)から受信する。以上の手順で、制御部111は、第1の論理回路を用いてそのデータ(すなわち第1のジョブ)を処理する。
主記憶部112は、SDRAM(Synchronous Dynamic Random Access Memory)などにより構成される高速アクセス可能な記憶装置である。主記憶部112では、制御部111が処理する画像データや印刷データが記憶されるほか、制御部111が実行するソフトウェアプログラムが記憶される。また主記憶部112には、後述のプログラマブル処理部400に書き込まれる回路情報も記憶される。すなわち、主記憶部112は、少なくとも、第1処理部110(制御部111)によるジョブ処理で用いられる論理回路の回路情報と、第2処理部120(制御部121)によるジョブ処理で用いられる論理回路の回路情報を記憶する。SDRAMで構成された主記憶部112は揮発性メモリであるため、主記憶部112に記憶されるデータは、次の補助記憶部113から読み出されて一時的に記憶されることになる。
補助記憶部113は、ハードディスクやフラッシュメモリなどの不揮発性の記憶装置であり、主記憶部112に読み出される画像データ、印刷データ、ソフトウェアプログラム、回路情報などが格納される。
外部IF部114は、Ethernet(登録商標)やUSB(Universal Serial Bus)に対応したインターフェースである。なお図1において、第1処理部110は外部IF部114を介して第2処理部120と接続されているが、ネットワークサーバやクライアントPCといった外部情報端末と接続されても構わない。
操作表示部115は、表示機能と操作機能を兼ね揃えたタッチスクリーン等のデバイスであり、第1処理部110のユーザインターフェース部として機能する。なお、液晶ディスプレイとハードキーを組み合わせて操作表示部115を構成してもよい。
以上の各部がシステムバス116を介して相互に電気的に接続される。
第2処理部120は第1処理部110とは異なる種類の処理の実行や、同種の処理でもより高速に実行できるように構成されている。第2処理部120は一般に、アドオンハードウェアやアクセラレータなどと呼ばれる。以下、第2処理部120の内部ブロックを説明する。
制御部121は、第2処理部120を制御するための中央処理装置(CPU)である。制御部121は、PCIeバスと接続するポートを少なくとも1ポート備える。このPCIeのポートは、PCIeバスを介して、後述のプログラマブル処理部400の備えるPCIe IP403(後述の第2ポート)と電気的に接続されている。制御部121は、このPCIeのポートから、PCIeのバスを介して、プログラマブル処理部400に対して、ジョブで処理すべきデータを送信する。例えば、制御部121は、第2のジョブで処理すべきデータをPCIeバス経由でプログラマブル処理部400(後述の第2ポート)に送信することで、プログラマブル処理部400に構成された第2の論理回路を用いてそのデータ(すなわち第2のジョブ)を処理する。なお後述するように、第2の論理回路は、制御部111がPCIeバス経由でプログラマブル処理部400(後述の第2ポート)に送信した第2の回路情報に従って、プログラマブル処理部400に構成されている。
また、本実施例の制御部121は、制御部間通信用I/F(インターフェース)132によって制御部111と直接に接続されている。しかし、制御部121は、制御部121が制御部111に対して信号を通知できるように、制御部111と電気的に接続されていればよい。
主記憶部122は、SDRAMなどにより構成される高速アクセス可能な記憶装置である。主記憶部122では、制御部121が処理するデータが展開されるほか、制御部121が実行するソフトウェアが展開される。
補助記憶部123は、フラッシュメモリなどの不揮発性の記憶装置であり、画像データ、ソフトウェアなどが格納される。
外部IF部124は、Ethernet(登録商標)やUSBに対応したインターフェースである。なお図1において、第2処理部120は外部IF部124を介して第1処理部110のみと接続されているが、ネットワークサーバやクライアントPCといった外部情報端末と接続されても構わない。
デバイスIO(入出力)部124は、USBやThunderbolt(登録商標)等のデータ通信用バス規格に対応したデータ入出力部である。例えば、周囲の温度をモニタリングする温度センサーや、周囲の状況を画像イメージとして取得するイメージセンサー等を接続することが可能である。
以上の各部がシステムバス127を介して相互に電気的に接続される。
プログラマブル処理部400は、インターフェース130を介して制御部111と接続し、インターフェース131を介して制御部121と接続する。インターフェース130および131のそれぞれは、PCIeバスおよびFPGA制御バスである。プログラマブル処理部400の詳細ついては図4を用いて後述する。
作動記憶部126は、SDRAMなどにより構成される高速アクセス可能な記憶装置であり、プログラマブル処理部400と接続されワークメモリデバイスとして機能する。
制御部間通信用I/F132は、USBやThunderbolt等のデータ通信用バスであり、制御部間でのジョブの制御、コンフィギュレーションの制御情報等に用いられる。ただし画像処理システム100の変形例として、制御部間通信用I/F132を備えずに、外部IF部124や外部IF114を介して複数の制御部間でデータ通信を行っても良い。
以上が本実施例における画像処理システム100の全体ブロック図である。
<プログラマブル処理部400構成>
プログラマブル処理部400は、内部の論理回路構成がプログラミング可能なプログラマブルロジックデバイスである。本実施例では、プログラマブル処理部400はFPGAを例に説明するが、CPLD等の論理回路構成がプログラミング可能なプログラマブルロジックデバイスであれば良い。
また本実施例のプログラマブル処理部400は、不図示のコンフィギュレーションメモリとファブリック402を含む。ファブリック402は、複数の論理ブロック、配線領域を有する。1つの論理ブロックは、入力に対する出力を決定するルックアップテーブルと、出力を保持するレジスタとを有する。配線領域は、論理ブロックどうしや、論理ブロックと外部デバイスへのインターフェース(PCIeのIPコアなど)とを接続する。回路情報がプログラマブル処理部400に書き込まれると、各論理ブロックに含まれるルックアップテーブルや、配線領域の接続状態が変更されて論理回路が構成される。また、ファブリック402は、複数の領域に区分けされ、各領域は、他の領域に構成されている論理回路の内容に影響を与えずに、動的に再構成可能である。各領域は、領域を一意に特定するための情報(識別子PR1、PR2、など)によって一意に特定される。
図4は、本実施例におけるプログラマブル処理部400(FPGA)の内部ブロック図である。プログラマブル処理部400は、コンフィギュレーションコントローラ401、ファブリック402、PCIe IP403、メインコントローラIP404を含む。
コンフィギュレーションコントローラ401は、制御部111から受け取った回路情報のプログラマブル処理部400への書き込み(コンフィギュレーション)を行う。コンフィギュレーションコントローラ401は、ファブリック402のコンフィギュレーションが完了したことを検出すると、コンフィギュレーション完了を示す信号であるInitDone信号を、制御部111に出力する。
ファブリック402には、回路情報に従った論理回路が構成される。本実施例では、ファブリック402内に複数の領域(PR1、PR2、等)があらかじめ用意されており、各領域に論理回路の再構成が行える。ファブリック402内部のProcDone_Register0およびProcDone_Register1は、コンフィギュレーションされた論理回路で実行される処理の実行終了ステータスを示す情報を保持するレジスタである。ProcDone_Register0からのProcDone_0信号は制御部111へ出力され、ProcDone_Register1からのProcDone_1信号は制御部121へ出力される。
PCIe IP403は、PCIeのPHY等を含むプロトコルスタックである。このPCIe IP403は、少なくとも2つ以上のPCIeのIPコアを有し、各IPコアは対応するPCIe接続を実現する。本実施例のPCIe IP403は、ファブリック402に接続されている2つのPCIeのIPコア(第1ポート、第2ポート)を有する。第1ポートによって制御部111とファブリック402との間のPCIe接続が実現され、第2ポートによって制御部121とファブリック402との間のPCIe接続が実現される。
図4のPCIe_0信号、PCIe_1信号は、各ポートに接続されるPCIeバスを介してデータの送受信信号およびクロック信号を示している。PCIe IP403は、PCIe_0信号を制御部111と送受信し、PCIe_1信号を制御部121へ送受信する。これらの信号は、制御部111または制御部121と、プログラマブル処理部400間のデータ通信に用いられる。特にPCIe_0信号は、制御部111から送信される回路情報を、コンフィギュレーションのために受信する際にも用いられる。すなわち、制御部111は、PCIeバスを介して、プログラマブル処理部400へ、回路情報およびその回路情報に従ったコンフィギュレーションの指示を送信できる。具体的には制御部111は、コンフィギュレーションが可能かをプログラマブル処理部400に問い合わせる。そして制御部111は、その応答としてプログラマブル処理部400からPCIeバス経由でコンフィギュレーションが可能であることを示す情報を受信したことに基づいて回路情報を送信する。以上によって制御部111は、プログラマブル処理部400に対してコンフィギュレーションの実行を指示する。
しかし、PCIe_1信号は、制御部121から回路情報をコンフィギュレーションのために受信することには使用できない。すなわち、制御部121は、PCIeバスを介して、プログラマブル処理部400へコンフィギュレーションの指示を送信しない(できない)ように構成されている。
言い換えれば、プログラマブル処理部400は、制御部111から送信される回路情報に従って論理回路をファブリック402に構成することが可能であるが、制御部121から送信される回路情報に従って論理回路をファブリック402に構成することが不可能であるように設定されている。そのため、制御部111は、制御部111によるジョブの処理において用いられる論理回路の回路情報をPCIeバス(インターフェース130)経由でプログラマブル処理部400へ送信する。加えて、制御部111は、制御部121によるジョブの処理において用いられる論理回路の回路情報も、PCIeバス(インターフェース130)経由でプログラマブル処理部400へ送信する。
メモリコントローラIP404は、DDR(Double−Data−Rate)規格等に対応したPHYやコントローラを含むメモリインターフェースである。図4のDRAM信号は、データ信号、アドレス信号、クロック信号等を示している。DRAM信号は作動記憶部126へ出力される。
<ジョブデータ構成>
図2(A)は、ジョブデータのデータ構成例である。ジョブデータとは、第1処理部110あるいは第2処理部120において実行されるジョブごとに生成されるデータである。ジョブデータにはジョブID、ジョブ要求機能、ジョブ設定パラメータといった情報が含まれる。
ジョブIDは、ジョブごとに固有の情報であり、ジョブIDを参照することでジョブデータを一意に特定することが可能である。
ジョブ要求機能は、当該ジョブを実行するために必要な機能を示す情報である。詳細は後述する。
ジョブ設定パラメータは、画像処理部設定データと画像ソースから構成される。画像処理部設定データとは、操作表示部115や外部情報端末、あるいは既に実行中のジョブを起点に、更に別のジョブデータが生成される際に設定される値であり、ユーザによって選択もしくは任意入力された調整パラメータや、予め記録されている画像処理用パラメータの値である。例えば、濃度値や、モノクロかフルカラーかの選択情報などが該当する。画像データソースは、当該ジョブで処理される対象としての画像データが記憶されている場所や画像データの形式を示すものである。例えば、主記憶部112に記憶されている画像データを示したり、外部デバイスからストリーム入力される画像データを示したりする。画像データの形式はRAWデータであってもよいし、JPEGやJBIG、TIFFなどの画像データフォーマットでもよく、データ形式を問わない。
図2(B)は、第1処理部110側で発生したジョブにおける、ジョブ要求機能と、その機能に関連する情報を対応付けたジョブ要求機能対応テーブルの一例である。このテーブルは補助記憶部113に記憶されており、第1処理部110の起動時に制御部111が補助記憶部113から読み出して主記憶部112に記憶する。
ジョブ要求機能の列には、画像処理システム100で処理可能な機能が示されている。サポートデバイスの列には、対応するジョブ要求機能を実行可能なデバイスが示されている。プログラマブル処理部利用の列には、対応するジョブ要求機能を実行する際に、プログラマブル処理部を利用する必要があるかどうかが示されている。回路情報の列には、対応するジョブ要求機能を実行する際に必要な回路情報を一意に特定できる情報が示されている。制御部111は、ジョブデータ内のジョブ要求機能の情報と、図2(B)のジョブ要求機能対応テーブルとに基づいて、当該ジョブ要求機能を実現するためのデバイスや回路情報を決定することができる。
図2(C)は、第2処理部120側で実行するジョブにおける、ジョブ要求機能と、その機能に関連する情報を対応付けたジョブ要求機能対応テーブルの一例である。このテーブルは補助記憶部123に記憶されており、第2処理部120の起動時に制御部121が補助記憶部123から読み出して主記憶部122に記憶する。なお、第2処理部120側で実行するジョブとは、第1処理部110から第2処理部120に割り振られた処理の他にも、第2処理部120で発生したジョブも含んでいる。
ジョブ要求機能の列には、当該画像処理システムで処理可能な機能が示されている。プログラマブル処理部利用の列には、対応するジョブ要求機能を実行する際に、を利用する必要があるかどうかが示されている。回路情報の列には、対応するジョブ要求機能を実行する際に必要な回路情報を一意に特定できる情報が示されている。制御部121は、ジョブデータ内のジョブ要求機能の情報と、図2(C)のジョブ要求機能対応テーブルとに基づいて、当該ジョブ要求機能を実現するためのデバイスや回路情報を決定することができる。ただし、第2処理部120で発生したジョブにおける、ジョブ要求機能対応テーブルで管理される情報は、第1処理部110が持つジョブ要求機能対応テーブルと同一のデータでも良い。
<プログラマブル処理部400の構成情報>
図3(A)、(B)はプログラマブル処理部400に構成されている論理回路を示す構成情報の一例である。この構成情報は、制御部111によって主記憶部112に記憶される。また制御部121もこの構成情報を主記憶部122に記憶する。そうすることで、制御部111も制御部121も、プログラマブル処理部400にその時点で構成されている論理回路の機能を、他の制御部に問い合わせることなく独立して知ることができる。すなわち、第1処理部110(制御部111)は、プログラマブル処理部400のコンフィギュレーションを行う際に、構成情報を参照して、回路情報が書き込まれることで論理回路が構成されるファブリック402上の領域を決定できる。例えば、どのデバイスからも利用されていない論理回路を構成するファブリック402上の領域を特定し、その特定された領域に別の論理回路を構成すべく、回路情報を書き込むことができる。第2処理部120(制御部121)も同様である。すなわち、第2処理部120で発生したジョブを実行するためにプログラマブル処理部400を利用する際に、制御部121は、構成情報を参照して、プログラマブル処理部400のコンフィギュレーションが必要か否かを判定できる。コンフィギュレーションが必要であると判定された場合に、制御部121は、どの領域にどの論理回路を構成すべく、どの回路情報を書き込むかを、制御部間通信用I/F132を介して制御部111に指示するようにしても良い。主記憶部112、122に記憶される各構成情報は、プログラマブル処理部400に構成される論理回路が変わるたびに更新される。
まずは図3(A)について説明し、図3(B)については後述する。
図3(A)に示される構成情報は、3つの情報(1)、(2)、(3)を1レコードとして含む。
情報(1):PR位置の列(図3の左列)の情報は、プログラマブル処理部400のファブリック402上の各領域(PR:Partial Region)の位置を特定するための情報である。この各領域には、論理回路を構成することができる。この情報は、領域の識別子(領域名など)や、論理回路へアクセス可能なアドレスデータなど、ファブリック402上の各領域を特定できる情報であれば良い。
情報(2):サポートデバイスの列(図3の中列)の情報は、ファブリック402上の領域に構成されている論理回路を利用中のデバイスを特定するための情報である。この情報は、本実施例では「第1処理部」、「第2処理部」、あるいは、「非該当」(図3(A)では「−」で示されている)のいずれかである。
情報(3):回路情報の列(図3の右列)の情報は、ファブリック402上の対応領域に構成されている論理回路の回路情報を特定するための情報である。例えば、回路情報の識別子(データファイル名など)や、データが記憶されている場所などである。
なお、本実施例では、構成情報は第1処理部110、第2処理部120両方に備えられているが、これに限らない。例えば、第1処理部110もしくは第2処理部120どちらか一方の処理部の主記憶部に構成情報が記憶されていて、他方の処理部によって外部IF114や外部IF124を介して参照されるように構成されても良い。
<実施例1の制御について>
実施例1の制御の説明をする上で、以下のように説明していく。
図5を用いて、制御部121の制御フローを説明する。
図6を用いて、制御部111の制御フローを説明する。
図7を用いて、制御部111、制御部121、プログラマブル処理部400が連携して動作した処理フローについて説明する。
<制御部121の制御フロー>
図5は、制御部121の制御フローを示すフローチャートである。本フローは主記憶部122にロードされたプログラムに従って制御部121により実行される。
S500では、制御部121は、ジョブの発生を検知し、図2(A)に示したジョブデータから、ジョブ要求機能を取得する。
ジョブの発生とは、ジョブデータが、制御部121にて実行されるアプリケーションにより生成されることである。あるいは、他の制御部(例えば制御部111)によって生成されたジョブデータを制御部121が受信することである。例えば、新たなカメラデバイスがデバイスIO部125に接続され、カメラデバイスから送られてくる画像データの処理が新たに必要になった場合等に、カメラデバイスの画像処理を要求機能とした新たなジョブが生成される。そしてカメラ画像処理が行えるようにコンフィギュレーションが行われるなどの所望の処理が開始される。なお、接続されるデバイスはカメラに限ったものでは無い。さらに、ジョブ生成の起点となるイベントは、デバイスIO部125に、デバイスが接続された時に限らない。
S501では、制御部121は、S500で取得したジョブ要求機能と図2(C)に示したジョブ要求機能対応テーブルとからプログラマブル処理部400の利用を行うか否かを判断する。具体的には制御部121が、S500で取得したジョブ要求機能を含む図2(C)のレコードを特定し、特定されたレコードのプログラマブル処理部利用の列を参照する。「する」であれば、制御部121はプログラマブル処理部400を利用すると判定し、処理はS502へ進む。一方、「しない」であれば、制御部121はプログラマブル処理部400を利用しないと判定し、処理は終了する。
S502では、制御部121は、主記憶部122に記憶されている構成情報(図3(A))を確認する。具体的には、制御部121は、S500で取得したジョブ要求機能を含む図2(C)のレコードを探す。もし該当するレコードがなければ、制御部121は、サポートデバイスの情報として「非該当」を取得する。もし該当するレコードがあれば、制御部121は、その図2(C)のレコードの回路情報の列を参照し、回路情報を特定するための情報を取得する。次に制御部121は、その取得された情報を含む図3(A)の構成情報のレコードを特定し、特定されたレコードのサポートデバイスの列の情報を取得する。例えば、ジョブ要求機能が「センサー処理2」であれば、図2(C)のレコードの回路情報の列は、「ADV_Sencing.config」「ADV_Img_Process01.config」「ADV_Img_Process02.config」の3つの情報を含む。そのうちの「ADV_Sencing.config」については、図3(A)の構成情報に該当するレコードがないので、「非該当」という情報が取得される。
S503では、制御部121は、S502で取得された情報が「第1処理部」あるいは「非該当」である場合に、コンフィギュレーションが必要であると判定し、処理をS504へ進める。一方、制御部121は、S502で参照されたサポートデバイスが第2処理部である場合に、コンフィギュレーションが不要であると判定し、処理をS508へ進める。
S504では、制御部121は、制御部間通信用I/F132を介して、制御部111にコンフィギュレーション依頼を行う。このコンフィギュレーション依頼には、S500で取得したジョブ要求機能を含む図2(C)のレコードの回路情報の列の情報(必要な回路情報を特定するための情報)が含まれる。例えば、ジョブ要求機能が「センサー処理2」であれば、「ADV_Sencing.config」「ADV_Img_Process01.config」「ADV_Img_Process02.config」の3つの情報がコンフィギュレーション依頼に含まれる。そして処理はS506へ進む。
S506では、制御部121は、制御部間通信用I/F132を介して、制御部111からコンフィギュレーション完了通知を受信したかを判定する。受信したならば処理はS507へ進むが、受信しなかったならば処理はS506へとループする。すなわち、コンフィギュレーション完了通知を受信するまで処理は待機される。なおコンフィギュレーション完了通知には、制御部121に記憶されている構成情報を更新するために用いられる情報(どのPR位置に、どのサポートデバイスが利用中の、どの回路情報による論理回路が構成されたかを示す情報)が含まれる。
S507では、制御部は、主記憶部122に記憶されている構成情報(図3(A))を、コンフィギュレーション完了通知を受けて更新する。例えば、コンフィギュレーション完了通知には、「PR6の領域に「ADV_Sencing.config」に対応する論理回路が構成され、第2処理部が利用中である」ということを示す情報が含まれる。すると、制御部121は、主記憶部122の構成情報を、図3(A)から図3(B)に更新する。すなわち、主記憶部122の構成情報のPR6のレコードが更新される。そして処理はS508へ進む。
S508では、制御部121は、プログラマブル処理部400のファブリック402に構成されている所望の論理回路を用いて、S500で発生したジョブの処理を行う。すなわち制御部121は、プログラマブル処理部400の論理回路を利用してジョブを処理する(協調処理を実行する)。ファブリック402に構成されたどの論理回路を用いるかは、コンフィギュレーション完了通知に含まれる情報のうち、どのPR位置に論理回路が構成されたかを示す情報に基づいて決定される。この協調処理において、制御部121は、ジョブで処理すべきデータを、PCIeバス経由でプログラマブル処理部400(第2ポート)へ送信する。そしてプログラマブル処理部400(第2ポート)は、処理結果のデータを制御部121へ送信してジョブの実行を終了する。ジョブの実行が終了する場合には、プログラマブル処理部400のProcDone_Register1からProcDone_1信号が、制御部121に対して送信される。
S509では、制御部121は、協調処理が完了したかを判定する。具体的には制御部121は、ProcDone_1信号を受信したかを判定し、受信されていれば本フローを終了し、そうでなければ処理をS508へループする。すなわち、協調処理によるジョブの処理が終了するまで処理は待機される。
以上が制御部121の制御フローの説明である。
<制御部111の制御フロー>
図6は、制御部111の制御フローを示すフローチャートである。本フローは主記憶部112にロードされたプログラムに従って制御部111により実行される。
S600では、制御部111は、制御部間通信用I/F132を介して、制御部121からS504のコンフィギュレーション依頼を受信したかを判定する。受信した場合に、処理はS602へ進むが、受信しなかった場合、処理はS600へとループする。すなわち、コンフィギュレーション依頼を受信するまで処理は待機される。
S601では、制御部111は、S600で受信されたコンフィギュレーション依頼に含まれる全ての情報(回路情報を特定するための情報)のそれぞれを確認したか判定する。例えばコンフィギュレーション依頼に「ADV_Sencing.config」「ADV_Img_Process01.config」「ADV_Img_Process02.config」の3つの情報が含まれている場合、各情報について、後続の処理S602以降の処理を行ったかが判定される。全ての情報が確認されていたならば処理はS606へ進み、そうでなければ制御部111は、コンフィギュレーション依頼に含まれる情報のうちで未確認の情報を1つ特定し、その特定された情報についてS602以降の処理を行う。
S602では、制御部111は、主記憶部112に記憶されている構成情報(図3(A))を確認する。具体的には、制御部111は、S601で特定された情報(回路情報を特定するための情報)が含まれるレコードを図3(A)の構成情報から探す。
もし該当するレコードがなければ、制御部111は、所望の論理回路が構成されていないので、その回路情報に従ったコンフィギュレーションが必要であると判定する。
もし該当するレコードがあれば、制御部111は、そのレコードのサポートデバイスの列の情報を参照し、その情報によって示されるサポートデバイスが、「コンフィギュレーション依頼を送信した処理部(本実施例では第2処理部)」あるいは「非該当」であるかを判定する。
もしサポートデバイスが「依頼を送信した処理部」あるいは「非該当」であれば、「依頼を送信した処理部」がすぐに利用可能な状態で、所望の論理回路が既に構成されている。したがって制御部111は、その回路情報に従ったコンフィギュレーションが不要であると判定する。
そうではなくサポートデバイスが「依頼を送信した処理部とは異なる処理部(本実施例では第1処理部)」であれば、所望の論理回路が既に構成されているものの、「依頼を送信した処理部」がすぐに利用可能な状態ではない。したがって制御部111は、その回路情報に従ったコンフィギュレーションが必要であると判定する。
S603では、制御部111は、S602での判定結果に基づいて、処理を分岐させる。すなわち、制御部111は、回路情報に従ったコンフィギュレーションが必要であれば処理をS604へ進め、そうでなければ処理をS601に進める。コンフィギュレーション依頼を受信した上でここでもコンフィギュレーションの要否を判定しているのは、コンフィギュレーション要否を判定してS503の時点とはプログラマブル処理部400のコンフィギュレーションの状態が変化している可能性があるためである。例えば、S503の時点では制御部111が論理回路を利用しているためにコンフィギュレーションが必要と判断されたが、S603の時点で制御部111による論理回路の利用が終了していると、コンフィギュレーションは不要と判定される。
S604では、制御部111は、S601で特定された情報(回路情報を特定するための情報)に基づいて、プログラマブル処理部400にコンフィギュレーションの実行を指示する。具体的には、まず制御部111は、書き込まれるべき回路情報(例えばADV_Sencing.config)を、S601で特定された情報から特定する。そして制御部111は、論理回路が構成されるべきファブリック402の空き領域(例えばPR6の領域)を探し、コンフィギュレーションコントローラ401に対してその領域を指定する。そして制御部111は、ファブリックコントローラ401に対して、PCIe_0信号を用いてPCIe IP403の第1ポート経由で、ファブリック402の領域(例えばPR6の領域)に構成されるべき論理回路の回路情報を送信することを通知する。そして制御部111は、主記憶部112に記憶されている回路情報をPCIe IP403の第1ポート経由でプログラマブル処理部400に送信する。すると、コンフィギュレーションコントローラ401は、PCIe IP403の第1ポート経由で受信した回路情報をプログラマブル処理部400に書き込む。以上の手順で、コンフィギュレーションが実行される。コンフィギュレーションコントローラ401は、コンフィギュレーションが完了すると、InitDone信号を、制御部111に送信する。
S605では、制御部111は、プログラマブル処理部400からInitDone信号を受信したかを判定する。受信していれば、処理はS601へ進み、そうでなければ処理はS605へループする。すなわち、InitDone信号を受信するまで処理は待機される。
S606では、制御部111は、S600で受信されたコンフィギュレーション依頼に含まれる全ての情報(回路情報を特定するための情報)について、主記憶部112に記憶されている構成情報(図3(A)を最新の情報に更新する。この更新の様子は2通りある。
1つ目は、S601で特定された情報について、S604において、コンフィギュレーションの指示が行われた場合。
2つ目は、S601で特定された情報について、S603において、サポートデバイスが「コンフィギュレーション依頼を送信した処理部」あるいは「非該当」であったために、コンフィギュレーションが不要であると判定された場合。
1つ目の場合は、制御部111は、S601で特定された情報について、構成情報(図3(A))を、コンフィギュレーション後のプログラマブル回路の構成を反映した構成情報(例えば図3(B))に更新する。例えば、サポートデバイスが第2処理部であるPR6の領域に対してADV_Sencing.configによって特定された回路情報が書き込まれていることを示す情報が追加される。
一方2つ目の場合は、制御部111は、S601で特定された情報について、構成情報のサポートデバイスの列だけを更新する。これは、既に制御部121が必要な論理回路がファブリック402に構成されてはいるのでコンフィギュレーションは実行されはしなかったが、サポートデバイスの情報は更新しておく必要があるからである。
S607では、制御部111は、制御部間通信用I/F132を介して、コンフィギュレーション完了通知を制御部121に送信する。ここで、S606で述べた2つの場合について、コンフィギュレーション完了通知に含まれる情報が異なることに注意されたい。
前述の1つ目の場合においては、制御部111は、コンフィギュレーション完了通知に、コンフィギュレーションによって変更されたファブリック402に関する情報を含める。すなわち、どのPR位置に、どのサポートデバイスが利用中の、どの回路情報による論理回路が構成されたかを示す情報が、完了通知に含まれる。
一方前述の2つ目の場合においては、制御部111は、コンフィギュレーション完了通知に、主記憶部112に記憶されている構成情報において、サポートデバイスの列の情報が変更されたレコードの情報を含める。
以上が本実施例における、制御部111の制御フローの説明である。
(実施例2)
実施例1によれば、制御部121で処理すべきジョブが発生したことが検知されたことに基づいて、制御部111は、そのジョブが制御部121で処理されるべく、そのジョブの処理に必要な論理回路の回路情報を、プログラマブル処理部400に送信する。すなわち、実施例1では、「制御部121で処理すべきジョブの発生が検知された後」に、コンフィギュレーション処理が開始される。
本実施例では、「制御部121で処理すべきジョブの発生が検知される前」に、コンフィギュレーション処理が開始される。
これは、図8のフローチャートの処理が実行されることで実現される。図8のフローチャートの処理は、主記憶部112にロードされたプログラムに従って制御部111により実行される。すなわち、制御部111が、図6のフローチャートの処理S600における処理の待機中に、先行コンフィギュレーション処理(S800)を行うことで実現される。
先行コンフィギュレーション処理とは、制御部121が処理すべきジョブの発生が検知される前に、制御部121がそのジョブの処理で利用する論理回路の回路情報を、制御部111がプログラマブル処理部400に送信する処理である。先行コンフィギュレーション処理(S800)の詳細は、図9のフローチャートを用いて説明する。
このように先行コンフィギュレーション処理を行うことによって、本実施例では、実施例1と同様に、制御部111は、制御部121がジョブの処理で利用する論理回路の回路情報を、プログラマブル処理部400に送信できる。本実施例ではさらに、制御部121が処理すべきジョブの発生が検知される前にコンフィギュレーション処理が開始されるので、ジョブの発生が検知されてからコンフィギュレーション処理を開始する場合よりも早くコンフィギュレーション処理が完了できる。すなわち、制御部121による論理回路を利用したジョブの処理の開始を早めることができる。また制御部111が処理するジョブについても同様に、論理回路を利用したジョブの処理開始を早めることができる。
<先行コンフィギュレーション処理>
先行コンフィギュレーション処理について、図7、図9を用いて説明する。
図7は、本実施例の先行コンフィギュレーション処理の実行にあたって用いられる状態遷移テーブルの一例である。この状態遷移テーブルを用いることで、システムの現在の状態から移行される次の状態において発生するジョブの処理で利用される論理回路(特に、制御部121によるジョブの処理で利用される論理回路)が予測される。そして、利用が予測されるその論理回路の回路情報を、ジョブ(特に制御部121が処理すべきジョブ)の発生が検知される前に、制御部111がプログラマブル処理部400に送信するようにする。この一連のフローの具体的な処理が図9のフローチャートに示される。
[状態遷移テーブル]
状態遷移テーブルの詳細を、図7を用いて説明する。本実施例において、状態遷移テーブルは主記憶部112に記憶されており、制御部111は、画像処理システム100の現在の状態(状態テーブル701)に応じて、適宜、適切な状態遷移テーブル702を取得する。状態遷移テーブル702は、画像処理システム100(特に第1処理部110)の現在の状態から移行しうる移行先の状態に関するテーブルである。
状態テーブル701は主記憶部112に記憶され、制御部111によって管理されている。すなわち、制御部111は、画像処理システム100の状態を所定のタイミングで監視し、システムの状態に関する情報で状態テーブル701を更新する。このテーブル701には、画像処理システム100の現在の状態、現在の状態になってからの経過時間、現在の状態が特定の処理を行うものであればその処理の進行度を含む。図7のテーブル701では、システムの現在の状態は、特定の処理を行っていない状態を示す「Idle」であり、その状態になってからの経過時間は「3分(3min)」であり、現在の状態は特定の処理を行っていないので処理進行度は「空欄」である。
状態遷移テーブル702には、移行先候補、回路情報、サポートデバイスの列がある。移行先候補の列には、状態テーブル701に示される「現在の状態」から移行しうる、移行先の状態の候補が示される。すなわち状態テーブル701の「現在の状態」から適切な状態遷移テーブル702が辿れるように、状態遷移テーブル702は「現在の状態」と関連付けられて記憶されている。そのため移行先候補の内容は固定ではなく、現在の状態に応じて変わる。例えば、状態テーブル701の現在の状態が「Idle」であれば、移行先の状態の候補として、「Sleep」、「Print」、「Scan」が示される状態遷移テーブル702が特定される。
状態遷移テーブル702の移行先候補の1つ1つは、それぞれ異なるレコードに含まれる。レコードには、移行先候補の他、回路情報、サポートデバイスの列がある。ある移行先候補のレコードに含まれる回路情報の列は、その候補となった状態において利用されると予測される論理回路の回路情報を特定するための情報を含む。またサポートデバイスの列は、その候補となった状態において利用されると予測される論理回路を、利用するデバイス(制御部111(第1処理部110)、制御部121(第2処理部120)など)を特定するための情報を含む。例えば、移行先候補「Sleep」を含むレコードの回路情報の列には、システム100(第1処理部110)が状態「Sleep」であるときに、サポートデバイスによって利用されると予測される論理回路の回路情報を特定するための情報(例:識別子「ADV_Sencing.config」)が含まれる。同様に識別子「ADV_Img_Process01.config」「ADV_Img_Process02.config」も同レコードの回路情報の列に含まれる。またそのレコードのサポートデバイスの列には、前述の3つの識別子によって特定される回路情報で実現される論理回路をジョブ処理で利用すると予測される「第2処理部(制御部121のこと)」を特定するための情報が含まれる。
また例えば移行先候補が「Print」であるレコードの回路情報には、3つの識別子
が含まれている。その3つのうちの1つの識別子「ADV_Sencing.config」に対応する論理回路は「第2処理部」によって利用されると予測されている。そこで、同レコード内で、回路情報の識別情報「ADV_Sencing.config」とサポートデバイスの識別情報「第2処理部」とが対応付けられた状態となっている。一方で、残り2つの識別子「ADV_ImgProcess01.config」「ADV_ImgProcess02.config」それぞれに対応する論理回路は、「第2処理部」だけでなく「第1処理部(制御部111のこと)」によっても利用されると予測されている。そこで、同レコード内で、回路情報の2つの識別情報「ADV_ImgProcess01.config」「ADV_ImgProcess02.config」と、サポートデバイスの2つの識別情報「第2処理部」「第1処理部」とが対応付けられた状態となっている。
すなわち状態遷移テーブル702は、画像処理システム100のその時点の状態と、移行先候補に対応した所定の回路情報との関連付けを示す情報として機能している。
[先行コンフィギュレーション処理のフロー]
図9を用いて、先行コンフィギュレーション処理のフローについて説明する。
S900で、制御部111は、画像処理システム100の現在の状態に応じた適切な情報遷移テーブル702を取得し、その取得された状態遷移テーブル702の「回路情報」列の情報を取得する。すなわち、この処理は、複数の回路情報のうちの、画像処理システム100の現在の状態に応じた少なくとも1つの回路情報を特定する処理に対応する。そして処理はS901へ進む。
具体的には、制御部111は、主記憶部112に記憶されている状態テーブル701の「現在の状態」列を参照し、「現在の状態」列の情報に関連付けられている状態遷移テーブル702を、主記憶部112から取得する。例えば、「現在の状態」列の情報が「Idle」であれば、図7に示された状態遷移テーブル702が取得される。次に制御部111は、取得された状態遷移テーブル702の「回路情報」列の情報を取得する。
取得される情報は、例えば、テーブル702の「回路情報」列の全ての情報であっても良い。
あるいは、取得される情報は、制御部111は、テーブル701の「経過時間」列の情報や「処理進行度」の情報を参照し、その参照された情報に基づいて決められても良い。例えば、現在の状態が「Idle」であって「経過時間」が所定の閾値を越えた場合を考える。この場合、制御部111は、状態遷移テーブル702の「移行先候補」列が「Sleep」のレコードの「回路情報」列の情報を取得するが、「Print」および「Scan」のレコードの「回路情報」列の情報を取得しない。これは、システム状態が「Idle」のまま長く続くと、システムの状態が「Sleep」に移行する可能性が、他の状態に移行する可能性よりも高くなると予測できるためである。また例えば、現在の状態が「Scan」であって「処理進行度」が所定の閾値を越えた場合を考える。この場合、制御部111は、状態遷移テーブル702の「移行先候補」列が「Print」のレコードの「回路情報」列の情報を取得するが、「Sleep」のレコードの「回路情報」列の情報を取得しない。これは、システム状態が「Scan」の状態から抜けた直後にシステムの状態が「Sleep」に移行する可能性よりも、「Print」に移行する可能性の方が高いと予測できるためである。このように、状態テーブル701「経過時間」列の情報、「処理進行度」列の情報に基づいて、取得すべき情報を決めることで、後段のコンフィギュレーション処理で、不要な回路情報をプログラマブル処理部400に書き込むことを抑制できる。
S901では、制御部111は、S900で取得された全ての情報(回路情報を特定するための情報)のそれぞれを確認したか判定する。例えばS900で取得された情報に2つの情報が含まれている場合、各情報について、後続の処理S902以降の処理を行ったかが判定される。全ての情報が確認されていたならば処理はS906へ進み、そうでなければ制御部111は、コンフィギュレーション依頼に含まれる情報のうちで未確認の情報を1つ特定し、その特定された情報についてS902以降の処理を行う。
S902〜S907のそれぞれの処理は、既に説明したS602〜S607のそれぞれの処理に対応し、実質的に同等の処理である。違いは次の点である。S602〜S607の処理のそれぞれは、S601で特定された情報(回路情報を特定するための情報)についての処理である。それに対して、S902〜S907の処理のそれぞれは、S901で特定された情報(回路情報を特定するための情報)についての処理である。
以上が本実施例における、制御部111の制御フローの説明である。
<実施例2の変形例>
上記の実施例2では、制御部111が、先行コンフィギュレーション処理(図9のフローチャートの処理)を、コンフィギュレーション依頼の受信待機中(S600における処理待機中)に実行するようにしていた。
本変形例では、画像処理システム100の状態が別の状態に移行するタイミングで実行するようにする。すなわち、制御部111は、画像処理システム100の状態が別の所定状態に移行することを検知する。そしてその検知に応じて制御部111が先行コンフィギュレーション処理を実行する。
例えば、この場合、制御部111は、S902において取得する情報を、その所定状態に対応するレコードの「回路情報」列の情報に決定する。例えば、システム状態が「Idle」から「Sleep」へ移行するタイミングであれば、制御部111は、S902において状態遷移テーブル702の「移行先候補」が「Sleep」のレコードの「回路情報」列の情報のみを取得する。そうすることで、S905のコンフィギュレーション処理で、不要な回路情報のプログラマブル処理部400への書き込みを抑制できる。
ここで説明した変形例、特にシステム状態が「Sleep」へ移行するタイミングで、「Sleep」のレコードの「回路情報」列の情報から特定される回路情報をプログラマブル処理部400に先行して書き込むことには、特別な効果がある。例えば、システム100(第1処理部110)の動作状態が「Sleep」に移行すると、一般的なシステムであれば、システムは低消費電力での動作状態となる。すなわち、状態「Sleep」における消費電力は、状態「Idle」における消費電力より小さい。このような状況において、第1処理部110(制御部111)の動作状態は「Sleep」の低消費電力状態のまま、第2処理部120(制御部121)で発生したジョブを処理したいことがある。
例えばデバイスIO部125にカメラデバイスが接続されて、そのカメラデバイスから送られてくる画像データの画像処理のジョブが第2処理部120(制御部121)で発生した場合である。このような場合に、その画像処理用の論理回路がファブリック402上に予め構成されていれば、第2処理部120(制御部121)は第1処理部110(制御部111)にコンフィギュレーション依頼を送信することなく、ジョブの処理を開始できる。その結果、第1処理部110(制御部111)は、コンフィギュレーション依頼を受け付けないので、コンフィギュレーション処理の実行のためにシステムの動作状態を「Sleep」から移行させることはしない。つまり、低消費電力状態である状態「Sleep」が維持されることになり、システム全体としての消費電力を小さくすることができる。
なお上述の変形例では、先行コンフィギュレーション処理が実行されるタイミングとして、システム状態が「Idle」から「Sleep」へ移行するタイミングを例示したが、これに限定されない。
例えば、第1処理部110(制御部111)が回路情報(第1の回路情報)をPCIeバス経由でプログラマブル処理部400(第1ポート)へ送信することで、その回路情報に対応した論理回路がファブリック402に構成される。そして第1処理部110(制御部111)は、その構成された論理回路を用いて第1のジョブを処理する。このとき画像処理システム100の状態は、第1のジョブの処理が実行中であることを示す状態へ移行する。そして第1処理部110(制御部111)が論理回路を用いて第1のジョブの処理を完了すると、画像処理システム100の状態は、第1のジョブの処理が完了したことを示す状態へ移行する。すなわち、画像処理システム100の状態が、第1のジョブの処理の実行状態から、第1のジョブの処理の完了状態へ移行する。そして、制御部111は、この状態の移行に応じて、第2処理部120(制御部121)による第2のジョブの処理で用いられると予測される特定の論理回路の回路情報を、PCIeバス経由でプログラマブル処理部400(第1ポート)へ送信する。するとプログラマブル処理部400は、第2のジョブの発生より前に、特定の論理回路を構成する。なお特定の論理回路は、どのようなものでも良い。例えば、複数の論理回路のうちで、第2処理部120(制御部121)によって過去に最も頻繁に用いられた論理回路や、ユーザが事前に指定した論理回路であっても良い。なお論理回路の構成先は、ファブリック402に空き領域があれば、その空き領域になされる。空き領域がなければ、制御部111によって最古に利用された論理回路が構成されている領域になされるようにすれば良いし、あるいは、制御部111による使用頻度が最も低い論理回路が構成されている領域になされるようにしても良い。このような構成であっても、第2処理部120(制御部121)が行うジョブ処理において所望の論理回路を速やかに利用させることができる。その結果ジョブ処理の完了を早めることができる。
(実施例3)
実施例2の先行コンフィギュレーション処理は、第1処理部110(制御部111)が起点となることで、実行されていた。すなわち、制御部111が、S601の処理待機中に、システムの動作状態の遷移を予測し、その予測された遷移後のシステムの状態でのジョブ処理で利用されると予測される論理回路の回路情報をプログラマブル処理部400に送信する。
本実施例のシステムは、第2処理部120(制御部121)が起点となって、先行コンフィギュレーション処理を行う。この場合は、S500のジョブ検知前に先行コンフィギュレーション処理が行われる。制御部121による先行コンフィギュレーション処理は、S900〜S903の処理と実質同様の処理を含む。すなわち、制御部121は、S900の処理によって、予測される論理回路の回路情報を特定するための情報を取得する。次に制御部121は取得された各情報について、ファブリック402の構成状態を確認し(S901、S902)、回路情報のコンフィギュレーション処理が必要か否かを判定する(S903)。取得された各情報の全てについて、コンフィギュレーションが必要でなければ処理は終了する。1つの回路情報についてでもコンフィギュレーションが必要であれば、制御部121は、続いてS504〜S507の処理を、その回路情報について行い、処理を終了する。
以上のような先行コンフィギュレーション処理によって、第2処理部120(制御部121)からでも、先行してコンフィギュレーション依頼を、制御部間通信用I/F132を介して、制御部111に送信することができる。
これにより、ジョブの発生前からコンフィギュレーション依頼を行うので、コンフィギュレーション完了を早めることができ、プログラマブル処理部400の論理回路を用いて速やかにジョブを処理することができる。これはジョブを処理するのが制御部111であるか制御部121であるかを問わない。
(その他の実施例)
上述の実施例では、制御部111が、PCIeバス経由で、プログラマブル処理部400(第1ポート)に回路情報やデータを直接に送信していた。しかしながらこれだけに限定せず、制御部111がDMA(Direct Memory Access)コントローラを制御して、回路情報やデータをこのDMAコントローラによってPCIeバス経由で、プログラマブル処理部400(第1ポート)に送信しても良い。
また上述の実施例のプログラマブル処理部400では、制御部121からのPCIeバスを介してのコンフィギュレーションが不可能であった。しかし、本発明は、制御部111および制御部121のそれぞれから、それぞれが対応するPCIeバスを介してのコンフィギュレーションが可能であるプログラマブル処理部400にも適用できる。これにより、コンフィギュレーションの許可および禁止の調停制御を制御部間で行う複雑さを避けることできる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (21)

  1. 回路情報に従って論理回路が構成される回路を有するデバイスと、
    前記デバイスに接続された制御部であって、第1の回路情報に従って前記回路に構成された第1の論理回路を用いて、第1のジョブを処理する第1の制御手段と、
    前記デバイスに接続された制御部であって、第2の回路情報に従って前記回路に構成された第2の論理回路を用いて、第2のジョブを処理する第2の制御手段と、
    を有し、
    前記デバイスは、前記第1の制御手段から送信される回路情報に従って論理回路を前記回路に構成することが可能であり、
    前記第1の制御手段は、前記第1の論理回路の前記回路への構成のために前記第1の回路情報を前記デバイスに送信し、かつ、前記第2の論理回路の前記回路への構成のために前記第2の回路情報を前記デバイスに送信することを特徴とする情報処理システム。
  2. 前記第1の制御手段と接続された記憶手段であって、前記第1の回路情報および前記第2の回路情報を記憶する記憶手段を有することを特徴とする請求項1に記載の情報処理システム。
  3. 前記第1の制御手段は、前記第1のジョブを処理する際に、前記第2の論理回路を用いないことを特徴とする請求項1に記載の情報処理システム。
  4. 前記デバイスは、
    前記第1の制御手段と第1の通信路を介して接続される通信手段であって、前記第1の制御手段からデータを受信する第1の通信手段と、
    前記第2の制御手段と第2の通信路を介して接続される通信手段であって、前記第2の制御手段からデータを受信する第2の通信手段と、
    を有し、
    前記第1の制御手段は、前記第1のジョブの処理において、前記第1の論理回路で処理すべきデータを、前記第1の通信路を介して前記第1の通信手段に送信し、
    前記第2の制御手段は、前記第2のジョブの処理において、前記第2の論理回路で処理すべきデータを、前記第2の通信路を介して前記第2の通信手段に送信することを特徴とする請求項1に記載の情報処理システム。
  5. 前記第1の制御手段は、
    前記第1の論理回路の前記回路への構成のために前記第1の回路情報を、前記第1の通信路を介して前記第1の通信手段に送信し、
    前記第2の論理回路の前記回路への構成のために前記第2の回路情報を、前記第2の通信路を介して前記第2の通信手段に送信することを特徴とする請求項4に記載の情報処理システム。
  6. 前記第1の制御手段は、前記第1の通信路を介して、論理回路の構成の指示を前記デバイスに送信し、
    前記第2の制御手段は、前記第2の通信路を介して、論理回路の構成の指示を前記デバイスに送信しないことを特徴とする請求項4または5に記載の情報処理システム。
  7. 前記第1の通信路は、第1のPCI Expressのバスであり、
    前記第2の通信路は、第2のPCI Expressのバスであることを特徴とする請求項4乃至6の何れか1項に記載の情報処理システム。
  8. 前記第2の制御手段は、前記第2の論理回路の前記回路への構成のために前記第2の回路情報を前記デバイスに送信する依頼を、前記第1の制御手段に送信し、
    前記第1の制御手段は、前記依頼を前記第2の制御手段から受け取ったことに基づいて、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項1乃至7の何れか1項に記載の情報処理システム。
  9. 前記依頼には、前記第2の回路情報を特定するための情報は含まれることを特徴とする請求項8に記載の情報処理システム。
  10. 前記第1の制御手段は、前記回路に構成済みの論理回路を示す情報に基づいて、前記第2の回路情報を送信することを特徴とする請求項9に記載の情報処理システム。
  11. 前記第2の制御手段は、前記第2のジョブの発生の検知に基づいて、前記依頼を前記第1の制御手段に送信することを特徴とする請求項8乃至10の何れか1項に記載の情報処理システム。
  12. 前記第1の制御手段は、前記第2のジョブの発生前に、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項1乃至7の何れか1項に記載の情報処理システム。
  13. 前記第1の制御手段は、前記情報処理システムの状態に基づいて複数の回路情報のうちの少なくとも1つの回路情報を特定し、当該特定された回路情報を前記第2の回路情報として前記デバイスに送信することを特徴とする請求項12に記載の情報処理システム。
  14. 前記情報処理システムの状態と所定の回路情報との関連付けを示す情報を記憶する記憶手段と、
    前記情報処理システムの状態を確認する確認手段と、
    を有し、
    前記第1の制御手段は、前記確認された状態と、前記関連付けを示す情報とに基づいて特定される回路情報を、前記第2の回路情報として前記デバイスに送信することを特徴とする請求項13に記載の情報処理システム。
  15. 前記第1の制御手段は、前記情報処理システムの状態遷移に基づいて、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項13または14に記載の情報処理システム。
  16. 前記第1の制御手段は、前記情報処理システムの状態が第1の消費電力状態から前記第1の消費電力状態よりも低い消費電力状態である第2の消費電力状態へ移行することに基づいて、前記第2の回路情報を前記デバイスに送信する請求項15に記載の情報処理システム。
  17. 前記第1の制御手段は、前記情報処理システムの状態が前記第1のジョブの処理実行中の状態から前記第1のジョブの処理完了の状態へ移行することに基づいて、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項15に記載の情報処理システム。
  18. 前記第1の制御手段は、前記回路に構成されている論理回路を確認し、当該確認結果に基づいて、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項1乃至17の何れか1項に記載の情報処理システム。
  19. 前記第1の制御手段は、
    前記確認結果が、前記第2の回路情報に対応する論理回路が前記回路に既に構成されており、且つ、前記第2の制御手段によって利用可能であることを示す場合に、前記第2の回路情報を前記デバイスに送信せず、
    前記確認結果が、前記第2の回路情報に対応する論理回路が前記回路に既に構成されており、且つ、前記第2の制御手段によって利用不可能であることを示す場合に、前記第2の回路情報を前記デバイスに送信することを特徴とする請求項18に記載の情報処理システム。
  20. 前記デバイスは、FPGA(Field Programmable Gate Array)、あるいは、CPLD(Complex Programmable Logic Device)であることを特徴とする請求項1乃至19の何れか1項に記載の情報処理システム。
  21. 回路情報を特定するための情報を取得し、当該取得された情報に基づいて特定された前記回路情報を送信する第1の制御手段と、
    前記第1の制御手段から送信された前記回路情報を受け取って、当該回路情報に従って論理回路を構成するプログラマブルロジックデバイスと、
    前記プログラマブルロジックデバイスが構成した前記論理回路を用いてジョブを処理する第2の制御手段と、
    を有する情報処理システム。
JP2014249432A 2014-12-09 2014-12-09 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム Pending JP2016111633A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014249432A JP2016111633A (ja) 2014-12-09 2014-12-09 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム
US14/960,562 US9854117B2 (en) 2014-12-09 2015-12-07 Information processing system including device provided with circuit capable of configuring logic circuit according to circuit information and plurality of control units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014249432A JP2016111633A (ja) 2014-12-09 2014-12-09 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム

Publications (1)

Publication Number Publication Date
JP2016111633A true JP2016111633A (ja) 2016-06-20

Family

ID=56095448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014249432A Pending JP2016111633A (ja) 2014-12-09 2014-12-09 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム

Country Status (2)

Country Link
US (1) US9854117B2 (ja)
JP (1) JP2016111633A (ja)

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307458A (en) * 1991-12-23 1994-04-26 Xerox Corporation Input/output coprocessor for printing machine
JP3918382B2 (ja) * 1999-11-18 2007-05-23 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
JP4004052B2 (ja) * 2003-09-24 2007-11-07 株式会社東芝 論理回路装置、プログラマブル論理回路の動作方法
JP4018686B2 (ja) * 2003-12-10 2007-12-05 キヤノン株式会社 情報処理装置および方法並びにプログラム
WO2005073866A2 (en) * 2004-01-21 2005-08-11 Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
US7796588B2 (en) * 2004-07-27 2010-09-14 Canon Kabushiki Kaisha Information processing device, control method thereof, and program
JP4328689B2 (ja) * 2004-08-06 2009-09-09 キヤノン株式会社 画像処理装置および画像処理装置の制御方法
US7495970B1 (en) * 2006-06-02 2009-02-24 Lattice Semiconductor Corporation Flexible memory architectures for programmable logic devices
JP2008287571A (ja) 2007-05-18 2008-11-27 Yaskawa Electric Corp 共有メモリ切替え回路と切替え方法
JP5035344B2 (ja) * 2007-08-15 2012-09-26 富士通株式会社 動的再構成プログラム、該プログラムを記録した記録媒体、動的再構成装置および動的再構成方法
CN102057575A (zh) * 2008-06-05 2011-05-11 松下电器产业株式会社 信号处理装置、信号处理方法、信号处理用集成电路及电视接收机
JP5247542B2 (ja) * 2009-03-05 2013-07-24 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及び、プログラム
JP4862910B2 (ja) * 2009-03-26 2012-01-25 富士ゼロックス株式会社 画像処理装置および画像処理制御プログラム
JP5438358B2 (ja) * 2009-04-13 2014-03-12 キヤノン株式会社 データ処理装置及びその制御方法
JP5441487B2 (ja) * 2009-04-27 2014-03-12 キヤノン株式会社 画像処理装置及びその制御方法
US8639852B2 (en) * 2009-11-13 2014-01-28 Qualcomm Incorporated Burst access protocol
JP2011113212A (ja) * 2009-11-25 2011-06-09 Canon Inc 情報処理装置
JP5504985B2 (ja) * 2010-03-11 2014-05-28 富士ゼロックス株式会社 データ処理装置
JP5534426B2 (ja) * 2010-03-25 2014-07-02 富士ゼロックス株式会社 画像形成装置およびそのプログラム
JP5499979B2 (ja) * 2010-07-30 2014-05-21 株式会社リコー 画像形成装置と画像形成装置の連携シナリオ作成方法とプログラムとコンピュータ読み取り可能な記録媒体
US20120039537A1 (en) * 2010-08-10 2012-02-16 Keys Gregory C Method, apparatus, and system for workflow participation of an imaging device
KR101833337B1 (ko) * 2011-09-09 2018-03-02 에스프린팅솔루션 주식회사 관리 서버, 워크폼을 관리하기 위한 관리 방법 및 기록 매체
JP5051327B1 (ja) * 2012-03-22 2012-10-17 富士ゼロックス株式会社 画像処理装置及びプログラム
JP5943736B2 (ja) * 2012-06-28 2016-07-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
KR101437483B1 (ko) * 2012-11-20 2014-09-04 한국과학기술연구원 로봇 컴포넌트의 동적 재구성 장치 및 방법
US20140192210A1 (en) * 2013-01-04 2014-07-10 Qualcomm Incorporated Mobile device based text detection and tracking
JP5994679B2 (ja) * 2013-02-26 2016-09-21 株式会社ソシオネクスト 処理装置、及び処理装置の制御方法
JP5971214B2 (ja) * 2013-08-16 2016-08-17 富士ゼロックス株式会社 データ処理装置及びデータ処理プログラム
JP2015149025A (ja) * 2014-02-07 2015-08-20 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
JP2015162760A (ja) * 2014-02-26 2015-09-07 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
JP6370063B2 (ja) * 2014-03-04 2018-08-08 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
JP6308821B2 (ja) * 2014-03-13 2018-04-11 キヤノン株式会社 画像処理装置

Also Published As

Publication number Publication date
US9854117B2 (en) 2017-12-26
US20160165084A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
EP3347824A1 (en) Input/output signal bridging and virtualization in a multi-node network
JP2010182242A (ja) 画像形成装置、その制御方法およびプログラム
JP2016081163A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2013190950A (ja) 制御装置、及び起動方法
JP2010134710A (ja) 仮想マシンの移行方法、サーバ、及び、プログラム
JP5729071B2 (ja) 情報処理システム及びプログラム
JP2011138391A (ja) 情報処理装置及び情報処理装置の制御方法
JP6900690B2 (ja) 制御装置
JP5651622B2 (ja) データ伝送装置、データ伝送方法、及びプログラム
JP5518143B2 (ja) 仮想マシンの移行方法、サーバ、プログラム、及び、仮想マシンシステム
JP2016111633A (ja) 回路情報に従って論理回路を構成可能な回路を持つデバイスと、複数の制御手段とを有する情報処理システム
US9413355B2 (en) Information processing apparatus and control method therefor
US9519487B2 (en) System-on-chip and method of operating the same
JP2015018408A (ja) 入出力制御回路及び入出力制御回路における同期制御方法
JP2015036205A (ja) 情報処理装置、情報処理方法及びプログラム
JP6260025B2 (ja) 画像形成システム及び機器設定方法
US10108380B2 (en) Information processing apparatus that acquires information from external apparatus and non-transitory computer readable medium storing program
JP2016133898A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
WO2018076647A1 (zh) 数据处理的方法、装置和片上系统、设备、存储介质
JP6430710B2 (ja) データ転送制御装置及びデータ転送の制御方法
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
JP5672225B2 (ja) ハードウェア管理装置、情報処理装置、ハードウェア管理方法、および、コンピュータ・プログラム
JP6034008B2 (ja) 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
JP6609155B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP6631370B2 (ja) マイクロコンピュータ及び電子制御装置