JP6864721B2 - Information processing device and its control method - Google Patents

Information processing device and its control method Download PDF

Info

Publication number
JP6864721B2
JP6864721B2 JP2019146823A JP2019146823A JP6864721B2 JP 6864721 B2 JP6864721 B2 JP 6864721B2 JP 2019146823 A JP2019146823 A JP 2019146823A JP 2019146823 A JP2019146823 A JP 2019146823A JP 6864721 B2 JP6864721 B2 JP 6864721B2
Authority
JP
Japan
Prior art keywords
circuit
function
region
executing
executes
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.)
Active
Application number
JP2019146823A
Other languages
Japanese (ja)
Other versions
JP2020004429A (en
Inventor
康智 田中
康智 田中
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 JP2019146823A priority Critical patent/JP6864721B2/en
Publication of JP2020004429A publication Critical patent/JP2020004429A/en
Application granted granted Critical
Publication of JP6864721B2 publication Critical patent/JP6864721B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Logic Circuits (AREA)

Description

本発明は、情報処理装置、およびその制御方に関する。
The present invention relates to an information processing apparatus, and a control how.

論理回路を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等の再構成可能回路が良く知られている。一般的に、PLDやFPGAは起動時に、ROM等の不揮発性メモリに格納された回路構成情報を、内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことにより論理回路の切り替えを行う。また、コンフィギュレーションメモリ内の情報は電源切断時に消去されるため、電源投入時には再度、不揮発性メモリから回路構成情報をコンフィギュレーションメモリに書き込むことで、論理回路の再構成を行う必要がある。このように、一度だけ、PLDやFPGAの論理回路の構成を行う方法を静的再構成という。 Reconfigurable circuits such as PLD (Programmable Logic Device) and FPGA (Field Programmable Gate Array) that can change the logic circuit are well known. Generally, a PLD or FPGA switches logic circuits by writing circuit configuration information stored in a non-volatile memory such as a ROM to a configuration memory which is an internal volatile memory at startup. Further, since the information in the configuration memory is erased when the power is turned off, it is necessary to reconfigure the logic circuit by writing the circuit configuration information from the non-volatile memory to the configuration memory again when the power is turned on. In this way, the method of configuring the logic circuit of PLD or FPGA only once is called static reconstruction.

一方で、回路が動作中に論理回路を変更できるFPGA等が開発されてきており、動作中に論理回路を変更する方法を動的再構成という。また、FPGAには、チップ全体ではなく特定の領域だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の論理回路の動作を停止させずに、他の論理回路部分を部分再構成することを動的部分再構成という。 On the other hand, FPGAs and the like that can change the logic circuit while the circuit is operating have been developed, and the method of changing the logic circuit during the operation is called dynamic reconstruction. In addition, some FPGAs can rewrite only a specific area instead of the entire chip, and such rewriting is called partial reconstruction. In particular, partial reconstruction of other logic circuit parts without stopping the operation of the operating logic circuit is called dynamic partial reconstruction.

動的部分再構成では、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、FPGA内の論理回路を部分的に再構成できる。このような動的部分再構成技術を用いることで、FPGA内の一つの領域に複数の論理回路を実装できるため、ハードウェアリソースを時分割多重化した論理回路を実現できる。その結果、少ないハードウェアリソースで、用途に合わせた様々な機能をハードウェアによる高い演算性能を保ったままで柔軟に実現することが可能となる。 In the dynamic partial reconstruction, the logic circuit in the FPGA can be partially reconstructed by rewriting only a part of the configuration memory area instead of rewriting the entire configuration memory at the time of the dynamic partial reconstruction. By using such a dynamic partial reconstruction technique, it is possible to implement a plurality of logic circuits in one area in the FPGA, so that it is possible to realize a logic circuit in which hardware resources are time-division-multiplexed. As a result, it is possible to flexibly realize various functions according to the application with a small amount of hardware resources while maintaining high computing performance by the hardware.

この動的部分再構成を用いた技術として、例えば特許文献1には、パイプライン処理において、パイプラインの先頭の回路から順に再構成可能回路上に再構成して、機能を切り替えながらデータ処理する手法が開示されている。 As a technique using this dynamic partial reconstruction, for example, in Patent Document 1, in pipeline processing, the circuit is reconstructed on a reconfigurable circuit in order from the first circuit of the pipeline, and data processing is performed while switching functions. The method is disclosed.

近年のMFP(Multi Function Printer)等の画像処理装置は、ユーザからの要求に応じた複数の処理(コピージョブ、プリントジョブ、SENDジョブ等)を選択でき、各処理に応じた画像処理はハードウェア又はソフトウェアにより実行される。この画像処理装置の画像処理用のハードウェアにFPGA等の再構成可能回路を採用した場合、上述した様な機能毎に、FPGAの回路構成を動的かつ部分的に切り替えて実現できる。その結果、少ないハードウェアリソースで様々な画像処理機能が実現可能となる。但し、部分再構成を行う構成において、デバイスの故障や電気的なノイズ、書き込みタイミング等の何らかの要因により部分再構成が失敗した場合、必要な回路が構成されないことになり、意図したデータ処理が実現できなくなってしまう。 In recent years, image processing devices such as MFPs (Multi Function Printers) can select multiple processes (copy job, print job, SEND job, etc.) according to the request from the user, and the image processing according to each process is hardware. Or it is executed by software. When a reconfigurable circuit such as an FPGA is used for the image processing hardware of this image processing device, the circuit configuration of the FPGA can be dynamically and partially switched for each of the above-mentioned functions. As a result, various image processing functions can be realized with a small amount of hardware resources. However, in the configuration for partial reconstruction, if the partial reconstruction fails due to some factor such as device failure, electrical noise, write timing, etc., the necessary circuit will not be configured and the intended data processing will be realized. You will not be able to do it.

特開2011−186981号公報Japanese Unexamined Patent Publication No. 2011-186981

上述したように、再構成可能回路を部分再構成しながら使用する場合、部分再構成が失敗すると、その装置のパフォーマンスが劣化してしまう。例えば、特定の画像処理機能が必要なため、ある画像処理機能の部分再構成に何等かの要因で失敗してしまった場合、その画像処理機能を使用することができず処理が停止してしまうことになり、画像処理装置のパフォーマンスが劣化してしまう。そのため、再構成可能回路を部分再構成しながら使用する構成では、部分再構成が失敗する可能性を考慮した実装をする必要がある。 As described above, when the reconfigurable circuit is used while being partially reconfigured, if the partial reconfiguration fails, the performance of the device deteriorates. For example, since a specific image processing function is required, if the partial reconstruction of a certain image processing function fails for some reason, the image processing function cannot be used and the processing stops. As a result, the performance of the image processing device deteriorates. Therefore, in a configuration in which a reconfigurable circuit is used while being partially reconstructed, it is necessary to implement it in consideration of the possibility that the partial reconstruction will fail.

本発明の目的は、上記従来技術の問題点を解決することにある。 An object of the present invention is to solve the above-mentioned problems of the prior art.

本発明の特徴は、回路構成を部分的に再構成可能な再構成可能回路を有する情報処理装置において、再構成可能回路の再構成が失敗した場合に、装置のパフォーマンス劣化を可能な限り抑えることができる技術を提供することにある。
Feature of the present invention, there is provided an information processing apparatus having a partially reconfigurable reconfigurable circuit of the circuit arrangement, when the reconfiguration of the reconfigurable circuit fails, to suppress as much as possible performance deterioration of the device Is to provide the technology that can be used.

上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
少なくとも第1の領域と第2の領域を含む複数の領域を有し、領域ごとに回路を独立して再構成できる情報処理装置において、
前記第1の領域に第1の機能を実行する回路を構成するための第1の回路構成情報と、前記第2の領域に第2の機能を実行する回路を構成するための第2の回路構成情報と、前記第2の領域に前記第1の機能を実行する回路を構成するための第3の回路構成情報とを記憶する記憶手段と、
前記記憶手段に記憶された前記第1の回路構成情報に基づき、前記第1の領域に前記第1の機能を実行するための回路を構成し、前記記憶手段に記憶された前記第2の回路構成情報に基づき、前記第2の領域に前記第2の機能を実行するための回路を構成する制御手段と、
前記制御手段による前記第1の領域への前記第1の機能を実行する回路を構成する処理が失敗したことを検知する検知手段と、を有し、
前記制御手段は、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数未満である場合、前記検知手段による検知に基づき、前記第2の領域に構成された回路を再構成することなく、前記第1の機能を実行するための回路を前記第1の領域に構成する処理を再度行い、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数以上である場合、前記検知手段の検知手段による検知に基づき、前記第3の回路構成情報に従って、前記第2の領域に前記第1の機能を実行する回路を構成する処理を行うことを特徴とする。
The image processing apparatus according to one aspect of the present invention in order to achieve the above object has the following configuration. That is,
In an information processing device having a plurality of regions including at least a first region and a second region, and the circuit can be independently reconfigured for each region.
A first circuit configuration information for configuring a circuit that executes a first function in the first region, and a second circuit for configuring a circuit that executes a second function in the second region. A storage means for storing configuration information and a third circuit configuration information for configuring a circuit that executes the first function in the second region.
Based on the first circuit configuration information stored in the storage means, a circuit for executing the first function is configured in the first region, and the second circuit stored in the storage means. Based on the configuration information, the control means for configuring the circuit for executing the second function in the second region, and the control means.
It has a detection means for detecting that the process of forming a circuit for executing the first function in the first region by the control means has failed.
When the number of times that the detection means has detected that the process of forming the circuit for executing the first function in the first region has failed is less than a predetermined number, the control means detects it by the detection means. based, wherein, without the need to reconfigure the circuit configured in the second region, it has again the row processing included in a circuit for performing the first function to the first region, said detecting means the When the number of times that the process of forming the circuit that executes the first function in the first region has been detected has failed is a predetermined number or more, the third circuit is based on the detection by the detection means of the detection means. It is characterized in that a process of forming a circuit for executing the first function is performed in the second region according to the configuration information.

本発明によれば、回路構成を部分的に再構成可能な再構成可能回路を有する情報処理装置において、再構成可能回路の再構成が失敗した場合に、装置のパフォーマンス劣化を可能な限り抑えることができるという効果がある。
According to the present invention, in the information processing apparatus having a partially reconfigurable reconfigurable circuit of the circuit arrangement, when the reconfiguration of the reconfigurable circuit fails, to suppress as much as possible performance deterioration of the device It has the effect of being able to.

本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。 Other features and advantages of the present invention will become apparent in the following description with reference to the accompanying drawings. In the attached drawings, the same or similar configurations are designated by the same reference numbers.

添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態に係る画像処理装置の構成を説明するブロック図。 実施形態に係る画像処理装置の部分再構成に特に関わる構成を説明するブロック図。 実施形態に係るコンフィギュレーション用ROMに格納されているコンフィギュレーションデータのデータ構成を説明する図。 本発明の実施形態に係る画像処理装置の処理を説明するフローチャート。 本実施形態に係る画像処理装置による図4のS403のFPGAの部分再構成実行処理の詳細を説明するフローチャート。 実施形態に係る画像処理装置による図5のS506の処理の詳細を説明するフローチャート。 実施形態に係る画像処理装置による図4のS405で実行する全面再構成の処理を説明するフローチャート。
The accompanying drawings are included in the specification and are used to form a part thereof, show embodiments of the present invention, and explain the principles of the present invention together with the description thereof.
The block diagram explaining the structure of the image processing apparatus which concerns on embodiment of this invention. The block diagram explaining the configuration particularly related to the partial reconstruction of the image processing apparatus which concerns on embodiment. The figure explaining the data structure of the configuration data stored in the configuration ROM which concerns on embodiment. The flowchart explaining the processing of the image processing apparatus which concerns on embodiment of this invention. The flowchart explaining the details of the partial reconstruction execution processing of the FPGA of S403 of FIG. 4 by the image processing apparatus which concerns on this embodiment. The flowchart explaining the details of the processing of S506 of FIG. 5 by the image processing apparatus which concerns on embodiment. FIG. 5 is a flowchart illustrating a full-scale reconstruction process executed in S405 of FIG. 4 by the image processing apparatus according to the embodiment.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments do not limit the present invention according to the claims, and not all combinations of features described in the present embodiment are essential for the means for solving the present invention. ..

図1は、本発明の実施形態に係る画像処理装置100の構成を説明するブロック図である。 FIG. 1 is a block diagram illustrating a configuration of an image processing device 100 according to an embodiment of the present invention.

画像処理装置100は、画像処理装置100を使用するユーザが操作するキーやタッチパネル等を有する操作部103と、原稿を走査して原稿の画像を読み取るスキャナ部109と、画像データに基づいて用紙に画像を印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPU(不図示)や原稿の読取を行うための照明ランプや走査ミラー(いずれも不図示)等を有する。プリンタ部106は、プリンタ部106を制御するCPU(不図示)や画像形成や定着を行うための感光体ドラムや定着器(いずれも不図示)等を有する。 The image processing device 100 includes an operation unit 103 having keys and a touch panel operated by a user who uses the image processing device 100, a scanner unit 109 that scans a document and reads an image of the document, and a sheet of paper based on the image data. It has a printer unit 107 for printing an image. The scanner unit 109 includes a CPU (not shown) that controls the scanner unit 109, an illumination lamp for reading a document, a scanning mirror (all not shown), and the like. The printer unit 106 includes a CPU (not shown) for controlling the printer unit 106, a photoconductor drum for performing image formation and fixing (not shown), and the like.

また画像処理装置100は、画像処理装置100の動作を統括的に制御するCPU101を備え、このCPU101は、画像処理装置100の各ユニットを制御するための制御プログラムを実行する。またROM104は、CPU101が実行する制御プログラムや各データを記憶している。RAM111は、CPU101が動作するためのシステムワークメモリや画像データを一時記憶するための画像メモリを提供している。メモリコントローラ110はRAM111へのデータの書き込み、及びRAM111からのデータの読み出しを制御する。メモリコントローラ110は、システムバス120及び画像バス121に接続され、RAM111へのアクセスを制御する。 Further, the image processing device 100 includes a CPU 101 that comprehensively controls the operation of the image processing device 100, and the CPU 101 executes a control program for controlling each unit of the image processing device 100. Further, the ROM 104 stores a control program executed by the CPU 101 and each data. The RAM 111 provides a system work memory for operating the CPU 101 and an image memory for temporarily storing image data. The memory controller 110 controls the writing of data to the RAM 111 and the reading of data from the RAM 111. The memory controller 110 is connected to the system bus 120 and the image bus 121, and controls access to the RAM 111.

FPGA(Field Programmable Gate Array)140は再構成可能回路で、この画像処理装置100の画像処理回路等を構成する。実施形態では、再構成可能回路としてFPGAを例に説明しているが、FPGA以外の再構成可能回路であってもよい。コンフィグコントローラ130は、CPU101の制御の下で、FPGAの回路構成(コンフィギュレーション)を制御する。コンフィギュレーション用ROM150は、FPGA140の回路を構成するための回路構成情報(コンフィグデータ)を格納する。FPGA140の回路構成情報の書き換えは、動的に書き換え可能で、かつ部分的に書き換え可能である。即ち、FPGA140の再構成部の一部に構成された回路が動作している間に、その回路が占める部分と重ならない別の部分に、別の回路を構成することができる。 The FPGA (Field Programmable Gate Array) 140 is a reconfigurable circuit, and constitutes an image processing circuit or the like of the image processing device 100. In the embodiment, FPGA is described as an example of the reconfigurable circuit, but a reconfigurable circuit other than FPGA may be used. The config controller 130 controls the circuit configuration of the FPGA under the control of the CPU 101. The configuration ROM 150 stores circuit configuration information (config data) for configuring the circuit of the FPGA 140. The circuit configuration information of the FPGA 140 can be dynamically rewritten and partially rewritable. That is, while the circuit configured as part of the reconfigured portion of the FPGA 140 is operating, another circuit can be configured in another portion that does not overlap with the portion occupied by the circuit.

ネットワークI/F102は、ネットワーク上の不図示の汎用コンピュータ等と通信(送受信)を行う。プリンタI/F106は、画像バス121とプリンタ部107とを接続し、プリンタ部107とのインタフェースを制御する。スキャナI/F108は、スキャナ部109から入力された画像データを画像バス121に出力して、スキャナ部109とのインタフェースを制御する。USBI/F114は、USBインターフェースを介して画像処理装置100と接続された不図示の汎用コンピュータやUSBデバイス等と通信(送受信)を行う。FAXI/F115は公衆回線網と接続し、不図示の画像処理装置やファクシミリ装置と通信(送受信)を行う。ROMI/F112は、CPU101が実行するプログラム等のROM104からのデータの読み出しを制御する。操作部I/F113は、CPU101と操作部103とのインタフェースを制御する。ここでFPGA140及びスキャナI/F108及びプリンタI/F106は、処理対象の画像データを転送するための画像バス121に接続される。またネットワークI/F102,USBI/F114,FAXI/F115,操作部I/F113,ROMI/F112、コンフィグコントローラ130、FPGA140は、システムバス120を介してCPU101と接続されている。CPU101は、FPGA140、スキャナI/F108、プリンタI/F106へのパラメータ設定をシステムバス120を介して行う。 The network I / F 102 communicates (transmits and receives) with a general-purpose computer or the like (not shown) on the network. The printer I / F 106 connects the image bus 121 and the printer unit 107, and controls the interface with the printer unit 107. The scanner I / F 108 outputs the image data input from the scanner unit 109 to the image bus 121 to control the interface with the scanner unit 109. The USB I / F 114 communicates (transmits and receives) with a general-purpose computer, a USB device, etc. (not shown) connected to the image processing device 100 via a USB interface. The FAXI / F115 connects to a public network and communicates (transmits and receives) with an image processing device and a facsimile machine (not shown). The ROMI / F112 controls reading data from the ROM 104, such as a program executed by the CPU 101. The operation unit I / F 113 controls the interface between the CPU 101 and the operation unit 103. Here, the FPGA 140, the scanner I / F 108, and the printer I / F 106 are connected to the image bus 121 for transferring the image data to be processed. The network I / F102, USBI / F114, FAXI / F115, operation unit I / F113, ROMI / F112, config controller 130, and FPGA140 are connected to the CPU 101 via the system bus 120. The CPU 101 sets parameters for the FPGA 140, the scanner I / F 108, and the printer I / F 106 via the system bus 120.

次に、図2を参照して本実施形態に係る画像処理装置100における部分再構成に関する構成について説明する。 Next, a configuration related to partial reconstruction in the image processing apparatus 100 according to the present embodiment will be described with reference to FIG.

図2は、実施形態に係る画像処理装置100の部分再構成に特に関わる構成を説明するブロック図である。図2において、図1で説明した箇所は同じ参照番号で示している。 FIG. 2 is a block diagram illustrating a configuration particularly related to partial reconstruction of the image processing apparatus 100 according to the embodiment. In FIG. 2, the parts described with reference to FIG. 1 are indicated by the same reference numbers.

FPGA140は内部に、4つの部分再構成部(PR1〜PR4)201〜204を有する。各部分再構成部は、その回路構成を動的に再構成することが可能である。実施形態では、画像処理機能を持つ回路を部分再構成部に構成する例について説明をしているが、もちろん画像処理機能以外の回路を部分再構成部に構成できることは言うまでもない。 The FPGA 140 has four partial reconstruction parts (PR1 to PR4) 201 to 204 inside. Each partial reconstruction unit can dynamically reconstruct its circuit configuration. In the embodiment, an example in which a circuit having an image processing function is configured in the partial reconstruction unit is described, but it goes without saying that a circuit other than the image processing function can be configured in the partial reconstruction unit.

コンフィグコントローラ130は、コンフィグレーション用ROM150に記憶されているコンフィグレーションデータを、FPGA140の指示された部分再構成部に書き込む。コンフィグコントローラ130は、再構成管理部205とエラー検知部206とを有する。再構成管理部205は、部分再構成部201〜204のそれぞれを管理する。例えば、部分再構成部201〜204のそれぞれが現在の処理に使用されているか等、各部分再構成部の空き状況を管理する。その上で、各部分再構成部が書き換え可能かどうかを判定する。再構成管理部205は、CPU101からの指示と、各部分再構成部が書き換え可能かどうかの判定結果とに基づいて、部分再構成部201〜204のそれぞれへのコンフィギュレーションデータの書き換えを行う。 The config controller 130 writes the configuration data stored in the configuration ROM 150 to the designated partial reconfiguration unit of the FPGA 140. The config controller 130 has a reconstruction management unit 205 and an error detection unit 206. The reconstruction management unit 205 manages each of the partial reconstruction units 201 to 204. For example, the availability of each partial reconstruction unit is managed, such as whether each of the partial reconstruction units 201 to 204 is used for the current processing. Then, it is determined whether or not each partial reconstruction unit is rewritable. The reconstruction management unit 205 rewrites the configuration data to each of the partial reconstruction units 201 to 204 based on the instruction from the CPU 101 and the determination result of whether or not each partial reconstruction unit is rewritable.

エラー検知部206は、部分再構成部201〜204のそれぞれの部分再構成が正常に終了しなかった場合のエラーを検知する。例えば、部分再構成部201の書き換えを実施した際に、何等かの要因で、コンフィギュレーションデータの書き換えに失敗したときに再構成可能回路(FPGA)が出力するエラー信号をモニタする。エラー検知部206は、このエラー信号を検知すると再構成管理部205に通知する。エラー検知部206により、エラーが検知された場合の処理は、図4〜図7を参照して後述する。 The error detection unit 206 detects an error when each partial reconstruction of the partial reconstruction units 201 to 204 is not normally completed. For example, when the partial reconstruction unit 201 is rewritten, the error signal output by the reconfigurable circuit (FPGA) is monitored when the rewriting of the configuration data fails for some reason. When the error detection unit 206 detects this error signal, it notifies the reconstruction management unit 205. The process when an error is detected by the error detection unit 206 will be described later with reference to FIGS. 4 to 7.

次に、図3を参照して、実施形態に係る画像処理装置100におけるFPGA140の部分再構成部201〜204を構成するコンフィギュレーションデータの格納方法について説明する。 Next, with reference to FIG. 3, a method of storing configuration data constituting the partial reconstruction units 201 to 204 of the FPGA 140 in the image processing apparatus 100 according to the embodiment will be described.

図3は、実施形態に係るコンフィギュレーション用ROM150に格納されているコンフィギュレーションデータのデータ構成を説明する図である。 FIG. 3 is a diagram illustrating a data configuration of configuration data stored in the configuration ROM 150 according to the embodiment.

コンフィギュレーション用ROM150には、FPGA140の部分再構成部201〜204の部分再構成に必要な複数のコンフィギュレーションデータが、部分再構成部に対応付けて格納されている。部分再構成部201(PR1)用のコンフィギュレーションデータ300は、部分再構成部201に論理回路を構成するコンフィギュレーションデータを表している。図3においては、部分再構成部201に構成可能な機能がA,B,C,Dの4つである場合を例にしている。コンフィギュレーションデータ301は、PR1に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に、コンフィギュレーションデータ302〜304はそれぞれ、PR1に機能B、機能C、機能Dの回路構成をそれぞれ構成するためのコンフィギュレーションデータである。 In the configuration ROM 150, a plurality of configuration data necessary for the partial reconstruction of the partial reconstruction units 201 to 204 of the FPGA 140 are stored in association with the partial reconstruction unit. The configuration data 300 for the partial reconstruction unit 201 (PR1) represents the configuration data that constitutes a logic circuit in the partial reconstruction unit 201. In FIG. 3, the case where the partial reconstruction unit 201 has four functions A, B, C, and D that can be configured is taken as an example. The configuration data 301 is the configuration data for configuring the circuit of the function A in the PR1. Similarly, the configuration data 302 to 304 are configuration data for configuring the circuit configurations of the function B, the function C, and the function D in the PR1, respectively.

またコンフィギュレーションデータ310は、部分再構成部(PR2)202に論理回路を構成するコンフィギュレーションデータを表している。PR2用のコンフィギュレーションデータ310でも、機能A,B,C,Dの4つの機能のコンフィギュレーションデータを格納しており、コンフィギュレーションデータ311は、PR2に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に、コンフィギュレーションデータ312〜314はそれぞれ、PR2に機能B、機能C、機能Dの回路構成をそれぞれ構成するためのコンフィギュレーションデータである。 Further, the configuration data 310 represents the configuration data constituting the logic circuit in the partial reconstruction unit (PR2) 202. The configuration data 310 for PR2 also stores the configuration data of the four functions A, B, C, and D, and the configuration data 311 is a configuration for configuring the circuit of function A in PR2. It is data. Similarly, the configuration data 312 to 314 are configuration data for configuring the circuit configurations of the function B, the function C, and the function D in the PR2, respectively.

またコンフィギュレーションデータ320は、部分再構成部(PR3)203に論理回路を構成するコンフィギュレーションデータを表している。PR3用のコンフィギュレーションデータ320でも、機能A,B,C,Dの4つの機能のコンフィギュレーションデータを格納しており、コンフィギュレーションデータ321は、PR3に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に、コンフィギュレーションデータ322〜324はそれぞれ、PR3に機能B、機能C、機能Dの回路構成をそれぞれ構成するためのコンフィギュレーションデータである。 Further, the configuration data 320 represents the configuration data constituting the logic circuit in the partial reconstruction unit (PR3) 203. The configuration data 320 for PR3 also stores the configuration data of the four functions A, B, C, and D, and the configuration data 321 is the configuration for configuring the circuit of function A in PR3. It is data. Similarly, the configuration data 322 to 324 are configuration data for configuring the circuit configurations of the function B, the function C, and the function D in the PR3, respectively.

またコンフィギュレーションデータ330は、部分再構成部(PR4)204に論理回路を構成するコンフィギュレーションデータを表している。PR4用のコンフィギュレーションデータ330でも、機能A,B,C,Dの4つの機能のコンフィギュレーションデータを格納しており、コンフィギュレーションデータ331は、PR3に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に、コンフィギュレーションデータ332〜334はそれぞれ、PR4に機能B、機能C、機能Dの回路構成をそれぞれ構成するためのコンフィギュレーションデータである。 Further, the configuration data 330 represents the configuration data constituting the logic circuit in the partial reconstruction unit (PR4) 204. The configuration data 330 for PR4 also stores the configuration data of the four functions A, B, C, and D, and the configuration data 331 is a configuration for configuring the circuit of function A in PR3. It is data. Similarly, the configuration data 332 to 334 are configuration data for configuring the circuit configurations of the function B, the function C, and the function D in the PR4, respectively.

上述したように、各部分再構成部ごとにコンフィギュレーションデータを用意する必要がある。例えば、機能Aの回路構成を、部分再構成部(PR1)201と部分再構成部(PR2)202に構成する場合を考える。この場合、例え同じ機能Aであっても、PR1用の機能Aのコンフィギュレーションデータ301、PR2用の機能Aのコンフィギュレーションデータ311というように、部分再構成部によって異なるコンフィギュレーションデータを用意する必要がある。 As described above, it is necessary to prepare the configuration data for each partial reconstruction unit. For example, consider the case where the circuit configuration of the function A is configured by the partial reconstruction unit (PR1) 201 and the partial reconstruction unit (PR2) 202. In this case, even if the same function A is used, it is necessary to prepare different configuration data depending on the partial reconstruction unit, such as the configuration data 301 of the function A for PR1 and the configuration data 311 of the function A for PR2. There is.

そのため、各部分再構成部用のコンフィギュレーションデータを多く備えておけば、各部分再構成部を色々な機能に使用できるが、コンフィギュレーションROM150に格納するデータ容量が大きくなる。一方で、機能毎にコンフィギュレーションする再構成部を限定すれば、各部分再構成部に構成できる機能が限定されるが、コンフィギュレーションデータの量を少なくできるのでコンフィギュレーションROM150の容量を削減することができる。 Therefore, if a large amount of configuration data for each partial reconstruction unit is provided, each partial reconstruction unit can be used for various functions, but the amount of data stored in the configuration ROM 150 increases. On the other hand, if the reconfiguration unit to be configured for each function is limited, the functions that can be configured in each partial reconfiguration unit are limited, but the amount of configuration data can be reduced, so that the capacity of the configuration ROM 150 can be reduced. Can be done.

本実施形態では、FPGA140は4つの部分再構成領域を持ち、部分再構成領域に構成される機能がA,B,C,Dの4つの場合を例に説明する。もちろん、部分再構成の領域と、そこに構成する機能を4つに限定した理由は、説明をわかりやすくするためだけであり、4つに限定される必要はない。 In the present embodiment, the FPGA 140 has four partially reconstructed regions, and the case where the functions configured in the partially reconstructed regions are A, B, C, and D will be described as an example. Of course, the reason for limiting the area of partial reconstruction and the functions configured therein to four is only for the sake of clarity of explanation, and it is not necessary to limit the area to four.

図4は、本発明の実施形態に係る画像処理装置100による処理を説明するフローチャートである。尚、図4のフローチャートの各手順は、CPU101がROM104に格納された制御プログラムを実行することにより実行される。 FIG. 4 is a flowchart illustrating processing by the image processing apparatus 100 according to the embodiment of the present invention. Each procedure in the flowchart of FIG. 4 is executed by the CPU 101 executing the control program stored in the ROM 104.

まずS401でCPU101は、ジョブを受信するとS402へ進み、CPU101は、その受信したジョブを実行するに際して、FPGA140に構成しなければならない機能を特定する。例えば、受信したジョブを実行するために機能Aが必要である場合、そのジョブを実行するための機能として機能Aを特定する。次にS403に進みCPU101は、S402で特定した機能を、FPGA140の部分再構成部に構成する。このS403では、CPU101の制御の下で、コンフィグコントローラ130が、その機能を構成するのに必要なコンフィギュレーションデータをコンフィギュレーションROM150から読み出し、FPGA140の部分再構成部に書き込む。S403の部分再構成実行処理の詳細は図5を参照して後述する。 First, in S401, when the CPU 101 receives a job, the CPU 101 proceeds to S402, and the CPU 101 identifies a function that must be configured in the FPGA 140 when executing the received job. For example, when the function A is required to execute the received job, the function A is specified as the function for executing the job. Next, the process proceeds to S403, and the CPU 101 configures the function specified in S402 in the partial reconstruction unit of the FPGA 140. In this S403, under the control of the CPU 101, the config controller 130 reads the configuration data necessary for configuring the function from the configuration ROM 150 and writes it to the partial reconfiguration unit of the FPGA 140. Details of the partial reconstruction execution process of S403 will be described later with reference to FIG.

次にS404に進みCPU101は、S403において、S402で特定した機能を実行できるように、FPGA140の部分再構成部の構成に成功したか否かを判定する。ここでCPU101は、コンフィグコントローラ130の再構成管理部205がエラー検知部206から取得した検知結果を基に、部分再構成部の構成に成功したかどうかを判定する。S404でCPU101は、S402で特定したジョブの実行に必要な全ての機能が、FPGA140の部分再構成部に構成できたと判定した場合はS407へ進む。S407でCPU101は、そのFPGA140に構成された機能を用いて、受信したジョブの処理を行ってこの処理を終了する。 Next, proceeding to S404, the CPU 101 determines in S403 whether or not the configuration of the partial reconstruction unit of the FPGA 140 has been successful so that the function specified in S402 can be executed. Here, the CPU 101 determines whether or not the configuration of the partial reconstruction unit has succeeded based on the detection result acquired from the error detection unit 206 by the reconstruction management unit 205 of the config controller 130. If the CPU 101 determines in S404 that all the functions necessary for executing the job specified in S402 can be configured in the partial reconstruction unit of the FPGA 140, the process proceeds to S407. In S407, the CPU 101 processes the received job by using the function configured in the FPGA 140, and ends this process.

一方、S404で部分再構成部の構成に失敗したと判定したときはS405に進む。S405でCPU101は、ジョブの実行に必要な機能の部分再構成がエラー終了しているため、コンフィグコントローラ130により、FPGA140の全面再構成を実行させる。S405で実行するFPGA140の全面再構成の実行フローについては図7を参照して後述する。S405の処理が終了するとS406に進みCPU101は、FPGA140の全面再構成が正常終了したかを判定する。ここでもCPU101は、コンフィグコントローラ130の再構成管理部205がエラー検知部206から取得した検知結果を基に成功したかどうかを判定する。S406でCPU101は、FPGA140の全面再構成が正常終了したと判定するとS407へ進み、エラー終了した場合S408へ進んでエラーを通知してこの処理を終了する。このエラー通知は、CPU101の指示の下に操作部103の表示部にエラーの旨を表示し、電源の再投入等を促す。 On the other hand, when it is determined in S404 that the configuration of the partial reconstruction unit has failed, the process proceeds to S405. In S405, the CPU 101 causes the config controller 130 to execute the complete reconfiguration of the FPGA 140 because the partial reconfiguration of the functions required for executing the job has ended with an error. The execution flow of the full-scale reconstruction of the FPGA 140 executed in S405 will be described later with reference to FIG. 7. When the processing of S405 is completed, the process proceeds to S406, and the CPU 101 determines whether the entire reconfiguration of the FPGA 140 has been completed normally. Here, too, the CPU 101 determines whether or not the reconstruction management unit 205 of the config controller 130 succeeds based on the detection result acquired from the error detection unit 206. In S406, when the CPU 101 determines that the complete reconstruction of the FPGA 140 has been completed normally, the process proceeds to S407, and when the error ends, the CPU 101 proceeds to S408 to notify an error and end this process. In this error notification, an error is displayed on the display unit of the operation unit 103 under the instruction of the CPU 101, and the power is turned on again.

これにより、受信したジョブを実行するのに必要な機能を再構成可能回路(FPGA)に構成し、その機能が構成された再構成可能回路を使用して、そのジョブを実行することができる。 As a result, the function required to execute the received job can be configured in the reconfigurable circuit (FPGA), and the job can be executed by using the reconfigurable circuit in which the function is configured.

次に図5を参照して、部分再構成実行の処理について詳細に説明する。 Next, the process of executing the partial reconstruction will be described in detail with reference to FIG.

図5は、本実施形態に係る画像処理装置100による図4のS403のFPGAの部分再構成実行処理の詳細を説明するフローチャートである。尚、図5のフローチャートの各手順はCPU101又はCPU101の指示の下でコンフィグコントローラ130が実行する。 FIG. 5 is a flowchart illustrating the details of the partial reconstruction execution process of the FPGA of S403 of FIG. 4 by the image processing device 100 according to the present embodiment. Each procedure in the flowchart of FIG. 5 is executed by the config controller 130 under the instruction of the CPU 101 or the CPU 101.

まずS501でCPU101は、再構成を行う部分再構成部と、コンフィギュレーション用ROM150に格納されているコンフィギュレーションデータの中から、その部分再構成部に構成する機能に対応するコンフィギュレーションデータを特定する。例えば部分再構成部(PR1)201に機能Aの回路を構成する場合、コンフィギュレーション用ROM150に格納されているコンフィギュレーションデータの中からPR1用機能Aのコンフィグレーションデータ301を特定する。ここでCPU101は、再構成管理部205からの情報に基づいて、FPGA140でジョブの処理に使用されていない書き換え可能な部分再構成部を特定する。 First, in S501, the CPU 101 identifies the configuration data corresponding to the function configured in the partial reconstruction unit from the partial reconstruction unit to be reconstructed and the configuration data stored in the configuration ROM 150. .. For example, when the circuit of the function A is configured in the partial reconstruction unit (PR1) 201, the configuration data 301 of the function A for PR1 is specified from the configuration data stored in the configuration ROM 150. Here, the CPU 101 identifies a rewritable partial reconfiguration unit that is not used for job processing in the FPGA 140, based on the information from the reconstruction management unit 205.

次にS502に進みCPU101は、コンフィグコントローラ130に対して部分再構成を実行するように指示する。具体的には、S501で特定したコンフィギュレーションデータと、書き込み対象の部分再構成部とを指示する。ここでは例えば、コンフィギュレーションデータを、部分再構成部(PR1)201に書き込むように指示する。そしてS503に進みCPU101は、コンフィグコントローラ130からの応答に基づいて、S502の部分再構成が正常終了したかどうかを判定する。この判定には、FPGA140が出力する部分再構成が正常終了を示す信号を再構成管理部205がモニタし、エラー検知部206がエラーを検知しない場合に正常終了と判定する。S503でCPU101が部分再構成が正常終了したと判定するとS508に進み、CPU101は、そのジョブを実行するのに必要な全ての機能の部分再構成が終了したかを判定する。全ての機能の部分再構成が終了したときは、この処理を終了して図4のS404へ進む。一方、S508でCPU101が、そのジョブを実行するのに必要な全ての機能の部分再構成が終了していないと判定するとS501に戻り、残りの必要な機能の部分再構成を実行する。 Next, the process proceeds to S502, and the CPU 101 instructs the config controller 130 to execute the partial reconstruction. Specifically, the configuration data specified in S501 and the partial reconstruction unit to be written are instructed. Here, for example, the configuration data is instructed to be written to the partial reconstruction unit (PR1) 201. Then, the process proceeds to S503, and the CPU 101 determines whether or not the partial reconstruction of S502 has been completed normally based on the response from the config controller 130. In this determination, the reconstruction management unit 205 monitors a signal indicating that the partial reconstruction output by the FPGA 140 has ended normally, and when the error detecting unit 206 does not detect an error, it determines that the partial reconstruction has ended normally. When the CPU 101 determines in S503 that the partial reconstruction has been completed normally, the process proceeds to S508, and the CPU 101 determines whether the partial reconstruction of all the functions necessary for executing the job has been completed. When the partial reconstruction of all the functions is completed, this process is completed and the process proceeds to S404 in FIG. On the other hand, if the CPU 101 determines in S508 that the partial reconfiguration of all the functions required to execute the job has not been completed, the process returns to S501 and the partial reconfiguration of the remaining necessary functions is executed.

一方、S503でCPU101は、部分再構成が正常終了していないと判定するとS504に進む。S504では、S502で実行した部分再構成が何等かの原因により失敗しているため、CPU101は、コンフィグコントローラ130に対して、S502で実施した部分再構成の再実行を指示する。そしてS505に進みCPU101は、前述のS503と同様に、S504で実行した部分再構成の再実行が正常終了したかどうかを判定する。S505でCPU101が、部分再構成の再実行が正常終了したと判定したときはS508に進むが、そうでないときはS506に進む。尚、S505において、部分再構成が正常終了しなかったと判定した場合、CPU101は、S504とS505の処理を複数回実行してもよい。 On the other hand, if the CPU 101 determines in S503 that the partial reconstruction has not been completed normally, the process proceeds to S504. In S504, since the partial reconstruction executed in S502 has failed for some reason, the CPU 101 instructs the config controller 130 to re-execute the partial reconstruction executed in S502. Then, the process proceeds to S505, and the CPU 101 determines whether or not the re-execution of the partial reconstruction executed in S504 has been normally completed, as in the case of S503 described above. If the CPU 101 determines in S505 that the re-execution of the partial reconstruction has been completed normally, the process proceeds to S508, and if not, the process proceeds to S506. If it is determined in S505 that the partial reconstruction has not been completed normally, the CPU 101 may execute the processes of S504 and S505 a plurality of times.

S506でCPU101は、コンフィグコントローラ130に対して、その機能を実行するコンフィグレーションデータを書き込む部分再構成部を、他の処理を実行していない部分再構成部に切り替えるように指示する。更に、その切り替えた部分再構成部に、対応するコンフィグレーションデータを書き込むように指示する。例えば、部分再構成部(PR1)201に機能Aの回路を構成しようとした際に失敗した場合、部分再構成部(PR2)202が空いていれば、そこに機能Aの回路の再構成を実施する。このS506における、部分再構成部を切り替えて部分再構成を実行する処理は、図6を参照して後述する。そしてS507に進みCPU101は、S506で実行した部分再構成部を切り替えた部分再構成が成功したかを判定する。この判定もS503,S505と同様に、構成管理部205とエラー検知部206がFPGAの正常終了、エラー終了を表す信号をモニタすることにより行われる。S507でCPU101が、部分再構成が正常終了したと判定した場合はS508へ進み、エラー終了した場合は、部分再構成の処理を終了して図4のS404へ進む。 In S506, the CPU 101 instructs the config controller 130 to switch the partial reconfiguration unit for writing the configuration data for executing the function to the partial reconfiguration unit for which other processing is not executed. Further, the switched partial reconstruction unit is instructed to write the corresponding configuration data. For example, when an attempt to configure a circuit of function A in the partial reconstruction unit (PR1) 201 fails, if the partial reconstruction unit (PR2) 202 is available, the circuit of function A is reconfigured there. carry out. The process of switching the partial reconstruction unit and executing the partial reconstruction in S506 will be described later with reference to FIG. Then, the process proceeds to S507, and the CPU 101 determines whether the partial reconstruction by switching the partial reconstruction unit executed in S506 was successful. Similar to S503 and S505, this determination is also performed by the configuration management unit 205 and the error detection unit 206 monitoring signals indicating normal termination and error termination of the FPGA. If the CPU 101 determines in S507 that the partial reconstruction has been completed normally, the process proceeds to S508, and if the error ends, the process ends the partial reconstruction process and proceeds to S404 in FIG.

このようにして、FPGAのある部分再構成部へのコンフィグレーションデータの書き込みに失敗した場合は、そのFPGAの別の部分再構成部へ、同じ機能を実行するコンフィグレーションデータを書き込むことができる。これによりFPGAのある部分再構成部への、ある機能のコンフィグレーションに失敗しても、他の部分再構成部に同じ機能を構成できる。 In this way, when writing the configuration data to a certain partial reconstruction unit of the FPGA fails, the configuration data that executes the same function can be written to another partial reconstruction unit of the FPGA. As a result, even if the configuration of a certain function in a certain partial reconstruction part of the FPGA fails, the same function can be configured in another partial reconstruction part.

次に図6を参照して、部分再構成部を切り替えて部分再構成を実行する処理を詳細に説明する。 Next, with reference to FIG. 6, a process of switching the partial reconstruction unit and executing the partial reconstruction will be described in detail.

図6は、実施形態に係る画像処理装置100による図5のS506の処理の詳細を説明するフローチャートである。尚、図6のフローチャートの各手順はCPU101又はCPU101の指示の下でコンフィグコントローラ130が実行する。 FIG. 6 is a flowchart illustrating details of the processing of S506 in FIG. 5 by the image processing apparatus 100 according to the embodiment. Each procedure in the flowchart of FIG. 6 is executed by the config controller 130 under the instruction of the CPU 101 or the CPU 101.

先ずS601でCPU101は、再構成管理部205からの情報に基づいて、FPGA140の部分再構成部の中で、空いている部分再構成部があるかどうかを判定する。S601でCPU101が、FPGA140の部分再構成部の中で空いている部分再構成部があると判定した場合はS602に進み、空いている領域がなかった場合はS604へ進む。S602でCPU101は、その空いている部分再構成部に書き込むコンフィグレーションデータを特定する。例えば、部分再構成部(PR2)が空いていて、そこに機能Aを構成する場合は、コンフィギュレーション用ROM150の中からPR2用機能Aのコンフィグレーションデータ311を特定する。そしてS603に進みCPU101は、S602で特定したコンフィグレーションデータを、S601で見つけた、空いている部分再構成部に書き込んで部分再構成を実行して、この処理を終了する。尚、S602で、空いている部分再構成部に対応する、当該機能を実行するコンフィグレーションデータがコンフィグレーション用ROM150に記憶されていない場合が考えられる。その場合は、その機能を実行するコンフィグレーションデータが記憶されている他の空いている部分再構成部を探すようにしても良い。 First, in S601, the CPU 101 determines whether or not there is a vacant partial reconstruction unit in the partial reconstruction unit of the FPGA 140 based on the information from the reconstruction management unit 205. If the CPU 101 determines in S601 that there is a vacant partial reconstructing unit in the FGA 140 partial reconstructing unit, the process proceeds to S602, and if there is no vacant area, the process proceeds to S604. In S602, the CPU 101 specifies the configuration data to be written in the vacant partial reconstruction unit. For example, when the partial reconstruction unit (PR2) is vacant and the function A is configured there, the configuration data 311 of the PR2 function A is specified from the configuration ROM 150. Then, the process proceeds to S603, and the CPU 101 writes the configuration data specified in S602 to the vacant partial reconstruction unit found in S601 to execute the partial reconstruction, and ends this process. In S602, it is conceivable that the configuration data for executing the function corresponding to the vacant partial reconstruction unit is not stored in the configuration ROM 150. In that case, you may search for another vacant partial reconstruction part that stores the configuration data that executes the function.

一方、S604でCPU101は、FPGA140の部分再構成部に空いている部分再構成部がなかったため、FPGA140の部分再構成部の中に、書き換え可能な部分再構成部があるか否かを判定する。ここで、書き換え可能な部分再構成部とは、その部分再構成部に既に何らかのコンフィギュレーションデータが書き込まれているが、現在の処理にでは使用されていない部分再構成部である。S604でCPU101は、FPGA140の部分再構成部の中に、書き換え可能な部分再構成部があると判定するとS605に進むが、書き換え可能な部分再構成部がなかった場合は、この処理終了して図5のS507へ進む。 On the other hand, in S604, the CPU 101 determines whether or not there is a rewritable partial reconstruction unit in the partial reconstruction unit of the FPGA 140 because there is no empty partial reconstruction unit in the partial reconstruction unit of the FPGA 140. .. Here, the rewritable partial reconstruction unit is a partial reconstruction unit in which some configuration data has already been written in the partial reconstruction unit, but is not used in the current processing. In S604, the CPU 101 proceeds to S605 when it determines that there is a rewritable partial reconfiguration part in the partial reconfiguration part of the FPGA 140, but if there is no rewritable partial reconfiguration part, this process ends. Proceed to S507 of FIG.

S605でCPU101は、FPGA140の部分再構成部の中に、書き換え可能な部分再構成部があるため、S604で特定した書き換え可能な部分再構成部に構成するコンフィグレーションデータを特定する。例えば、部分再構成部(PR3)203に機能Aを構成する場合は、コンフィギュレーション用ROM150の中のPR3用機能Aのコンフィグレーションデータ331を特定する。そしてS606に進みCPU101は、S605で特定したコンフィグレーションデータを、S604で見つけた、書き換え可能な部分再構成部に上書きして、この処理を終了する。尚、S605で、書き換え可能な部分再構成部に対応する、当該機能を実行するコンフィグレーションデータがコンフィグレーション用ROM150に記憶されていない場合が考えられる。その場合は、その機能を実行するコンフィグレーションデータが記憶されている他の書き換え可能な部分再構成部を探すようにしても良い。 In S605, the CPU 101 specifies the configuration data configured in the rewritable partial reconstruction unit specified in S604 because there is a rewritable partial reconstruction unit in the partial reconstruction unit of the FPGA 140. For example, when the function A is configured in the partial reconstruction unit (PR3) 203, the configuration data 331 of the PR3 function A in the configuration ROM 150 is specified. Then, the process proceeds to S606, and the CPU 101 overwrites the configuration data specified in S605 with the rewritable partial reconstruction unit found in S604, and ends this process. In S605, it is conceivable that the configuration data for executing the function corresponding to the rewritable partial reconstruction unit is not stored in the configuration ROM 150. In that case, you may search for another rewritable partial reconstruction part that stores the configuration data that executes the function.

これによれば、FPGAのある部分再構成部のコンフィグレーションに失敗したときは、そのFPGAの空いている(コンフィグレーションが未実行の)部分再構成部、或いはコンフィグレーションされているが、現在使用されていない部分再構成部を探す。そしてそのような部分再構成部が見つかると、その部分再構成部に対応し、かつそこに構成したい機能に対応するコンフィグレーションデータを特定して、その特定したコンフィグレーションデータでFPGAのコンフィグレーションを実行することができる。 According to this, when the configuration of a partly reconfigured part of the FPGA fails, the part of the FPGA that is vacant (configuration has not been executed) or is configured, but is currently in use. Find the unreconstructed part. When such a partial reconstruction part is found, the configuration data corresponding to the partial reconstruction part and the function to be configured there is specified, and the FPGA configuration is performed with the specified configuration data. Can be executed.

次に図7を参照して、図4のS405の全面再構成を実行する処理について詳細に説明する。 Next, with reference to FIG. 7, the process of executing the full-scale reconstruction of S405 of FIG. 4 will be described in detail.

図7は、実施形態に係る画像処理装置100による図4のS405で実行する全面再構成の処理を説明するフローチャートである。尚、図7のフローチャートの各手順はCPU101と、CPU101の指示の下でコンフィグコントローラ130が処理を実行することにより達成される。 FIG. 7 is a flowchart illustrating a full-scale reconstruction process executed in S405 of FIG. 4 by the image processing apparatus 100 according to the embodiment. Each procedure in the flowchart of FIG. 7 is achieved by the CPU 101 and the config controller 130 executing the process under the instruction of the CPU 101.

S701でCPU101は、FPGA140の部分再構成部に構成されているコンフィグデータの種類をコンフィグコントローラ130から取得してRAM111に記憶する。ここで部分再構成部に構成されているコンフィグデータの種類を記憶するのは、全面再構成後に部分再構成を実行し、FPGA140の回路構成を全面再構成前と同じ状態にするためである。次にS702に進みCPU101は、FPGA140の全面再構成を実行する。ここではFPGA140の部分再構成部201〜204それぞれに対して、FPGA140が有する機能A〜Dを構成する。例えば、部分再構成部201に機能A,部分再構成部202に機能B,部分再構成部203に機能C,部分再構成部204に機能Dを構成する。次にS703に進みCPU101は、S701で記憶した全面再構成前の状態と同じになるように必要に応じて部分再構成を実行する。ここでは例えば、部分再構成部201に機能Bを、部分再構成部202に機能Aを構成する。尚、S702において、S701で記憶したFPGA140の部分再構成部に構成されているコンフィグデータの種類に基づいてFPGA140の全面再構成を実行すれば、S703の処理を省略できる。 In S701, the CPU 101 acquires the type of config data configured in the partial reconstruction unit of the FPGA 140 from the config controller 130 and stores it in the RAM 111. Here, the type of config data configured in the partial reconstruction unit is stored in order to execute the partial reconstruction after the complete reconstruction and to make the circuit configuration of the FPGA 140 in the same state as before the full reconstruction. Next, the process proceeds to S702, and the CPU 101 executes a complete reconfiguration of the FPGA 140. Here, the functions A to D of the FPGA 140 are configured for each of the partial reconstruction units 201 to 204 of the FPGA 140. For example, the partial reconstruction unit 201 has a function A, the partial reconstruction unit 202 has a function B, the partial reconstruction unit 203 has a function C, and the partial reconstruction unit 204 has a function D. Next, the process proceeds to S703, and the CPU 101 executes partial reconstruction as necessary so as to be the same as the state before the full reconstruction stored in S701. Here, for example, the partial reconstruction unit 201 is configured with the function B, and the partial reconstruction unit 202 is configured with the function A. In S702, if the entire reconfiguration of the FPGA 140 is executed based on the type of the config data configured in the partial reconstruction unit of the FPGA 140 stored in S701, the processing of S703 can be omitted.

以上説明したように本実施形態によれば、動的部分再構成が可能なFPGAを備えた画像処理装置において、動的部分再構成に失敗した場合でも、パフォーマンス劣化を可能な限り抑えるリカバリー制御が実行可能となる。 As described above, according to the present embodiment, in an image processing apparatus provided with an FPGA capable of dynamic partial reconstruction, recovery control that suppresses performance deterioration as much as possible even if dynamic partial reconstruction fails is performed. It becomes feasible.

(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
(Other embodiments)
The present invention is also realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiment is supplied to the system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads the program. This is the process to be executed.

本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。 The present invention is not limited to the above embodiments, and various modifications and modifications can be made without departing from the spirit and scope of the present invention. Therefore, in order to make the scope of the present invention public, the following claims are attached.

100…画像処理装置、101…CPU,104…ROM,111…RAM,120…システムバス、121…画像バス、130…コンフィグコントローラ、140…FPGA,150…コンフィギュレーション用ROM,205…再構成管理部、206…エラー検知部。 100 ... Image processing device, 101 ... CPU, 104 ... ROM, 111 ... RAM, 120 ... System bus, 121 ... Image bus, 130 ... Config controller, 140 ... FPGA, 150 ... Configuration ROM, 205 ... Reconfiguration management unit , 206 ... Error detector.

Claims (9)

少なくとも第1の領域と第2の領域を含む複数の領域を有し、領域ごとに回路を独立して再構成できる情報処理装置において、
前記第1の領域に第1の機能を実行する回路を構成するための第1の回路構成情報と、前記第2の領域に第2の機能を実行する回路を構成するための第2の回路構成情報と、前記第2の領域に前記第1の機能を実行する回路を構成するための第3の回路構成情報とを記憶する記憶手段と、
前記記憶手段に記憶された前記第1の回路構成情報に基づき、前記第1の領域に前記第1の機能を実行するための回路を構成し、前記記憶手段に記憶された前記第2の回路構成情報に基づき、前記第2の領域に前記第2の機能を実行するための回路を構成する制御手段と、
前記制御手段による前記第1の領域への前記第1の機能を実行する回路を構成する処理が失敗したことを検知する検知手段と、を有し、
前記制御手段は、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数未満である場合、前記検知手段による検知に基づき、前記第2の領域に構成された回路を再構成することなく、前記第1の機能を実行するための回路を前記第1の領域に構成する処理を再度行い、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数以上である場合、前記検知手段の検知手段による検知に基づき、前記第3の回路構成情報に従って、前記第2の領域に前記第1の機能を実行する回路を構成する処理を行うことを特徴とする情報処理装置。
In an information processing device having a plurality of regions including at least a first region and a second region, and the circuit can be independently reconfigured for each region.
A first circuit configuration information for configuring a circuit that executes a first function in the first region, and a second circuit for configuring a circuit that executes a second function in the second region. A storage means for storing configuration information and a third circuit configuration information for configuring a circuit that executes the first function in the second region.
Based on the first circuit configuration information stored in the storage means, a circuit for executing the first function is configured in the first region, and the second circuit stored in the storage means. Based on the configuration information, the control means for configuring the circuit for executing the second function in the second region, and the control means.
It has a detection means for detecting that the process of forming a circuit for executing the first function in the first region by the control means has failed.
When the number of times that the detection means has detected that the process of forming the circuit for executing the first function in the first region has failed is less than a predetermined number, the control means detects it by the detection means. based, wherein, without the need to reconfigure the circuit configured in the second region, it has again the row processing included in a circuit for performing the first function to the first region, said detecting means the When the number of times that the process of forming the circuit that executes the first function in the first region has been detected has failed is a predetermined number or more, the third circuit is based on the detection by the detection means of the detection means. An information processing apparatus characterized in that a process of forming a circuit for executing the first function is performed in the second region according to the configuration information.
前記制御手段は、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数に基づき、前記第1の領域に前記第1の機能を実行する回路を構成する処理を再度行うことを特徴とする請求項1に記載の情報処理装置。 The control means has the first function in the first region based on the number of times that the detection means has detected that the process of forming the circuit for executing the first function has failed in the first region. The information processing apparatus according to claim 1, wherein the processing for forming the circuit for executing the above is performed again. 前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数以上である場合に、前記複数の領域から前記第2の領域を、前記第1の機能を実行する回路を構成する領域として特定する特定手段をさらに有し、
前記制御手段は、前記特定手段により特定された前記第2の領域に前記第1の機能を実行する回路を構成するための前記第3の回路構成情報に基づき回路を構成することを特徴とする請求項1または2に記載の情報処理装置。
When the number of times that the detection means has detected that the process of forming the circuit that executes the first function has failed in the first region is a predetermined number or more, the second region is obtained from the plurality of regions. and further comprising a specifying means for specifying a region constituting the circuit for executing the first function,
The control means is characterized in that a circuit is configured based on the third circuit configuration information for configuring a circuit that executes the first function in the second region specified by the specific means. The information processing apparatus according to claim 1 or 2.
前記第2の機能は、所定の処理の実行にれない機能であることを特徴とする請求項に記載の情報処理装置。 The second function, the information processing apparatus according to claim 3, characterized in that the function is not for interest in the execution of the predetermined process. 前記制御手段は、前記検知手段が前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数以上である場合、前記第2の領域に構成されている回路を前記第3の回路構成情報で構成される回路で上書きすることにより前記第1の機能を実行する回路を構成することを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。 When the number of times that the detecting means has detected that the processing for forming the circuit that executes the first function has failed in the first region is equal to or more than a predetermined number , the control means is set in the second region. claims 1 to any one of 4, characterized in that a circuit for performing the first function by overwriting the circuit composed of the circuit which is constituted by the third circuit configuration information The information processing device described in. 原稿上の画像を読み取り、画像データを生成する読取手段をさらに有し、
前記第1の機能は前記読取手段により生成された前記画像データを処理する機能であることを特徴とする請求項1乃至のいずれか一項に記載の情報処理装置。
Further having a reading means for reading an image on a document and generating image data,
The information processing apparatus according to any one of claims 1 to 5 , wherein the first function is a function of processing the image data generated by the reading means.
用紙に画像を印刷する印刷手段をさらに有し、
前記第1の機能は前記印刷手段により印刷される画像を生成する機能であることを特徴とする請求項1乃至のいずれか一項に記載の情報処理装置。
It also has a printing means for printing images on paper,
The information processing apparatus according to any one of claims 1 to 6 , wherein the first function is a function of generating an image printed by the printing means.
前記第1の領域と前記第2の領域を含む前記複数の領域は一つのモジュールに含まれることを特徴とする請求項1乃至のいずれか一項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 7 , wherein the first region and the plurality of regions including the second region are included in one module. 少なくとも第1の領域と第2の領域を含む複数の領域を有し、領域ごとに独立して再構成することのできる回路と、
前記第1の領域に第1の機能を実行する回路を構成するための第1の回路構成情報と、前記第2の領域に第2の機能を実行する回路を構成するための第2の回路構成情報と、前記第2の領域に前記第1の機能を実行する回路を構成するための第3の回路構成情報とを記憶する記憶手段と、を有する情報処理装置の制御方法において、
前記記憶手段に記憶された前記第1の回路構成情報に基づき、前記第1の領域に前記第1の機能を実行するための回路を構成し、前記記憶手段に記憶された前記第2の回路構成情報に基づき前記第2の領域に前記第2の機能を実行するための回路を構成する第1の制御工程と、
前記第1の制御工程において前記第1の領域への前記第1の機能を実行する回路を構成する処理が失敗したことを検知する検知工程と
前記検知工程で前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数未満である場合、前記検知工程における検知に基づき、前記第2の領域に構成された回路の再構成を行うことなく、前記第1の機能を実行するための回路を前記第1の領域に構成する処理を再度い、前記検知工程で前記第1の領域に前記第1の機能を実行する回路を構成する処理に失敗したことを検知した回数が所定数以上である場合、前記検知工程における検知に基づき、前記第3の回路構成情報に従って、前記第2の領域に前記第1の機能を実行する回路を構成する処理を行う第2の制御工程と、を有することを特徴とする情報処理装置の制御方法。
A circuit that has a plurality of regions including at least a first region and a second region and can be reconstructed independently for each region.
A first circuit configuration information for configuring a circuit that executes a first function in the first region, and a second circuit for configuring a circuit that executes a second function in the second region. In a control method of an information processing apparatus having a storage means for storing configuration information and a third circuit configuration information for configuring a circuit that executes the first function in the second region.
Based on the first circuit configuration information stored in the storage means, a circuit for executing the first function is configured in the first area, and the second circuit stored in the storage means. A first control step that configures a circuit for executing the second function in the second region based on the configuration information, and
In the first control step, a detection step of detecting that the process of forming a circuit for executing the first function in the first region has failed, and a detection step of detecting failure .
When the number of times that the process of forming the circuit that executes the first function in the first region is detected in the detection step is less than a predetermined number, the second is based on the detection in the detection step. of without performing reconfiguration of the circuit constituted in the region, the circuitry for performing the first function have again line processing constituting the first region, the first region in the detection step When the number of times that the process of forming the circuit that executes the first function is detected has failed is equal to or more than a predetermined number, the second is based on the detection in the detection step and according to the third circuit configuration information. A control method for an information processing apparatus, which comprises a second control step for performing a process of forming a circuit for executing the first function in the region of the above.
JP2019146823A 2019-08-08 2019-08-08 Information processing device and its control method Active JP6864721B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019146823A JP6864721B2 (en) 2019-08-08 2019-08-08 Information processing device and its control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019146823A JP6864721B2 (en) 2019-08-08 2019-08-08 Information processing device and its control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014129708A Division JP6598432B2 (en) 2014-06-24 2014-06-24 Image processing apparatus, control method thereof, and program

Publications (2)

Publication Number Publication Date
JP2020004429A JP2020004429A (en) 2020-01-09
JP6864721B2 true JP6864721B2 (en) 2021-04-28

Family

ID=69100334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019146823A Active JP6864721B2 (en) 2019-08-08 2019-08-08 Information processing device and its control method

Country Status (1)

Country Link
JP (1) JP6864721B2 (en)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3684901B2 (en) * 1999-03-02 2005-08-17 富士ゼロックス株式会社 Information processing system
JP3491579B2 (en) * 1999-11-04 2004-01-26 日本電信電話株式会社 Logic circuit data generation method and apparatus, and storage medium storing logic circuit data generation program
JP2006099305A (en) * 2004-09-29 2006-04-13 Hitachi Ltd Configuration control method for programmable lsi
JP4626349B2 (en) * 2005-03-18 2011-02-09 コニカミノルタホールディングス株式会社 Hardware configuration device
JP3877002B2 (en) * 2006-01-05 2007-02-07 富士ゼロックス株式会社 Information processing system and information processing method
JP5023856B2 (en) * 2007-07-18 2012-09-12 富士ゼロックス株式会社 Arithmetic processing device and arithmetic processing program
JP5277615B2 (en) * 2007-11-22 2013-08-28 富士ゼロックス株式会社 Data processing apparatus and data processing program
JP2009140353A (en) * 2007-12-07 2009-06-25 Toshiba Corp Reconfigurable integrated circuit and self-repair system using the same
JP5876319B2 (en) * 2012-02-21 2016-03-02 日本電信電話株式会社 Service providing system, service providing method, resource manager, program
JP2013257640A (en) * 2012-06-11 2013-12-26 Fujitsu Ltd Configuration controller, configuration control method and configuration control program

Also Published As

Publication number Publication date
JP2020004429A (en) 2020-01-09

Similar Documents

Publication Publication Date Title
JP6598432B2 (en) Image processing apparatus, control method thereof, and program
JP5943736B2 (en) Information processing apparatus, information processing apparatus control method, and program
JP5746100B2 (en) Image forming apparatus
JP2016035692A (en) Image processing apparatus, system, information processing method, and program
US10122883B2 (en) Image processing apparatus including circuit configuration and method of controlling the same
JP5438371B2 (en) Image processing apparatus and image processing method
JP2016103755A (en) Information processing apparatus, image processing apparatus including information processing apparatus, and control method and program of the same
JP6478525B2 (en) Image processing apparatus, control method thereof, and program
US9509878B2 (en) Image processing apparatus and method for controlling the same, and storage medium
KR20140139973A (en) Image forming apparatus having hibernation function, control method therefor, and storage medium
JP6864721B2 (en) Information processing device and its control method
JP2015149025A (en) Image processing device and control method therefor, and program
JP5277615B2 (en) Data processing apparatus and data processing program
US9760285B2 (en) Image processing system and image processing apparatus for configuring logical circuit on circuit according to configuration data
JP2017118450A (en) Data processing apparatus, method of controlling the same, and program
JP7263067B2 (en) Information processing device and information processing device control method
US10594877B2 (en) Image processing apparatus, control method thereof, and storage medium
WO2018179739A1 (en) Information processing device, information processing method, and program
JP3836109B2 (en) Programmable logic circuit control device, programmable logic circuit control method, and program
JP2016076867A (en) Information processor, control method for information processor, and program
JP2006279539A (en) Image storage device and image storage method
JP2015197863A (en) Image processor and control method thereof, and program
JP7185587B2 (en) Control method and control device
JP2015106751A (en) Image processing apparatus, and control method and program of the same
JP2015139009A (en) Image processing device, control method therefor and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190906

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201127

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210402

R151 Written notification of patent or utility model registration

Ref document number: 6864721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151