JP2017085322A - Image processing system and its control method, and program - Google Patents

Image processing system and its control method, and program Download PDF

Info

Publication number
JP2017085322A
JP2017085322A JP2015211109A JP2015211109A JP2017085322A JP 2017085322 A JP2017085322 A JP 2017085322A JP 2015211109 A JP2015211109 A JP 2015211109A JP 2015211109 A JP2015211109 A JP 2015211109A JP 2017085322 A JP2017085322 A JP 2017085322A
Authority
JP
Japan
Prior art keywords
processing
cpu
switching
image processing
image
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
JP2015211109A
Other languages
Japanese (ja)
Inventor
雅教 市川
Masanori Ichikawa
雅教 市川
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 JP2015211109A priority Critical patent/JP2017085322A/en
Publication of JP2017085322A publication Critical patent/JP2017085322A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Facsimiles In General (AREA)
  • Logic Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To prevent degradation in the performance of the entire system by avoiding an occurrence of a situation in which FPGA cannot be effectively utilized.SOLUTION: In an image processing system having a plurality of processing means that can perform processing in parallel, at least one of the plurality of processing means having FPGA, a processing form is determined on the basis of the respective use states of the plurality of managed processing means and a processing form selected to perform predetermined processing from a plurality of processing forms performed using at least one of the plurality of processing means. Control is exerted so as to perform the processing requested in the determined processing form. While the requested processing is performed, it is determined on the basis of a use state managed by managing means whether any of the plurality of processing means not used in the determined processing form has become able to perform the requested processing. A processing form is switched such that the processing requested according to the determination is performed in the processing form using the processing means that has become able to perform the requested processing.SELECTED DRAWING: Figure 21

Description

本発明は、画像処理装置とその制御方法、及びプログラムに関する   The present invention relates to an image processing apparatus, a control method thereof, and a program.

特許文献1は、FPGA(Field Programmable Gate Array)の回路構成を変更する方法として、従来のようにROMからコンフィギュレーションデータをロードする方法とは異なる新しい手法を開示している。それによれば、CPUをマスターデバイスとし、HDDからコンフィギュレーションデータ(回路構成情報)をFPGAにロードしている。この手法によれば、ROMのデータを書き換えることなく、HDDから、その機能に対応するファイルをロードするだけでFPGAの回路構成を更新できる。   Patent Document 1 discloses a new method for changing the circuit configuration of an FPGA (Field Programmable Gate Array), which is different from the conventional method of loading configuration data from a ROM. According to this, the CPU is used as a master device, and configuration data (circuit configuration information) is loaded from the HDD into the FPGA. According to this method, the circuit configuration of the FPGA can be updated by simply loading a file corresponding to the function from the HDD without rewriting the ROM data.

また特許文献2は、プログラムで動作する逐次演算部、並列演算部、及びそれらを制御するCPUを有するシステムにおいて、CPUは逐次演算部、並列演算部にプログラムを送信し、両演算部はそのプログラムで動作することを記載している。このとき逐次演算部、並列演算部は、それぞれ自分自身で負荷を測定し、その測定した負荷量をCPUに通知し、CPUは、その負荷量に基づいて、その処理を実行する逐次演算部もしくは並列演算部を決定し、その処理を実行するように指示している。このとき、CPUから指示を受けた演算部は、処理を受けた後に、自身がその処理を受け入れ可能かどうかを判定し、受け入れ可能と判定した場合にその処理を開始する。一方、その処理を受け入れられないと判定した場合は、受け入れ可能になるまで、その演算部で、その処理の実行が待たされることが記載されている。   Patent Document 2 discloses a system having a sequential operation unit, a parallel operation unit, and a CPU that controls them in a program. The CPU transmits the program to the sequential operation unit and the parallel operation unit. It is described that it works with. At this time, the sequential calculation unit and the parallel calculation unit each measure the load by themselves, and notify the CPU of the measured load amount, and the CPU executes the processing based on the load amount or The parallel operation unit is determined and the process is instructed to be executed. At this time, the arithmetic unit that receives the instruction from the CPU determines whether it can accept the process after receiving the process, and starts the process when it is determined that it can be accepted. On the other hand, it is described that when it is determined that the process cannot be accepted, the calculation unit waits for the process until the process becomes acceptable.

特開2013−098823号公報JP2013-098823A 特開2011−191903号公報JP 2011-191903 A

CPUによる回路構成の変更が可能な(コンフィグレーション可能な)FPGAを備え、同一の処理をCPUとFPGAとで実行できる処理部を複数備えるシステムに、上述の特許文献2で提案されているような技術を適用する場合を考える。このとき、FPGAにより実行させたい処理がある場合、CPUが処理を実行中でなくFPGAが別の処理を実行中であると、そのFPGAによる別の処理が終了するまで、実行させたい処理の開始が待たされることになる。また仮に、実行中でないCPUがその実行させたい処理を開始した場合、CPUがその処理を実行中に、FPGAが使用状態から未使用状態に変化することが考えられる。このように、単に処理を開始する前に、CPUやFPGAそれぞれの状況に応じて処理の振分けを行うと、FPGAを有効活用できない事態が発生し、システム全体のパフォーマンスを向上できないおそれがある。   As described in Patent Document 2 described above, a system including an FPGA in which a circuit configuration can be changed (configurable) by a CPU and a plurality of processing units capable of executing the same processing by the CPU and the FPGA. Consider the case of applying technology. At this time, if there is a process to be executed by the FPGA, if the CPU is not executing the process and the FPGA is executing another process, the start of the process to be executed until the other process by the FPGA ends. Will be waiting. Also, if a CPU that is not being executed starts a process that the CPU wants to execute, the FPGA may change from a use state to an unused state while the CPU is executing the process. In this way, if processing is distributed according to the status of the CPU and FPGA before simply starting processing, a situation in which the FPGA cannot be effectively used may occur, and the performance of the entire system may not be improved.

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

本発明の特徴は、選択された処理形態により処理を実行中に、刻々と変わる処理状況に応じて最適な処理形態で処理を実行する技術を提供することにある。   A feature of the present invention is to provide a technique for executing a process in an optimum process form according to a process situation that changes every moment while the process is being executed in a selected process form.

上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
それぞれが並行して処理できる複数の処理手段を有し、前記複数の処理手段の少なくとも一つがFPGA(Field Programmable Gate Array)を有する画像処理装置であって、
前記複数の処理手段の少なくとも一つを使用して実行する複数の処理形態から、所定の処理を実行するための処理形態を選択する選択手段と、
前記複数の処理手段の使用状況を管理する管理手段と、
処理の要求を受け付けると、前記要求された処理を実行するための処理形態を、前記管理手段が管理している前記複数の処理手段の使用状況と、前記選択手段により選択された処理形態とに基づいて決定する決定手段と、
前記決定手段により決定された処理形態で前記要求された処理を実行するように制御する制御手段と、
前記制御手段により前記要求された処理を実行している際、前記決定された処理形態で使用されていない前記複数の処理手段のいずれかが前記要求された処理を実行可能になったかどうかを、前記管理手段が管理している前記使用状況に基づいて判定する判定手段と、
前記判定手段の判定に従って、前記要求された処理を、前記要求された処理を実行可能になった処理手段を使用する処理形態で実行するように処理形態を切り替える切替手段と、を有し、
前記制御手段は、前記切替手段により処理形態の切り替えがなされると、前記実行するように切替えられた処理形態が、前記FPGAを使用する処理形態であれば前記FPGAを前記要求された処理に従って再構成することを特徴とする。
In order to achieve the above object, an image processing apparatus according to an aspect of the present invention has the following arrangement. That is,
Each of the image processing apparatuses includes a plurality of processing units capable of processing in parallel, and at least one of the plurality of processing units includes an FPGA (Field Programmable Gate Array),
Selecting means for selecting a processing form for executing a predetermined process from a plurality of processing forms executed using at least one of the plurality of processing means;
Management means for managing the usage status of the plurality of processing means;
When a processing request is received, the processing mode for executing the requested processing is changed to the usage status of the plurality of processing units managed by the management unit and the processing mode selected by the selection unit. A determination means for determining based on;
Control means for controlling to execute the requested processing in the processing mode determined by the determining means;
When executing the requested processing by the control means, whether any of the plurality of processing means that are not used in the determined processing mode is capable of executing the requested processing, Determination means for determining based on the use status managed by the management means;
Switching means for switching the processing mode so as to execute the requested processing in a processing mode that uses the processing unit capable of executing the requested processing in accordance with the determination of the determination unit;
When the processing mode is switched by the switching unit, the control unit re-executes the FPGA according to the requested processing if the processing mode switched to the execution is a processing mode using the FPGA. It is characterized by comprising.

本発明によれば、所定の処理を、選択された処理形態で開始した後、他の処理手段が実行可能になると、所定の処理をほかの処理形態に切替えて実行できるようになる。これにより、画像処理等の処理時間が短縮されて、パフォーマンスを向上することが可能となる。   According to the present invention, after the predetermined process is started in the selected processing form, when another processing means can be executed, the predetermined process can be switched to another processing form and executed. Thereby, the processing time for image processing or the like is shortened, and the performance can be improved.

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

添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態に係る画像形成装置の構成を説明するブロック図。 実施形態に係る画像形成装置の拡張処理部の構成を説明するブロック図。 実施形態に係るFPGAの構成を説明するブロック図。 実施形態に係る画像形成装置のHDDに記憶されているFPGAの回路構成情報の構成を説明する図。 実施形態に係る画像形成装置において拡張画像処理を実行するときの処理の流れを説明するフローチャート。 実施形態に係る画像形成装置のメインのCPUと、FPGAのCPUのそれぞれが担当している処理を説明する図。 実施形態に係る拡張処理キューの構成例を説明する図。 実施形態に係る画像形成装置が拡張処理を実行する際に取り得る処理形態を説明する図。 実施形態に係る画像形成装置が保持する処理形態管理テーブルの一例を示す図。 図5のS500の拡張処理要求の受信処理を説明するフローチャート。 図5のS501の拡張処理要求の選択処理を説明するフローチャート。 図5のS502の処理形態の選択処理を説明するフローチャート。 実施形態に係る処理部の空き状況を管理する空き状況管理テーブルの一例を示す図。 実施形態に係る拡張処理実行管理テーブルの一例を示す図。 実施形態に係る画像形成装置におけるFPGAの再構成処理を説明するフローチャート。 実施形態に係る画像形成装置における画像処理要求の受信処理を説明するフローチャート。 実施形態に係る画像形成装置が保持するページ状況管理テーブルの一例を示す図。 実施形態に係る画像形成装置が保持するページ内状況管理テーブルの一例を示す図。 実施形態に係る画像形成装置が画像処理の実行スレッドにより実行する画像処理制御を説明するフローチャート。 実施形態に係る画像形成装置による拡張処理の終了処理(図5のS507)を説明するフローチャート。 図20のS2003の処理形態の最適化処理を説明するフローチャート。 実施形態に係る画像形成装置による第一の処理形態の切換処理(S2107)を説明するフローチャート。 実施形態に係る画像形成装置による第二の処理形態の切換処理(S2107)を説明するフローチャート。 実施形態に係る画像形成装置による第三の処理形態の切換処理(S2107)を説明するフローチャート。 実施形態に係る画像形成装置による第四の処理形態の切換処理(S2107)を説明するフローチャート。 実施形態に係る画像形成装置で実行される4つの処理形態の切換処理の違いを説明する模式図。 実施形態に係る画像形成装置で実行される4つの処理形態の切換処理の違いを説明する模式図。
The accompanying drawings are included in the specification, constitute a part thereof, show an embodiment of the present invention, and are used together with the description to explain the principle of the present invention.
1 is a block diagram illustrating a configuration of an image forming apparatus according to an embodiment of the present invention. FIG. 3 is a block diagram illustrating a configuration of an extension processing unit of the image forming apparatus according to the embodiment. 1 is a block diagram illustrating a configuration of an FPGA according to an embodiment. FIG. 4 is a diagram for explaining the configuration of FPGA circuit configuration information stored in the HDD of the image forming apparatus according to the embodiment. 6 is a flowchart for explaining the flow of processing when executing extended image processing in the image forming apparatus according to the embodiment. FIG. 4 is a diagram illustrating processing that is handled by each of the main CPU of the image forming apparatus according to the embodiment and the CPU of the FPGA. FIG. 6 is a diagram for explaining a configuration example of an extended processing queue according to the embodiment. FIG. 6 is a diagram for explaining processing modes that can be taken when the image forming apparatus according to the embodiment executes expansion processing. 6 is a diagram illustrating an example of a processing form management table held by the image forming apparatus according to the embodiment. FIG. 6 is a flowchart for explaining an extension process request reception process in S500 of FIG. 5; 6 is a flowchart for explaining an extension process request selection process in S501 of FIG. FIG. 6 is a flowchart for explaining processing mode selection processing in S502 of FIG. 5; FIG. The figure which shows an example of the empty condition management table which manages the empty condition of the process part which concerns on embodiment. The figure which shows an example of the extended process execution management table which concerns on embodiment. 6 is a flowchart for explaining FPGA reconfiguration processing in the image forming apparatus according to the embodiment. 6 is a flowchart for explaining image processing request reception processing in the image forming apparatus according to the embodiment. 6 is a diagram illustrating an example of a page status management table held by the image forming apparatus according to the embodiment. FIG. 6 is a diagram illustrating an example of an in-page situation management table held by the image forming apparatus according to the embodiment. FIG. 6 is a flowchart for describing image processing control executed by an image processing execution thread by the image forming apparatus according to the embodiment. 6 is a flowchart for explaining end processing (S507 in FIG. 5) of expansion processing by the image forming apparatus according to the embodiment. The flowchart explaining the optimization process of the process form of S2003 of FIG. 10 is a flowchart for explaining a switching process (S2107) of the first processing form by the image forming apparatus according to the embodiment. 12 is a flowchart for explaining a switching process (S2107) of the second processing form by the image forming apparatus according to the embodiment. 10 is a flowchart for explaining a switching process (S2107) of a third processing form by the image forming apparatus according to the embodiment. 14 is a flowchart for explaining a switching process (S2107) of a fourth processing form by the image forming apparatus according to the embodiment. FIG. 6 is a schematic diagram for explaining a difference in switching processing among four processing modes executed by the image forming apparatus according to the embodiment. FIG. 6 is a schematic diagram for explaining a difference in switching processing among four processing modes executed by the image forming apparatus according to the embodiment.

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

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

この実施形態に係る画像形成装置100は、画像データの入出力や送受信と、それに関連する各種の画像処理を行うことができる複合機(MFP)として説明するが、本発明に係る画像処理装置はこのような多機能の画像形成装置に限らない。画像形成装置100は、メインコントローラ(主制御部)101、ユーザインタフェースである操作部102、画像入力デバイスであるスキャナ103、及び、画像出力デバイスであるプリンタ104を備える。操作部102、スキャナ103及び、プリンタ104は、それぞれメインコントローラ101に接続され、メインコントローラ101が各部の動作を制御する。また画像形成装置100は、メインコントローラ101が備える、後述する拡張I/F129を介して拡張処理部105と接続している。メインコントローラ101は、主制御を司るCPU(Central Processing Unit)106を備える。CPU106は、システムバス130を介して、RAM(Random Access Memory)107、ROM(Read Only Memory)108、不揮発メモリ109、HDD(Hard Disk Drive)121と接続する。更に、CPU106は、画像バスI/F(インタフェース)110、操作部I/F111、ネットワーク(NW)通信部112、モデム113、及び、拡張I/F129と接続する。   The image forming apparatus 100 according to this embodiment will be described as a multifunction peripheral (MFP) that can perform input / output and transmission / reception of image data and various image processing related thereto, but the image processing apparatus according to the present invention is described below. It is not limited to such a multifunctional image forming apparatus. The image forming apparatus 100 includes a main controller (main control unit) 101, an operation unit 102 as a user interface, a scanner 103 as an image input device, and a printer 104 as an image output device. The operation unit 102, the scanner 103, and the printer 104 are each connected to the main controller 101, and the main controller 101 controls the operation of each unit. The image forming apparatus 100 is connected to the expansion processing unit 105 via an expansion I / F 129 provided in the main controller 101 which will be described later. The main controller 101 includes a CPU (Central Processing Unit) 106 that performs main control. The CPU 106 is connected to a RAM (Random Access Memory) 107, a ROM (Read Only Memory) 108, a nonvolatile memory 109, and an HDD (Hard Disk Drive) 121 via a system bus 130. Further, the CPU 106 is connected to the image bus I / F (interface) 110, the operation unit I / F 111, the network (NW) communication unit 112, the modem 113, and the expansion I / F 129.

RAM107は、CPU106の主記憶部として作業領域を提供する読み書き可能なメモリで、処理する画像データを一時記憶するための画像メモリとしても使用される。ROM108はブートROMで、起動に必要なブートプログラム、及び、動作に必要な各種処理プログラムを格納している。不揮発メモリ109は、例えばフラッシュメモリ等の不揮発性メモリで、画像形成装置100の電源遮断後にも保持が必要なシステムソフトウエアや設定値や各種データ等を格納している。操作部I/F111は、例えば、タッチパネル機能を有する操作部102との間で入出力を行うためのインタフェースである。操作部I/F111は、操作部102に対して表示すべき画像データを出力し、またユーザが操作部102を介して入力した情報をCPU106に伝送する。ネットワーク通信部112は、LAN等のネットワークと接続するためのインタフェースで、LANに対して情報の入出力を行う。モデム113は公衆回線と接続し、公衆回線との間で情報の入出力を行う。画像バスI/F110は、システムバス130と画像データを転送するための画像バス114とを接続するインタフェースであり、データ構造を変換するバスブリッジとして動作する。   A RAM 107 is a readable / writable memory that provides a work area as a main storage unit of the CPU 106, and is also used as an image memory for temporarily storing image data to be processed. A ROM 108 is a boot ROM, and stores a boot program necessary for startup and various processing programs necessary for operation. The non-volatile memory 109 is a non-volatile memory such as a flash memory, for example, and stores system software, setting values, various data, and the like that need to be retained even after the image forming apparatus 100 is powered off. The operation unit I / F 111 is an interface for performing input / output with the operation unit 102 having a touch panel function, for example. The operation unit I / F 111 outputs image data to be displayed to the operation unit 102 and transmits information input by the user via the operation unit 102 to the CPU 106. The network communication unit 112 is an interface for connecting to a network such as a LAN, and inputs / outputs information to / from the LAN. The modem 113 is connected to a public line and inputs / outputs information to / from the public line. The image bus I / F 110 is an interface that connects the system bus 130 and an image bus 114 for transferring image data, and operates as a bus bridge that converts a data structure.

画像バス114には、RIP(Raster Image Processor)115、デバイスI/F116、スキャナ画像処理部117、プリンタ画像処理部118、画像回転部119、及び、画像圧縮部120が接続される。RIP115は、LANから受信したPDL(Page Description Language)データをビットマップイメージに展開する。デバイスI/F116は、スキャナ103やプリンタ104とメインコントローラ101とを接続するインタフェースであり、画像データの同期系、又は、非同期系の変換を行う。スキャナ画像処理部117は、スキャナ103から入力した画像データに対して、補正、加工、編集等の画像処理を行う。プリンタ画像処理部118は、プリンタ104へ出力する画像データに対して、色変換、フィルタ処理、解像度変換等の処理を行う。画像回転部119は、画像データの回転を行う。画像圧縮部120は、多値画像データに対して、例えばJPEG圧縮伸張処理を行い、2値画像データに対して、例えばJBIG、MMR、MHなどの符号化方式を用いた圧縮伸張処理を行う。   A RIP (Raster Image Processor) 115, a device I / F 116, a scanner image processing unit 117, a printer image processing unit 118, an image rotation unit 119, and an image compression unit 120 are connected to the image bus 114. The RIP 115 expands PDL (Page Description Language) data received from the LAN into a bitmap image. The device I / F 116 is an interface for connecting the scanner 103 or the printer 104 and the main controller 101, and performs synchronous or asynchronous conversion of image data. A scanner image processing unit 117 performs image processing such as correction, processing, and editing on the image data input from the scanner 103. A printer image processing unit 118 performs processes such as color conversion, filter processing, and resolution conversion on image data output to the printer 104. The image rotation unit 119 rotates image data. The image compression unit 120 performs, for example, JPEG compression / decompression processing on multi-valued image data, and performs compression / decompression processing on the binary image data using, for example, an encoding method such as JBIG, MMR, or MH.

HDD121は不揮発のデータ記憶装置であり、画像データ、システムデータ、ユーザデータ等の各種データ、及び、CPU106が実行する動作プログラム等を保持している。拡張処理部105として接続されるFPGAを備えるオプションボードの制御プログラムや回路構成情報もこれに含まれる。メインコントローラ101が、HDD121を接続しない構成を採る場合は、各種データは不揮発メモリ109に保持される。拡張I/F129は、例えば、PCIエクスプレスやUSBなどの周辺機器接続用のインタフェースであり、接続される周辺機器とのデータ送受信を行う。実施形態では、拡張処理部105と接続される。また拡張処理部105への電源供給は、後述する電力供給ライン128を通して行われる。拡張処理部105の詳細は後述する。   The HDD 121 is a nonvolatile data storage device, and holds various data such as image data, system data, and user data, and an operation program executed by the CPU 106. This includes a control program and circuit configuration information for an option board including an FPGA connected as the expansion processing unit 105. When the main controller 101 adopts a configuration in which the HDD 121 is not connected, various data are held in the nonvolatile memory 109. The extension I / F 129 is an interface for connecting peripheral devices such as PCI Express and USB, and performs data transmission / reception with the connected peripheral devices. In the embodiment, it is connected to the expansion processing unit 105. Further, power supply to the expansion processing unit 105 is performed through a power supply line 128 described later. Details of the extension processing unit 105 will be described later.

電源制御部122は、電源装置123から電力供給ライン124を介して受容したDC電源を、電力供給ライン125及び126を介してメインコントローラ101の回路要素140,141に供給する。また電力供給ライン128は、拡張処理部105に電源を供給する。電源制御部122は、後述する画像形成装置100の電力状態に応じて電源供給形態を切り換えて給電制御を行う。また電源制御部122は、操作部I/F111、ネットワーク通信部112、及び、モデム113、及び、CPU106からの制御信号線127を介して制御信号を受信する。そして、この受信した制御信号に基づいて各電力供給ライン(125,126,128)への電力供給制御を行う。電力供給ライン125は、RIP115、デバイスI/F116、スキャナ画像処理部117、プリンタ画像処理部118、画像回転部119、及び、画像圧縮部120を含む回路要素140に接続される。また電力供給ライン126は、CPU106、ROM108、RAM107、画像バスI/F110、操作部I/F111、NW通信部112、モデム部113、HDD121、及び、拡張I/F129を含む回路要素141に接続される。更に電力供給ライン128は、拡張I/F129に接続される回路要素142へ電力を供給する。   The power controller 122 supplies the DC power received from the power supply device 123 via the power supply line 124 to the circuit elements 140 and 141 of the main controller 101 via the power supply lines 125 and 126. The power supply line 128 supplies power to the extension processing unit 105. The power supply control unit 122 performs power supply control by switching the power supply mode according to the power state of the image forming apparatus 100 described later. Further, the power control unit 122 receives a control signal via the operation unit I / F 111, the network communication unit 112, the modem 113, and the control signal line 127 from the CPU 106. And based on this received control signal, power supply control to each power supply line (125, 126, 128) is performed. The power supply line 125 is connected to a circuit element 140 including a RIP 115, a device I / F 116, a scanner image processing unit 117, a printer image processing unit 118, an image rotation unit 119, and an image compression unit 120. The power supply line 126 is connected to a circuit element 141 including a CPU 106, ROM 108, RAM 107, image bus I / F 110, operation unit I / F 111, NW communication unit 112, modem unit 113, HDD 121, and expansion I / F 129. The Further, the power supply line 128 supplies power to the circuit element 142 connected to the expansion I / F 129.

ここで画像形成装置100は、通常状態と省電力状態の2つの動作状態を取り得る。通常状態では、電源装置123は、電力供給ライン124を介して電源制御部122に電力供給する。このとき電源装置123は、大容量の電源回路と小容量の電源回路を併用し、通常状態で使用する全電力容量(例えば、1400ワット)を供給できる。またCPU106は、電力供給ライン125、電力供給ライン126、及び、電力供給ライン128に対する電力供給が有効となるように電源制御部122を制御する。   Here, the image forming apparatus 100 can take two operation states, a normal state and a power saving state. In the normal state, the power supply device 123 supplies power to the power supply control unit 122 via the power supply line 124. At this time, the power supply device 123 can use a large-capacity power supply circuit and a small-capacity power supply circuit together to supply the entire power capacity (for example, 1400 watts) used in the normal state. Further, the CPU 106 controls the power supply control unit 122 so that power supply to the power supply line 125, the power supply line 126, and the power supply line 128 is enabled.

一方、省電力状態では、電源装置123は、電力供給ライン124を介して電源制御部122に電力を供給する。このとき電源装置123は、小容量の電源回路を使用し、省電力状態で使用する電力容量(例えば、30ワット)を供給できる。またCPU106は、電力供給ライン125と電力供給ライン128を介した電力供給が無効で、かつ、電力供給ライン126を介した電力供給が有効となるように電源制御部122を制御する。このとき、省電力状態で使用を想定しない機能を備える回路要素140や回路要素142に対する電力供給は遮断される。従って、その分、通常状態よりも消費電力を低減できる。他方、省電力状態においても電源供給ライン126を介した電力供給は有効であり、回路要素141を構成する各回路要素は、通常状態と同様に動作できる。   On the other hand, in the power saving state, the power supply device 123 supplies power to the power supply control unit 122 via the power supply line 124. At this time, the power supply device 123 can supply a power capacity (for example, 30 watts) used in a power saving state by using a small capacity power supply circuit. Further, the CPU 106 controls the power supply control unit 122 so that power supply via the power supply line 125 and the power supply line 128 is invalid and power supply via the power supply line 126 is valid. At this time, power supply to the circuit element 140 and the circuit element 142 having a function that is not assumed to be used in the power saving state is cut off. Therefore, the power consumption can be reduced as compared with the normal state. On the other hand, power supply via the power supply line 126 is effective even in the power saving state, and each circuit element constituting the circuit element 141 can operate in the same manner as in the normal state.

図2は、実施形態に係る画像形成装置の拡張処理部105の構成を説明するブロック図である。   FIG. 2 is a block diagram illustrating the configuration of the expansion processing unit 105 of the image forming apparatus according to the embodiment.

拡張処理部105は、ホストI/F201、FPGA(Field Programmable Gate Array)202、RAM203、CPU204、RAM205、及びそれらを接続するシステムバス206を有している。FPGA202は、回路構成情報に応じて論理回路を変更できる再構成デバイスであり、本実施形態では動的に回路を構成できるFPGAとして説明する。FPGA202の構成は図3を参照して後述する。   The expansion processing unit 105 includes a host I / F 201, an FPGA (Field Programmable Gate Array) 202, a RAM 203, a CPU 204, a RAM 205, and a system bus 206 for connecting them. The FPGA 202 is a reconfigurable device that can change a logic circuit in accordance with circuit configuration information. In the present embodiment, the FPGA 202 will be described as an FPGA that can dynamically configure a circuit. The configuration of the FPGA 202 will be described later with reference to FIG.

RAM203は、FPGA202が動作時にワークエリアとして使用する主記憶メモリであり、画像データ等の中間処理データを一時的に保持するのに使用される。CPU204は、ホストI/F201、FPGA202及び、RAM205と接続され、FPGA202の制御やソフトウエアによる画像処理を行う。RAM205は、CPU204の主記憶メモリとして使用されるメモリで、画像データを一時記憶するための画像メモリとしても使用される。システムバス206は、ホストI/F201、FPGA202、及び、CPU204を接続するバスである。この拡張処理部105をメインコントローラ101に接続することにより、画像形成装置100は、FPGA202やCPU204を使用した画像処理機能を拡張機能として実行できる。この拡張処理部105を用いた拡張処理の制御については後述する。   A RAM 203 is a main memory used as a work area when the FPGA 202 operates, and is used to temporarily hold intermediate processing data such as image data. The CPU 204 is connected to the host I / F 201, the FPGA 202, and the RAM 205, and performs control of the FPGA 202 and image processing by software. A RAM 205 is a memory used as a main storage memory of the CPU 204, and is also used as an image memory for temporarily storing image data. A system bus 206 is a bus that connects the host I / F 201, the FPGA 202, and the CPU 204. By connecting the extended processing unit 105 to the main controller 101, the image forming apparatus 100 can execute an image processing function using the FPGA 202 or the CPU 204 as an extended function. Control of extension processing using the extension processing unit 105 will be described later.

図3は、実施形態に係るFPGA202の構成を説明するブロック図である。   FIG. 3 is a block diagram illustrating the configuration of the FPGA 202 according to the embodiment.

FPGA202は、ホストI/F201と接続するためのホストI/F304、RAM203と接続するメモリコントローラ305、CPU204と接続するための外部I/F306、再構成できる論理回路領域となる機能部302とを有している。システムバス301は、ホストI/F304、メモリコントローラ305、外部I/F306及び機能部302を相互に接続している。   The FPGA 202 includes a host I / F 304 for connection to the host I / F 201, a memory controller 305 for connection to the RAM 203, an external I / F 306 for connection to the CPU 204, and a functional unit 302 that is a reconfigurable logic circuit area. doing. The system bus 301 connects the host I / F 304, the memory controller 305, the external I / F 306, and the function unit 302 to each other.

機能部302は、回路構成情報に基づいて、その回路構成情報に応じた機能を実現する回路が構成されて、その機能を実現する処理部である。ホストI/F304は、ホストI/F201を介して、メインコントローラ101の拡張I/F129と接続される。ホストI/F304は例えば、PCIエクスプレスで構成されるインタフェースであり、CPU106とFPGA202との通信を媒介する。メモリコントローラ305は、RAM203と接続するインタフェースで、機能部302やホストI/F304を介して受信するデータのRAM203への書き込み要求や、RAM203からのデータの読み出し要求に基づくメモリ制御を行う。外部I/F306は、CPU204と接続するインタフェースで、CPU204による機能部302等の制御を行う。実施形態に係るFPGA202では、ホストI/F304、メモリコントローラ305及び外部I/F306は、ハードマクロで構成される固定的な回路とする。   The function unit 302 is a processing unit that configures a circuit that realizes a function corresponding to the circuit configuration information based on the circuit configuration information and realizes the function. The host I / F 304 is connected to the expansion I / F 129 of the main controller 101 via the host I / F 201. The host I / F 304 is an interface configured by, for example, PCI Express, and mediates communication between the CPU 106 and the FPGA 202. The memory controller 305 is an interface connected to the RAM 203, and performs memory control based on a write request to the RAM 203 for data received via the functional unit 302 or the host I / F 304 and a read request for data from the RAM 203. An external I / F 306 is an interface connected to the CPU 204 and controls the functional unit 302 and the like by the CPU 204. In the FPGA 202 according to the embodiment, the host I / F 304, the memory controller 305, and the external I / F 306 are fixed circuits configured by hard macros.

またFPGA202は、電源オン時に、図示しないROMからFPGA202のホストI/F304、メモリコントローラ305、外部I/F306を形成する固定回路部の設定情報を読み出す。そして、その読み出した設定情報に基づいて、各I/Fの固定回路部の設定を行うことにより、各I/Fとの通信が可能な状態になる。   Further, when the power is turned on, the FPGA 202 reads setting information of a fixed circuit unit forming the host I / F 304, the memory controller 305, and the external I / F 306 of the FPGA 202 from a ROM (not shown). Based on the read setting information, the fixed circuit unit of each I / F is set to enable communication with each I / F.

図4は、実施形態に係る画像形成装置100のHDD121に記憶されているFPGA202の回路構成情報の構成を説明する図である。   FIG. 4 is a diagram illustrating the configuration of circuit configuration information of the FPGA 202 stored in the HDD 121 of the image forming apparatus 100 according to the embodiment.

この回路構成情報は、HDD121の回路構成情報の格納領域に、各機能ごとに保持されている。図4の回路構成情報401〜403は、各対応する拡張処理機能の回路構成情報である。これらの回路構成情報は、CPU106によりHDD121から読み出され、拡張I/F129を介してFPGA202に転送されることにより、FPGA202の再構成が行われる。   This circuit configuration information is stored in the circuit configuration information storage area of the HDD 121 for each function. The circuit configuration information 401 to 403 in FIG. 4 is circuit configuration information of each corresponding extended processing function. The circuit configuration information is read from the HDD 121 by the CPU 106 and transferred to the FPGA 202 via the expansion I / F 129, whereby the FPGA 202 is reconfigured.

この回路構成情報は、機能部302の回路を構成するための回路構成情報であり、この回路構成情報に従って機能部302の回路が再構成される。機能部302に構成される回路の機能の種類に応じて、回路構成情報は複数用意される。実施形態では、回路構成情報401、回路構成情報402、回路構成情報403の3つが用意されており、それぞれ異なる画像処理を実行可能な回路を構成するための情報である。例えば、回路構成情報401〜403は、解像度変換処理、色空間処理、画像加工処理などの拡張処理機能に対応しているとする。また回路構成情報401〜403は、後述する拡張処理701〜703にそれぞれ対応しているものとする。   The circuit configuration information is circuit configuration information for configuring the circuit of the functional unit 302, and the circuit of the functional unit 302 is reconfigured according to the circuit configuration information. A plurality of pieces of circuit configuration information are prepared according to the types of functions of the circuits configured in the functional unit 302. In the embodiment, three pieces of circuit configuration information 401, circuit configuration information 402, and circuit configuration information 403 are prepared, and are information for configuring circuits that can execute different image processing. For example, it is assumed that the circuit configuration information 401 to 403 corresponds to extended processing functions such as resolution conversion processing, color space processing, and image processing processing. In addition, the circuit configuration information 401 to 403 correspond to expansion processes 701 to 703 described later, respectively.

次に、実施形態に係る拡張処理部105を使用した画像形成装置100の典型的な動作の一例であるコピージョブの処理について説明する。   Next, a copy job process, which is an example of a typical operation of the image forming apparatus 100 using the extended processing unit 105 according to the embodiment, will be described.

CPU106は、操作部102を介して、ユーザによってコピージョブの実行が指示されたことを検知する。コピージョブには、拡張処理部105により提供される拡張処理(典型的には画像処理)を使用する設定がされているものとする。このコピージョブの実行が指示されるとCPU106は、デバイスI/F116を介して、スキャナ103に原稿の読み取りを指示する。スキャナ103は、原稿を読み取って得られた画像データを、デバイスI/F116を介してスキャナ画像処理部117へ送信する。これによりスキャナ画像処理部117は、その画像データに各種画像処理を行い、画像処理後の画像データをRAM107へ送信する。次にCPU106は、RAM107に記憶された画像データを、後述するフローにより決定された処理形態に応じた処理部(CPU或いはFPGA)に送信する。これにより、その処理部は、その画像データに対して拡張画像処理を行ってRAM107へ送信する。ここで、処理形態に応じた処理部は、拡張処理部105(FPGA202、CPU204)、CPU106のいずれかである。次にCPU106は、こうして拡張画像処理がなされた画像データをRAM107からプリンタ画像処理部118へ送信する。プリンタ画像処理部118は、その受信した画像データに各種プリント用画像処理を行ってプリンタ104へ送信することにより、プリンタ104は、その画像データに従って用紙に画像を印刷する。こうして原稿のコピー処理が実行される。   The CPU 106 detects that a user has instructed execution of a copy job via the operation unit 102. It is assumed that the copy job is set to use the expansion process (typically image processing) provided by the expansion processing unit 105. When the execution of this copy job is instructed, the CPU 106 instructs the scanner 103 to read the document via the device I / F 116. The scanner 103 transmits image data obtained by reading a document to the scanner image processing unit 117 via the device I / F 116. As a result, the scanner image processing unit 117 performs various image processing on the image data, and transmits the image data after the image processing to the RAM 107. Next, the CPU 106 transmits the image data stored in the RAM 107 to a processing unit (CPU or FPGA) corresponding to a processing mode determined by a flow described later. As a result, the processing unit performs the extended image processing on the image data and transmits it to the RAM 107. Here, the processing unit corresponding to the processing form is either the expansion processing unit 105 (FPGA 202, CPU 204) or CPU. Next, the CPU 106 transmits the image data subjected to the extended image processing from the RAM 107 to the printer image processing unit 118. The printer image processing unit 118 performs various types of print image processing on the received image data and transmits the image data to the printer 104, so that the printer 104 prints an image on a sheet according to the image data. In this way, the document copy process is executed.

次に、上述したコピー等のジョブを実行する際、拡張処理部105を使用した画像処理を行う場合の拡張処理制御フローについて説明する。   Next, an extended processing control flow when performing image processing using the extended processing unit 105 when executing the above-described job such as copying will be described.

図5は、実施形態に係る画像形成装置100において拡張画像処理を実行するときの処理の流れを説明するフローチャートである。この処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行される。   FIG. 5 is a flowchart for explaining the flow of processing when the extended image processing is executed in the image forming apparatus 100 according to the embodiment. A program for executing this processing is stored in the ROM 108 or the HDD 121, and is expanded in the runtime RAM 107 and executed under the control of the CPU 106.

図6は、実施形態に係る画像形成装置100のメインのCPU106と、FPGA202のCPU204のそれぞれが担当している処理を説明する図である。   FIG. 6 is a diagram for explaining processing in charge of each of the main CPU 106 of the image forming apparatus 100 and the CPU 204 of the FPGA 202 according to the embodiment.

図5のフローチャートで示す処理は、図6の拡張処理要求の受信処理601、拡張処理のメイン制御602、拡張処理終了処理603の3つのソフトウエアによって実現され、かつ、これら3つのソフトウエアは並行して動作する。1つ目の拡張処理要求の受信処理601は、後述する拡張処理要求を受信する処理であるS500の処理を行う。2つ目の拡張処理のメイン制御602は、後述する拡張処理の主たる制御に相当するS501〜S506の処理を行う。3つ目の拡張処理の終了処理603は、後述する拡張処理の終了処理であるS507の処理を行う。これらのソフトウエアは、電源オン時に起動されて動作を開始する。尚、上述したソフトウェアの構成例は、あくまでも実施形態に係る一例であって、本発明を限定するものではなく、例えば1つのソフトウエアで実装されてもよい。また実施形態では、ユーザにより指定されたコピー等の処理において、拡張処理部105での処理が必要かどうかはCPU106で行われる図示しないソフトウエア処理により判定される。そしてCPU106が、拡張処理部105による処理が必要と判定した場合は、CPU106は、拡張処理部105に対して拡張処理要求を、他の不図示のソフトウエアによるHTTP通信により発行する。   The processing shown in the flowchart of FIG. 5 is realized by three pieces of software, that is, an extension processing request reception process 601, an extension process main control 602, and an extension process end process 603 in FIG. 6. Works. The first extension process request reception process 601 performs the process of S500, which is a process for receiving an extension process request to be described later. The second extension process main control 602 performs the processes of S501 to S506 corresponding to the main control of the extension process to be described later. The third extension process end process 603 performs the process of S507, which is an extension process end process to be described later. These software programs are started when the power is turned on. Note that the above-described configuration example of the software is merely an example according to the embodiment, and does not limit the present invention. For example, the configuration may be implemented by one software. In the embodiment, whether or not the processing in the extension processing unit 105 is necessary in processing such as copying specified by the user is determined by software processing (not shown) performed by the CPU 106. If the CPU 106 determines that processing by the extension processing unit 105 is necessary, the CPU 106 issues an extension processing request to the extension processing unit 105 by HTTP communication using other software (not shown).

図5の処理は画像形成装置101の電源がオンされることにより開始される。まずS500でCPU106は、拡張処理要求の受信処理を行う。ここでは拡張処理部105に対する拡張処理要求を受信し、受信した拡張処理要求を図7に示すような拡張処理キューに登録する。   The processing in FIG. 5 is started when the image forming apparatus 101 is turned on. First, in step S500, the CPU 106 performs an extension process request reception process. Here, the extension processing request to the extension processing unit 105 is received, and the received extension processing request is registered in the extension processing queue as shown in FIG.

図7は、実施形態に係る拡張処理キューの構成例を説明する図である。   FIG. 7 is a diagram illustrating a configuration example of the extended processing queue according to the embodiment.

拡張処理キューは、受信した拡張処理を保持して管理するためのキューである。受信した拡張処理は、受信した時間順に、エントリNo.1から登録される。例えば、図7の例では、拡張処理701、拡張処理702、拡張処理703の順に受信したので、拡張処理キューのエントリNo.1から順に保持されている。尚、この拡張処理キューは、CPU106の制御の下にRAM107に形成されるものとする。また、拡張処理要求の受信処理については後述する。   The extended processing queue is a queue for holding and managing the received extended processing. The received extension processing is performed in the order of the received time in the entry No. 1 is registered. For example, in the example of FIG. 7, since the extension process 701, the extension process 702, and the extension process 703 are received in this order, the entry number of the extension process queue. It is held in order from 1. This extended processing queue is formed in the RAM 107 under the control of the CPU 106. The extension process request reception process will be described later.

次にS501に進みCPU106は、拡張処理要求の選択処理を行う。これは、拡張処理キューに登録されている拡張処理の中から、処理対象とする拡張処理を選択するものである。この拡張処理要求の選択処理については後述する。   In step S501, the CPU 106 performs an extension process request selection process. This is to select an extension process to be processed from the extension processes registered in the extension process queue. This extension process request selection process will be described later.

次にS502に進みCPU106は、処理形態の選択処理を行う。ここでは、処理対象として選択された拡張処理を実行するための処理形態(処理部)を選択する処理を行う。ここで処理形態とは、対象となる拡張画像処理を実行するために必要な処理部(CPUやFPGA)を示すものである。   In step S502, the CPU 106 performs processing mode selection processing. Here, processing for selecting a processing mode (processing unit) for executing the extension processing selected as the processing target is performed. Here, the processing form indicates a processing unit (CPU or FPGA) necessary for executing the target extended image processing.

図8は、実施形態に係る画像形成装置100が拡張処理を実行する際に取り得る処理形態を説明する図である。   FIG. 8 is a diagram illustrating processing modes that can be taken when the image forming apparatus 100 according to the embodiment executes the expansion processing.

図8の処理形態801は、FPGA202とCPU106の2つの処理部を使用する処理形態である。処理形態802は、拡張処理部105のFPGA202とCPU204の2つの処理部を使用する処理形態である。処理形態803は、CPU106のみを使用する処理形態である。更に処理形態804は、拡張処理部105のCPU204のみを使用する処理形態である。但し、どの処理形態で処理が可能かは処理内容によって異なり、拡張処理毎に処理形態管理テーブルで管理されている。   The processing form 801 in FIG. 8 is a processing form that uses two processing units, the FPGA 202 and the CPU 106. The processing mode 802 is a processing mode that uses two processing units, the FPGA 202 of the extension processing unit 105 and the CPU 204. The processing mode 803 is a processing mode that uses only the CPU 106. Further, the processing mode 804 is a processing mode that uses only the CPU 204 of the extension processing unit 105. However, in which processing form processing is possible depends on the processing content, and is managed in the processing form management table for each extension process.

図9は、実施形態に係る画像形成装置100が保持する処理形態管理テーブルの一例を示す図である。尚、このテーブルはRAM107に記憶されている。   FIG. 9 is a diagram illustrating an example of a processing form management table held by the image forming apparatus 100 according to the embodiment. This table is stored in the RAM 107.

この処理形態管理テーブルは、処理形態と優先度とを含んでいる。優先度は、処理形態を選択する際の優先度であって、優先度の高い順に「1」〜「4」で表されている。処理形態と優先度については後述するフローの中で参照される。また処理形態は、処理内容に応じて少なくとも1つ以上存在する。   This processing form management table includes processing forms and priorities. The priority is a priority at the time of selecting a processing form, and is represented by “1” to “4” in descending order of priority. The processing form and priority are referred to in a flow to be described later. Further, at least one processing form exists according to the processing content.

図9(A)は、図7の拡張処理701に対応する処理形態管理テーブルを示し、この拡張処理701は4つの処理形態801〜804の何れでも実行可能である。ここでは優先度が「1」の処理形態として処理形態801、優先度が「2」の処理形態として処理形態802、優先度が「3」の処理形態として処理形態803、優先度が「4」の処理形態として処理形態804が定義されている。   FIG. 9A shows a processing form management table corresponding to the expansion process 701 in FIG. 7, and this expansion process 701 can be executed in any of the four processing forms 801 to 804. Here, the processing mode 801 is the processing mode with the priority “1”, the processing mode 802 is the processing mode with the priority “2”, the processing mode 803 is the processing mode with the priority “3”, and the priority is “4”. A processing form 804 is defined as the processing form.

図9(B)は、拡張処理702に対応する処理形態管理テーブルを示し、この拡張処理702は2つの処理形態802,804の何れでも実行可能である。ここでは優先度が「1」の処理形態として処理形態802、優先度が「2」の処理形態として処理形態804が定義されている。   FIG. 9B shows a processing form management table corresponding to the expansion process 702, and this expansion process 702 can be executed in any of the two processing forms 802 and 804. Here, a processing mode 802 is defined as a processing mode with a priority “1”, and a processing mode 804 is defined as a processing mode with a priority “2”.

図9(C)は、拡張処理703に対応する処理形態管理テーブルを示し、この拡張処理703は2つの処理形態801,802の何れでも実行可能である。ここでは優先度が「1」の処理形態として処理形態801、優先度が「2」の処理形態として処理形態802が定義されている。処理形態の選択処理については後述する。   FIG. 9C shows a processing form management table corresponding to the expansion process 703, and this expansion process 703 can be executed in either of the two processing forms 801 and 802. Here, a processing mode 801 is defined as a processing mode with a priority “1”, and a processing mode 802 is defined as a processing mode with a priority “2”. Processing mode selection processing will be described later.

次にS503に進みCPU106は、S502で選択した拡張処理の処理形態がFPGA202を使用する処理形態かどうか判定する。例えば、処理形態801が選択された場合は、FPGA202とCPU106の2つの処理部を使用するため、FPGA202を使用する処理形態であると判定される。一方で、処理形態804の場合は、CPU204のみを使用するため、FPGA202を使用する処理形態でないと判定される。S503でCPU106は、FPGA202を使用する処理形態であると判定した場合はS504に処理を進め、FPGA202を使用する処理形態ではないと判定した場合はS506の処理を進める。S504でCPU106は、FPGA202の再構成要求を発行する。この再構成要求の発行では、後述するFPGA202の再構成処理を行うCPU106で動作するFPGAの再構成処理604に対して、HTTP通信により、再構成要求を表すメッセージと、処理対象である処理内容の情報を送信する。この処理内容の情報は、FPGA202に対して再構成すべき回路構成情報を決定するために使用される。次にS505に進みCPU106は、FPGA202の再構成が完了したか否かを判定する。FPGA202の再構成処理において、CPU106とCPU204とのHTTP通信により再構成の要求と完了の通知が行われる。従って、S505でCPU106は、CPU204から、再構成の要求に対する完了の通知を表すメッセージを受信したかを判定する。S505でCPU106が、FPGA202の再構成が完了したと判定するとS506に進み、そうでないときはS505の処理を繰り返し実行する。   In step S503, the CPU 106 determines whether the processing mode of the extension process selected in step S502 is a processing mode using the FPGA 202. For example, when the processing form 801 is selected, since the two processing units of the FPGA 202 and the CPU 106 are used, it is determined that the processing form uses the FPGA 202. On the other hand, in the case of the processing mode 804, since only the CPU 204 is used, it is determined that the processing mode is not the processing mode using the FPGA 202. If the CPU 106 determines in S503 that the processing form uses the FPGA 202, the CPU 106 proceeds to S504. If the CPU 106 determines that the processing form does not use the FPGA 202, the CPU 106 proceeds to S506. In step S <b> 504, the CPU 106 issues a reconfiguration request for the FPGA 202. In the issuance of the reconfiguration request, a message indicating the reconfiguration request and the processing contents to be processed are processed by HTTP communication with respect to the FPGA reconfiguration processing 604 operating on the CPU 106 that performs reconfiguration processing of the FPGA 202 described later. Send information. This processing content information is used to determine circuit configuration information to be reconfigured for the FPGA 202. In step S505, the CPU 106 determines whether reconfiguration of the FPGA 202 has been completed. In the reconfiguration process of the FPGA 202, a reconfiguration request and completion notification are made by HTTP communication between the CPU 106 and the CPU 204. Accordingly, in step S <b> 505, the CPU 106 determines whether a message indicating completion notification for the reconfiguration request has been received from the CPU 204. If the CPU 106 determines in step S505 that the reconfiguration of the FPGA 202 has been completed, the process advances to step S506. If not, the process in step S505 is repeatedly executed.

S506でCPU106は、S502で選択された処理形態の処理部となるCPU(CPU106又はCPU204)或いはFPGA202に対して、HTTP通信により、画像処理要求を発行する。この画像処理要求の発行は、後述する画像処理制御を行うCPU106で動作する画像処理要求の受信処理607、又はCPU204で動作する画像処理要求の受信処理609に対して行われる。この時、CPU106は、画像処理要求を表すメッセージ、画像処理の内容と処理形態の情報、及び、画像データを送信する。この画像処理要求の発行に対して、CPU106又はCPU204で行われる画像処理要求の受信処理については後述する。また、選択された処理形態に応じて、画像処理要求の発行先が変わるが、発行先の変更は、アクセスするIPアドレスやポート番号を変更することで実現される。   In step S <b> 506, the CPU 106 issues an image processing request to the CPU (CPU 106 or CPU 204) or the FPGA 202 serving as the processing unit of the processing mode selected in step S <b> 502 by HTTP communication. The image processing request is issued to an image processing request receiving process 607 operating on the CPU 106 that performs image processing control, which will be described later, or an image processing request receiving process 609 operating on the CPU 204. At this time, the CPU 106 transmits a message representing an image processing request, information on the contents and processing form of the image processing, and image data. An image processing request reception process performed by the CPU 106 or the CPU 204 in response to the issuance of the image processing request will be described later. Further, the issue destination of the image processing request changes according to the selected processing form, but the issue destination can be changed by changing the IP address or port number to be accessed.

次にS507に進みCPU106は、拡張処理の終了処理を行う。この拡張処理の終了処理は、基本的には、S506で発行した画像処理要求により画像処理の完了を検知して、拡張処理依頼元へ処理結果を返す処理である。この拡張処理の終了処理については後述する。   Next, proceeding to S507, the CPU 106 performs an expansion process end process. The extension processing end processing is basically processing for detecting completion of image processing by the image processing request issued in S506 and returning the processing result to the extension processing request source. The end process of the extension process will be described later.

図10は、図5のS500の拡張処理要求の受信処理を説明するフローチャートである。   FIG. 10 is a flowchart for explaining the extension process request reception process of S500 of FIG.

S1000でCPU106は、拡張処理要求を受信したか否かを判定する。上述したように実施形態では、拡張処理要求はHTTP通信により発行される。従って、ここでCPU106は、拡張処理の要求が来たかどうかを、所定のポートの受信を監視することにより実現される。但し、この拡張処理要求の通信方式はあくまでも一例であり、本発明を限定するものではない。S1000でCPU106は、拡張処理要求を受信したと判定するとS1001に進み、CPU106は受信した拡張処理要求を拡張処理キューへ登録して、この処理を終了する。拡張処理キューに関しては、図7を参照して上述したため、その説明を省略する。   In step S1000, the CPU 106 determines whether an extension processing request has been received. As described above, in the embodiment, the extension process request is issued by HTTP communication. Therefore, here, the CPU 106 is realized by monitoring reception of a predetermined port to determine whether or not an expansion processing request has been received. However, this communication method for requesting extension processing is merely an example, and does not limit the present invention. If the CPU 106 determines in step S1000 that an extension process request has been received, the process advances to step S1001. The CPU 106 registers the received extension process request in the extension process queue, and ends this process. Since the extended processing queue has been described above with reference to FIG.

拡張処理要求の受信処理は、以上のS1000〜S1001の処理により実現される。また上述したように、S500に該当する拡張処理要求の受信処理は、CPU106で他のソフトウエア処理と並列で動作可能な形態となる拡張処理要求受信処理601として実装され、電源起動時に動作が開始される。但し、この受信処理は、実施形態における一例であって、本発明を限定するものではない。   The extension process request reception process is realized by the processes of S1000 to S1001 described above. As described above, the extension process request reception process corresponding to S500 is implemented as the extension process request reception process 601 in which the CPU 106 can operate in parallel with other software processes, and the operation starts when the power is turned on. Is done. However, this reception process is an example in the embodiment, and does not limit the present invention.

図11は、図5のS501の拡張処理要求の選択処理を説明するフローチャートである。   FIG. 11 is a flowchart for explaining the extension processing request selection processing in S501 of FIG.

S1100でCPU106は、上述した拡張処理キューを参照して、その拡張処理キューに登録された拡張処理があるか否かを判定する。S1100で登録された拡張処理があると判定した場合はS1101の処理に進むが、S1100で登録された拡張処理がないと判定した場合はS1100の処理を繰り返し行う。例えば、拡張処理キューが図7に示す状態の場合は、登録された拡張処理が1つ以上あるので、CPU106は登録された拡張処理があると判断する。S1101でCPU106は、拡張処理キューの先頭であるエントリーNo.1の拡張処理701を処理対象として決定する。ここで処理対象に決定された拡張処理が、拡張処理部105を使用した拡張処理として実行される。例えば、拡張処理キューが図7に示した状態の場合は、拡張処理701が処理対象として決定される。以降、この処理により決定された処理対象の情報は、ソフトウエアにより管理される。   In step S <b> 1100, the CPU 106 refers to the above-described extension processing queue and determines whether there is an extension process registered in the extension process queue. If it is determined that there is an extension process registered in S1100, the process proceeds to S1101. If it is determined that there is no extension process registered in S1100, the process of S1100 is repeated. For example, when the extended processing queue is in the state shown in FIG. 7, since there is one or more registered extended processes, the CPU 106 determines that there is a registered extended process. In step S1101, the CPU 106 selects an entry No. that is the head of the extended processing queue. 1 expansion process 701 is determined as a processing target. The extension process determined as the processing target here is executed as an extension process using the extension processing unit 105. For example, when the extended process queue is in the state shown in FIG. 7, the extended process 701 is determined as the processing target. Thereafter, the processing target information determined by this processing is managed by software.

次にS1102に進みCPU106は、S1101で決定した処理対象を拡張処理キューから削除する。この削除では、必ずエントリーNo.1の拡張処理が削除され、エントリーNo.2以降の拡張処理が繰り上がる。例えば、拡張処理キューが図7に示す状態の場合は、エントリーNo.1の拡張処理701が削除され、次に優先順位の高い拡張処理702がエントリーNo.1へ、拡張処理703がエントリーNo.2へ繰り上がる。   In step S1102, the CPU 106 deletes the processing target determined in step S1101 from the extended processing queue. In this deletion, the entry no. 1 extended processing is deleted, and entry no. The expansion process after 2 is carried forward. For example, if the extended processing queue is in the state shown in FIG. 1 extension process 701 is deleted, and the extension process 702 with the next highest priority is assigned the entry No. 1, the extension processing 703 is an entry number. Move up to 2.

図12は、図5のS502の処理形態の選択処理を説明するフローチャートである。   FIG. 12 is a flowchart for describing the processing mode selection processing in S502 of FIG.

まずS1200でCPU106は、処理対象となっている拡張処理の処理内容を取得する。ここで処理対象として決定された処理内容は、上述したようにソフトウエアで管理されている。従って、ソフトウエアにより管理されている処理対象の情報を取得することになる。例えば、S1101の説明における具体例に基づくと、処理内容として拡張処理701が取得される。次にS1201に進みCPU106は、その取得した拡張処理701に対応する処理形態管理テーブルを決定する。例えば、S1201において、取得された処理内容が拡張処理701である場合は、図9(A)に示す処理形態管理テーブルに決定され、この管理テーブルが以降の処理で参照されることになる。   First, in step S1200, the CPU 106 acquires the processing content of the extension processing that is the processing target. The processing content determined as the processing target here is managed by software as described above. Therefore, the processing target information managed by the software is acquired. For example, based on the specific example in the description of S1101, the extended processing 701 is acquired as the processing content. In step S1201, the CPU 106 determines a processing form management table corresponding to the acquired extension processing 701. For example, if the acquired processing content is the expansion processing 701 in S1201, the processing form management table shown in FIG. 9A is determined, and this management table is referred to in the subsequent processing.

次にS1202に進みCPU106は、後述する使用可能な処理形態を判定するための一連の処理により使用され、優先度を表す変数であるパラメータNの初期値として、パラメータNに「0」を設定する。次にS1203に進みCPU106は、拡張処理で使用される処理部の空き状況(使用状況)を取得する。尚、このパラメータNはRAM107に記憶されている。この処理について詳細に説明する。   In step S1202, the CPU 106 sets “0” to the parameter N as an initial value of the parameter N, which is used in a series of processes for determining usable processing modes, which will be described later, and represents a priority. . Next, proceeding to S1203, the CPU 106 acquires the vacant status (usage status) of the processing unit used in the expansion processing. The parameter N is stored in the RAM 107. This process will be described in detail.

CPU106は、画像形成装置100の電源がオンされて起動した等に、例えば図13に示すような処理部の空き状況管理テーブルをRAM107に作成しておく。   When the image forming apparatus 100 is turned on and started up, the CPU 106 creates a vacancy status management table for the processing unit as shown in FIG.

図13は、実施形態に係る処理部の空き状況を管理する空き状況管理テーブルの一例を示す図である。   FIG. 13 is a diagram illustrating an example of an availability management table for managing availability of the processing unit according to the embodiment.

この処理部の空き状況管理テーブルは、拡張処理を実行するために必要な処理部として使用可能な処理部と、各処理部の空き状況を示す情報とを有している。CPU106は、この空き状況管理テーブルを参照することにより、各処理部の空き状況を取得することができる。またCPU106は、後述する処理において、空き状況管理テーブルの各処理部の空き状況を示す情報を更新する。実施形態では、拡張処理の処理部として使用可能な処理部は、FPGA202、CPU106及び、CPU204である。例えば、図13に示す空き状況管理テーブルでは、FPGA202、CPU106、CPU204はいずれも未使用であり、全ての処理部が使用可能な状態であることを示している。   The availability management table of the processing unit includes a processing unit that can be used as a processing unit necessary for executing the expansion process, and information indicating the availability of each processing unit. The CPU 106 can acquire the availability of each processing unit by referring to this availability management table. Further, the CPU 106 updates information indicating the availability of each processing unit in the availability management table in the process described later. In the embodiment, the processing units that can be used as the processing unit for the expansion processing are the FPGA 202, the CPU 106, and the CPU 204. For example, in the vacancy status management table shown in FIG. 13, the FPGA 202, the CPU 106, and the CPU 204 are all unused, indicating that all the processing units can be used.

次にS1204に進みCPU106は、優先度を表すパラメータNの値をインクリメントする(+1する)。最初パラメータNが「0」の場合、このインクリメント処理によりパラメータNは「1」となる。パラメータNがいずれの値であっても、同様の処理である。次にS1205に進みCPU106は、S1201で決定された処理形態管理テーブルに、パラメータNの値に対応する優先度の処理形態が存在するかどうかを判定する。例えば、処理形態管理テーブルとして拡張処理701のテーブル(図9(A))に決定されている場合、優先度1〜4の処理形態が存在するので、パラメータNが1〜4の範囲であれば処理形態が存在すると判定される。同様に拡張処理702の場合は、パラメータNが1〜2の処理形態は存在し、拡張処理703では、パラメータNが1〜2の処理形態が存在すると判定される。尚、実施形態では、処理形態は必ず1つ以上存在するので、パラメータNが1の場合には、必ず処理形態は存在すると判定される。S1205でCPU106が、処理形態が存在すると判定したときはS1206に進み、そうでないときはS1202に進む。S1206でCPU106は、図13のテーブルを参照して、優先度がNである処理形態に必要な処理部が使用可能かどうかを判定する。この処理は、図9の処理形態管理テーブルと図13の空き状況管理テーブルを参照することにより行われる。   Next, proceeding to S1204, the CPU 106 increments (adds +1) the value of the parameter N representing the priority. When the parameter N is initially “0”, the parameter N is set to “1” by this increment processing. The process is the same regardless of the value of the parameter N. Next, the processing proceeds to S1205, and the CPU 106 determines whether or not a processing mode with a priority corresponding to the value of the parameter N exists in the processing mode management table determined in S1201. For example, when the processing form management table is determined in the table of the extension process 701 (FIG. 9A), since there are processing forms with priorities 1 to 4, if the parameter N is in the range of 1 to 4, It is determined that a processing form exists. Similarly, in the case of the expansion process 702, it is determined that there are processing forms with the parameter N of 1-2, and the expansion process 703 determines that there is a processing form with the parameter N of 1-2. In the embodiment, since at least one processing form always exists, when the parameter N is 1, it is determined that the processing form always exists. If the CPU 106 determines in S1205 that a processing form exists, the process proceeds to S1206, and if not, the process proceeds to S1202. In step S <b> 1206, the CPU 106 refers to the table in FIG. 13 and determines whether a processing unit necessary for the processing mode with the priority N is available. This processing is performed by referring to the processing form management table in FIG. 9 and the free space management table in FIG.

例えば、拡張処理701の優先度1の処理形態は処理形態801であり、必要な処理部は、図8よりFPGA202とCPU106となる。従って、この場合は、これら2つの処理部(FPGA202とCPU106)が空き状態であるかを、S1203で、図13の空き状況管理テーブルから取得した空き状況を参照して判定できる。このようにして、必要な処理部が使用可能かどうかを判定する。S1206でCPU106は、パラメータNが示す優先度の処理形態に必要な処理部が使用可能と判定するとS1207に処理を進め、そうでないときはS1204に処理を進める。またS1206でCPU106は、パラメータNが示す優先度の処理形態に必要な処理部が使用できないと判定するとS1204に進み、次のNを+1して次に優先度が高い処理形態を探索する。   For example, the processing mode 801 with priority 1 of the expansion processing 701 is the processing mode 801, and the necessary processing units are the FPGA 202 and the CPU 106 from FIG. Therefore, in this case, whether or not these two processing units (FPGA 202 and CPU 106) are in an empty state can be determined in S1203 with reference to the empty state acquired from the empty state management table in FIG. In this way, it is determined whether a necessary processing unit is usable. If the CPU 106 determines in step S1206 that the processing unit necessary for the processing mode with the priority indicated by the parameter N is usable, the CPU 106 proceeds to step S1207. If not, the CPU 106 proceeds to step S1204. If the CPU 106 determines in step S1206 that the processing unit necessary for the processing mode with the priority indicated by the parameter N cannot be used, the process proceeds to step S1204, and the next N is incremented by 1 to search for the processing mode with the next highest priority.

S1207でCPU106は、拡張処理を行うための処理形態としてパラメータNが示す優先度の処理形態に決定する。次にS1208に進みCPU106は、図13の空き状況管理テーブルに対して、決定した処理形態に必要な処理部を、使用中であることを示す情報(図13では×)に更新する。例えば、処理形態が処理形態801に決定された場合、FPGA202とCPU106の両方を使用するので、図13の空き状況管理テーブルのこれら2つの処理部の状況を、未使用状態(○)から使用状態(×)へ変更する。この処理によって、後から受信した拡張処理との処理部の競合を回避することができる。次にS1209に進みCPU106は、これまでのフローにより決定した内容を拡張処理実行管理テーブルに登録する。   In step S <b> 1207, the CPU 106 determines the processing mode with the priority indicated by the parameter N as the processing mode for performing the expansion process. Next, the processing advances to step S1208, and the CPU 106 updates the processing unit necessary for the determined processing mode to information (x in FIG. 13) indicating that the processing unit necessary for the determined processing mode is used. For example, when the processing form is determined to be the processing form 801, both the FPGA 202 and the CPU 106 are used, so the state of these two processing units in the free space management table in FIG. 13 is changed from the unused state (O) to the used state. Change to (×). By this process, it is possible to avoid the conflict of the processing unit with the extension process received later. The process advances to step S1209, and the CPU 106 registers the content determined by the previous flow in the extended process execution management table.

図14は、実施形態に係る拡張処理実行管理テーブルの一例を示す図である。このテーブルはRAM107に設けられている。   FIG. 14 is a diagram illustrating an example of an extended process execution management table according to the embodiment. This table is provided in the RAM 107.

この拡張処理実行管理テーブルは、実行中処理番号、拡張処理の内容、使用中の処理形態、要求ページ数、中断状態などの要素を含んでいる。実行中処理番号は、このテーブルに登録された順に1番から配置され、拡張処理が実行状態に移行した順番を表す。拡張処理の内容は、実行されている拡張処理の内容そのものを表す。使用中の処理形態は、この拡張処理を実行するために使用している処理形態を示している。要求ページ数とは、受信した拡張処理を適用するページ数であり、これは拡張処理要求を受信した時の要求内容に基づいている。中断状態は、以降で説明する中断状態となった時に、中断状態として要求ページ数に対して何ページまで処理が済んだかを表している。尚、中断状態のN/Aは、一度も中断されていないことを示している。従って、S1209では、拡張処理の内容には、実行することが決定した拡張処理を、使用中の処理形態には、S1207で決定した処理形態を設定する。また要求ページ数は、実行する拡張処理の適用ページ数、中断状態にはN/Aを登録する。尚、実行中処理番号は、登録されていない番号で最も小さい値を記載する。以上の処理によりS1209の処理が達成される。   This extended process execution management table includes elements such as the process number being executed, the contents of the extended process, the processing form being used, the number of requested pages, and the suspended state. The in-execution process numbers are arranged from the first in the order registered in this table, and represent the order in which the extension process has shifted to the execution state. The content of the extended process represents the content of the extended process being executed. The processing form in use indicates the processing form used to execute this expansion process. The number of requested pages is the number of pages to which the received extension process is applied, and this is based on the request contents when the extension process request is received. The suspended state indicates how many pages have been processed with respect to the requested number of pages as the suspended state when the suspended state described below is reached. The interrupted N / A indicates that the interrupt has never been interrupted. Therefore, in S1209, the extended process determined to be executed is set in the contents of the extended process, and the process form determined in S1207 is set in the process form in use. In addition, the number of requested pages is the number of pages to which the extended processing to be executed is applied, and N / A is registered in the suspended state. The in-execution process number is the smallest value that is not registered. Through the above processing, the processing of S1209 is achieved.

図15は、実施形態に係る画像形成装置100におけるFPGA202の再構成処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU106が対応するプログラムをROM108或いはHDD121からRAM107に展開して実行することにより実現される。この実施形態ではCPU106は、HTTP通信を介して、再構成の要求を受信することにより実行する。この処理を実行するプログラムは図6のFPGA再構成処理604に対応しており、図5で示すメイン制御の処理フローチャートから独立したものであり、並列的に動作可能な形態で実装される。また、この処理は画像形成装置100の電源オンにより起動されて処理が開始される。   FIG. 15 is a flowchart for explaining the reconstruction process of the FPGA 202 in the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is realized by the CPU 106 developing a corresponding program from the ROM 108 or HDD 121 to the RAM 107 and executing it. In this embodiment, the CPU 106 executes it by receiving a reconfiguration request via HTTP communication. A program for executing this processing corresponds to the FPGA reconfiguration processing 604 in FIG. 6, is independent of the main control processing flowchart shown in FIG. 5, and is implemented in a form operable in parallel. This process is started when the image forming apparatus 100 is turned on and starts.

先ずS1500でCPU106は、FPGA202の再構成の要求を受信したか否かを判定する。CPU106が再構成要求を受信するときは、再構成要求を表すメッセージと、対象処理の処理内容の情報が受信される。ここで受信した処理内容の情報は、後述するS1501で参照される。S1500で再構成の要求を受信したと判定するとS1501に進みCPU106は、FPGA202に対して、再構成すべき回路構成情報を決定する。この処理は、S1500で受信した処理内容の情報に基づいて、対応する回路構成情報を決定する処理である。本実施形態では、上述したように回路構成情報401は拡張処理701、回路構成情報402は拡張処理702、回路構成情報403は拡張処理703に対応するとしている。従って、受信した処理内容の情報が拡張処理701である場合は、回路構成情報401がFPGA202を再構成すべき回路構成情報として決定される。   First, in step S1500, the CPU 106 determines whether a request for reconfiguration of the FPGA 202 has been received. When the CPU 106 receives a reconfiguration request, a message representing the reconfiguration request and information on the processing content of the target process are received. The processing content information received here is referred to in S1501 described later. If it is determined in S1500 that a reconfiguration request has been received, the process advances to S1501, and the CPU 106 determines circuit configuration information to be reconfigured for the FPGA 202. This processing is processing for determining corresponding circuit configuration information based on the processing content information received in S1500. In this embodiment, as described above, the circuit configuration information 401 corresponds to the expansion processing 701, the circuit configuration information 402 corresponds to the expansion processing 702, and the circuit configuration information 403 corresponds to the expansion processing 703. Accordingly, when the received processing content information is the extended processing 701, the circuit configuration information 401 is determined as the circuit configuration information for reconfiguring the FPGA 202.

次にS1502に進みCPU106は、S1501で決定した回路構成情報を使用して、FPGA202の再構成を実施する。この処理は、CPU106がHDD121に格納されている回路構成情報を、拡張I/F129を介して、FPGA202の図示しない所定記憶領域へロードすることにより行われる。この処理によって、FPGA202は処理内容に対応した所望の回路構成へ再構成される。次にS1503に進みCPU106は、FPGA202の再構成の要求元へ、FPGA202の再構成が完了したことを通知する。この通知では、単に完了を表すメッセージが送信される。   In step S1502, the CPU 106 reconfigures the FPGA 202 using the circuit configuration information determined in step S1501. This process is performed by the CPU 106 loading the circuit configuration information stored in the HDD 121 into a predetermined storage area (not shown) of the FPGA 202 via the expansion I / F 129. By this processing, the FPGA 202 is reconfigured to a desired circuit configuration corresponding to the processing content. In step S1503, the CPU 106 notifies the requester for reconfiguration of the FPGA 202 that the reconfiguration of the FPGA 202 has been completed. In this notification, a message simply indicating completion is transmitted.

図16は、実施形態に係る画像形成装置100における画像処理要求の受信処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU106が対応するプログラムをROM108或いはHDD121からRAM107に展開して実行することにより実現される。この処理を実行するプログラムは図6の画像処理要求の受信処理607に対応しており、図5で示すメイン制御の処理フローチャートから独立したものであり、並列的に動作可能な形態で実装される。またCPU204で動作する画像処理要求の受信処理は、図6の画像処理要求の受信処理609に対応している。また、画像処理要求の受信処理607,609は、画像形成装置100の電源オンにより起動されて処理が開始される。   FIG. 16 is a flowchart for explaining image processing request reception processing in the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is realized by the CPU 106 developing a corresponding program from the ROM 108 or HDD 121 to the RAM 107 and executing it. The program for executing this processing corresponds to the image processing request reception processing 607 in FIG. 6, is independent of the main control processing flowchart shown in FIG. 5, and is implemented in a form operable in parallel. . Also, the image processing request reception processing executed by the CPU 204 corresponds to the image processing request reception processing 609 of FIG. The image processing request reception processes 607 and 609 are started when the image forming apparatus 100 is turned on, and the processes are started.

先ずS1600でCPU106は、処理ステータスの確認要求を受信したか否かを判定する。この処理ステータスとは、実行中の画像処理に関する処理状況であり、この処理状況に関する情報は、図17のページ状況管理テーブルと図18のページ内状況管理テーブルにより管理される情報である。これらテーブルはRAM107に設けられている。   First, in step S <b> 1600, the CPU 106 determines whether a processing status confirmation request has been received. The processing status is a processing status related to the image processing being executed, and the information related to the processing status is information managed by the page status management table in FIG. 17 and the in-page status management table in FIG. These tables are provided in the RAM 107.

図17は、実施形態に係る画像形成装置100が保持するページ状況管理テーブルの一例を示す図であり、図に示されるように実行中の画像処理が要求ページに対してどこまで完了したかを管理する。   FIG. 17 is a diagram illustrating an example of a page status management table held by the image forming apparatus 100 according to the embodiment. As illustrated in FIG. 17, the extent to which the image processing being executed is completed for the requested page is managed. To do.

図17では、画像処理の対象である全ページ(Nページ)のそれぞれに対して、処理済、処理中、未処理といった状態が記憶されている。   In FIG. 17, states such as processed, processed, and unprocessed are stored for each of all pages (N pages) that are targets of image processing.

図18は、実施形態に係る画像形成装置100が保持するページ内状況管理テーブルの一例を示す図である。   FIG. 18 is a diagram illustrating an example of the in-page situation management table held by the image forming apparatus 100 according to the embodiment.

対象である画像処理は更に細分化すると、いくつかの処理単位に分割することができる。例えば、本実施形態では、画像データは基本的にJPEG方式で圧縮された状態で保管されている。このため、拡張処理701を、より細分化して処理を表すと、JPEG伸張処理、拡張処理、JPEG圧縮処理の3つの処理を含む。そこで、これら処理をページ内状況管理テーブルで表現される下位処理と定義として説明する。また下位処理の内容は、これらの具体的な処理名を記載している。完了領域は、これらの下位処理の単位毎に、処理中のページに対して、どこまでの画像領域の画像データにたいする処理が完了したかを表わしている。これら2つのテーブルにより、要求された画像処理が完了したページ番号や、現在処理中のページの詳細な処理状況を取得できる。こうして取得した結果を、処理ステータスの情報として応答する。尚、これら2つのテーブルは、図19の画像処理の制御処理で更新され、その説明は後述する。   If the target image processing is further subdivided, it can be divided into several processing units. For example, in the present embodiment, the image data is basically stored in a compressed state by the JPEG method. For this reason, if the extended process 701 is further subdivided to represent the process, it includes three processes: a JPEG expansion process, an extended process, and a JPEG compression process. Therefore, these processes will be described as subordinate processes and definitions expressed in the in-page situation management table. Further, the contents of the lower-level processes describe these specific process names. The completion area indicates how far the processing for the image data in the image area has been completed for the page being processed for each unit of the lower processing. With these two tables, the page number at which the requested image processing has been completed and the detailed processing status of the currently processed page can be acquired. The acquired result is returned as processing status information. These two tables are updated by the image processing control process of FIG. 19, and the description thereof will be described later.

先ずS1600でCPU106は、処理ステータスの確認要求を受信したと判定した場合はS1608の処理に進むが、そうでないときはS1601の処理に進む。S1601でCPU106は、中断要求を受信したか否かを判定する。この中断要求は、現在実行中の画像処理を中断する要求である。実施形態では、中断要求は2種類存在する。1つ目は、現在実行中の画像処理を即時中断するための中断要求で、これを即時中断要求とする。2つ目は、現在実行中のページの画像処理の完了を待ってから中断する中断要求で、これをページ間中断要求とする。これらの中断要求の発行に関する制御等は後述する。S1601でCPU106は、中断要求を受信したと判定したときはS1607の処理に進むが、そうでないときはS1602の処理に進む。S1602でCPU106は、画像処理要求を受信したか否かを判定する。この画像処理要求は、前述の図5のS506でCPU106が発行する画像処理要求である。上述したように、この画像処理要求には、実行すべき拡張処理の内容、使用すべき処理形態、入力画像データ等の情報が含まれている。従って、CPU106が画像処理要求を受信すると、その要求に応じた、これらの情報を把握することができる。S1602でCPU106が、画像処理要求を受信したと判定するとS1603の処理に進むが、画像処理要求を受信していないと判定した場合はS1600の処理に移り、次の要求の確認が行われる。   First, in step S1600, if the CPU 106 determines that the processing status confirmation request has been received, the process proceeds to step S1608; otherwise, the process proceeds to step S1601. In step S1601, the CPU 106 determines whether an interruption request has been received. This interruption request is a request to interrupt the currently executed image processing. In the embodiment, there are two types of interruption requests. The first is an interruption request for immediately suspending the currently executed image processing, and this is an immediate interruption request. The second is an interruption request for suspending after waiting for completion of image processing of the currently executed page. This is an interpage interruption request. Control and the like related to issuing these interruption requests will be described later. If it is determined in S1601 that the interrupt request has been received, the CPU 106 proceeds to S1607. If not, the CPU 106 proceeds to S1602. In step S1602, the CPU 106 determines whether an image processing request has been received. This image processing request is an image processing request issued by the CPU 106 in S506 of FIG. As described above, the image processing request includes information such as the contents of the extended processing to be executed, the processing form to be used, and input image data. Therefore, when the CPU 106 receives an image processing request, it can grasp these pieces of information according to the request. If the CPU 106 determines in S1602 that an image processing request has been received, the process proceeds to S1603. If it is determined that an image processing request has not been received, the process proceeds to S1600, where the next request is confirmed.

S1603でCPU106は、FPGA202を使用するかを判定する。これは受信した画像処理要求で指定された、使用すべき処理形態の情報に基づくものである。例えば、処理形態801の情報を受信した場合は、図8よりFPGA202とCPU106が処理部として使用されるため、FPGA202は使用されると判定される。S1603でFPGA202を使用すると判定した場合はS1604の処理に進み、そうでないときはS1606の処理に進む。   In step S <b> 1603, the CPU 106 determines whether to use the FPGA 202. This is based on information on the processing mode to be used, which is designated by the received image processing request. For example, when information on the processing mode 801 is received, the FPGA 202 and the CPU 106 are used as processing units from FIG. 8, and therefore it is determined that the FPGA 202 is used. If it is determined in S1603 that the FPGA 202 is to be used, the process proceeds to S1604. Otherwise, the process proceeds to S1606.

S1604でCPU106は、FPGA202を使用した画像処理の実行スレッドを起動する。この画像処理の実行スレッドは、図6の画像処理制御608に対応し、スレッド起動時には、画像処理の内容、画像処理すべきページ数、入力画像データ、画像処理係数等が渡される。また、このスレッドの起動により、FPGA202を使用した画像処理が、この画像処理要求の受信処理と並行して実行される。また、この画像処理が実行される前に、前述の図15のS1502で、FPGA202は、この画像処理の処理内容に応じた回路構成に再構成されている。尚、画像処理要求の受信処理がCPU204で行われている場合には、図6の画像処理制御610で示すスレッドが起動される。そしてS1605に進みCPU106は、画像処理要求又は中断要求を正常に受け付けた旨の応答を返して、この処理を終了する。またFPGA202を使用しないときはS1606でCPU106は、CPU106自身を使用した画像処理の実行スレッドを起動する。画像処理実行のスレッドに関する説明は、図16のS1606で上述した通りである。   In step S <b> 1604, the CPU 106 activates an execution thread for image processing using the FPGA 202. The image processing execution thread corresponds to the image processing control 608 in FIG. 6, and when the thread is activated, the contents of the image processing, the number of pages to be processed, input image data, image processing coefficients, and the like are passed. In addition, when the thread is activated, image processing using the FPGA 202 is executed in parallel with the reception processing of the image processing request. Further, before the image processing is executed, the FPGA 202 is reconfigured in a circuit configuration corresponding to the processing content of the image processing in S1502 of FIG. Note that when the reception processing of the image processing request is performed by the CPU 204, a thread indicated by the image processing control 610 in FIG. 6 is activated. In step S1605, the CPU 106 returns a response indicating that the image processing request or the interruption request has been normally received, and ends the processing. When the FPGA 202 is not used, the CPU 106 activates an execution thread for image processing using the CPU 106 itself in step S1606. The description regarding the thread for executing image processing is as described above in step S1606 of FIG.

また中断要求を受信したときはS1607に進みCPU106は、S1604又はS1606で起動した画像処理の実行スレッドに対して中断フラグを設定する。ここでは、受信した中断要求が即時中断要求の場合は即時中断フラグを設定し、ページ間中断要求である場合は、ページ間中断フラグを設定する。このようにして中断フラグを設定することにより、後述する画像処理制御処理を中断することが可能となる。   If a suspension request is received, the process advances to step S1607, and the CPU 106 sets a suspension flag for the image processing execution thread activated in step S1604 or S1606. Here, if the received interruption request is an immediate interruption request, an immediate interruption flag is set, and if it is an interpage interruption request, an interpage interruption flag is set. By setting the interruption flag in this way, it is possible to interrupt an image processing control process described later.

また処理ステータスの確認要求を受信したときはS1608でCPU106は、処理ステータスの情報を取得する。この処理ステータスは上述した通りである。即ち、CPU106は、図17を参照して説明したページ状況管理テーブルから処理済のページ番号の情報と、図18のページ内状況管理テーブルから、処理中のページに対して完了した下位処理数と処理中の下位処理の完了領域の情報を取得する。そしてS1609に進みCPU106は、S1608で取得した処理ステータスの情報とともに応答を返す。   When the processing status confirmation request is received, the CPU 106 acquires information on the processing status in step S1608. This processing status is as described above. That is, the CPU 106 processes the page number information that has been processed from the page status management table described with reference to FIG. 17 and the number of lower-level processes that have been completed for the page being processed from the in-page status management table of FIG. Acquires information on the completion area of the lower processing being processed. In step S1609, the CPU 106 returns a response together with the processing status information acquired in step S1608.

図19は、実施形態に係る画像形成装置100が画像処理の実行スレッドにより実行する画像処理制御を説明するフローチャートである。尚、このフローチャートで示す処理は、画像処理要求を受信したCPU(CPU106又はCPU204)により実行される。ここではCPU106が画像処理制御を実行するものとして説明するが、CPU204が画像処理要求を受信した場合は、CPU204がこの処理を実行する。いずれのCPUが実行しても、処理内容は基本的に同一である。また、この処理はメイン制御処理である図5で説明した処理から独立したものであり、そのメイン制御処理と並列的に動作可能な形態で実装されている。この処理は、図6の画像処理制御608,610に対応している。この処理は、画像形成装置100の電源がオンされて、装置が起動することにより開始される。   FIG. 19 is a flowchart illustrating image processing control executed by the image forming apparatus 100 according to the embodiment using an image processing execution thread. The processing shown in this flowchart is executed by the CPU (CPU 106 or CPU 204) that has received the image processing request. Here, the CPU 106 is described as executing image processing control, but when the CPU 204 receives an image processing request, the CPU 204 executes this processing. Regardless of which CPU is executed, the processing contents are basically the same. This process is independent from the process described with reference to FIG. 5 which is the main control process, and is implemented in a form operable in parallel with the main control process. This processing corresponds to the image processing controls 608 and 610 in FIG. This process is started when the image forming apparatus 100 is turned on and the apparatus is activated.

まずS1900でCPU106は、この処理の起動時に渡された画像処理の内容、画像処理すべきページ数に基づいて、例えば図17に示すページ状況管理テーブルと、図18に示すページ内状況管理テーブルを作成する。ここで作成されるページ状況管理テーブルは、ページ番号が画像処理すべきページ番号に対応し、状態は全て「未処理」である。同様にページ内状況管理テーブルは、画像処理内容に基づいて、下位処理1〜3に対応する下位処理内容となり、完了領域は「0」である。尚、下位処理番号は、下位処理番号1〜下位処理番号3として説明したが、これに限るものではない。   First, in step S1900, the CPU 106 creates, for example, a page status management table illustrated in FIG. 17 and an in-page status management table illustrated in FIG. create. In the page status management table created here, the page number corresponds to the page number to be image-processed, and the states are all “unprocessed”. Similarly, the in-page situation management table has lower processing contents corresponding to the lower processing 1 to 3 based on the image processing contents, and the completion area is “0”. In addition, although the low-order process number demonstrated as the low-order process number 1-the low-order process number 3, it does not restrict to this.

次にS1901に進みCPU106は、画像処理を適用すべき全ページの画像データに対して、画像処理が完了したか否かを判定する。これは、ページ状況管理テーブルを参照し、全ページが処理済となっているかを判定する。この処理の開始時は、S1901において、全ページの状態は「未処理」であるため、画像処理が完了していないと判定する。S1901でCPU106は、画像処理が完了したと判定したときはS1913に処理を進め、画像処理が完了していないと判定した場合はS1902に処理を進める。S1902でCPU106は、これから画像処理するページを設定する。ここでは、基本的に、ページ状況管理テーブルのページ番号の小さいものから順に設定される。この画像処理制御の開始時はページ1が設定され、以降ページ2、ページ3と設定されていく。次にS1903に進みCPU106は、ページ間中断フラグが設定されているか否かを判定する。このページ間中断フラグは、ページ間中断要求に基づいて図16のS1607で設定され、ページ間中断要求があったことを表すフラグの情報である。S1903でCPU106は、ページ間中断フラグが設定されていないと判定するとS1904の処理に進み、ページ間中断フラグが設定されていると判定するとS1913の処理に進む。   In step S1901, the CPU 106 determines whether image processing has been completed for image data of all pages to which image processing is to be applied. This refers to the page status management table to determine whether all pages have been processed. At the start of this processing, in S1901, the state of all pages is “unprocessed”, so it is determined that the image processing has not been completed. In step S1901, the CPU 106 proceeds to step S1913 when determining that the image processing has been completed, and proceeds to step S1902 when determining that the image processing has not been completed. In step S1902, the CPU 106 sets a page for image processing. Here, the page status management table is basically set in ascending order of page numbers. At the start of this image processing control, page 1 is set, and thereafter, page 2 and page 3 are set. Next, proceeding to S1903, the CPU 106 determines whether or not the inter-page interruption flag is set. This inter-page interruption flag is flag information that is set in S1607 of FIG. 16 based on the inter-page interruption request and indicates that there is an inter-page interruption request. If the CPU 106 determines in step S1903 that the inter-page interruption flag is not set, the process proceeds to step S1904. If the CPU 106 determines that the inter-page interruption flag is set, the process proceeds to step S1913.

S1904でCPU106は、ページ状況管理テーブルの内のS1902で設定されたページ番号に対する状態を「未処理」から「処理中」に変更する。次にS1905に進みCPU106は、処理中のページの画像データに対して、全ての下位処理が完了したか否かを判定する。これは、ページ内状況管理テーブル(図18)の全ての下位処理の完了領域が、所定値かどうかで判定できる。図18の完了領域の値は、下位処理が完了したページの画像データの副走査方向のライン数を表している。尚、完了領域の値は、最小1ライン毎に更新することができるが、本実施形態では256ライン単位で更新する。また所定値は、入力画像データに依存した値(サイズ)であり、本実施形態では、入力画像データの副走査方向のライン長を表し、例えば「5000」とする。従って、完了領域に記載される数値が入力画像データのライン長と等しければ、そのページの画像データに対する下位処理が完了したことを示している。尚、上記で具体例で説明した事項は、本発明を限定するものではない。S1905でCPU106が、全ての下位処理が完了したと判定したときはS1912に処理を進め、全ての下位処理が完了していないと判定したときはS1906の処理に進む。   In step S1904, the CPU 106 changes the status for the page number set in step S1902 in the page status management table from “unprocessed” to “processing”. In step S1905, the CPU 106 determines whether all the lower-level processing has been completed for the image data of the page being processed. This can be determined based on whether or not the completion areas of all the lower-level processes in the in-page situation management table (FIG. 18) are a predetermined value. The value of the completed area in FIG. 18 represents the number of lines in the sub-scanning direction of the image data of the page for which the lower processing has been completed. The value of the completion area can be updated every minimum line, but in this embodiment, it is updated in units of 256 lines. The predetermined value is a value (size) depending on the input image data. In the present embodiment, the predetermined value represents the line length in the sub-scanning direction of the input image data, and is set to, for example, “5000”. Therefore, if the numerical value described in the completion area is equal to the line length of the input image data, it indicates that the lower-order processing for the image data of that page has been completed. In addition, the matter demonstrated by the specific example above does not limit this invention. If the CPU 106 determines in S1905 that all the lower processes have been completed, the process proceeds to S1912. If it is determined that all the lower processes have not been completed, the process proceeds to S1906.

S1906でCPU106は、即時中断フラグが設定されているかを判定する。この即時中断フラグは、即時中断要求に基づいて図16のS1607で設定されるもので、即時中断要求があったことを表すフラグの情報である。S1906でCPU106が即時中断フラグが設定されていると判定するとS1913に処理を進め、即時中断フラグが設定されていないと判定したときはS1907の処理に移る。S1907でCPU106は、処理中のページの画像データに対して、下位処理Kが完了したか否かを判定する。下位処理Kとは、K=1から始まる下位処理を表すパラメータである。K=1の場合は下位処理1に対応し、以降、K=2では下位処理2、K=3では下位処理3に対応する。尚、S1903とS1904との間で図示しない処理として、パラメータKは「1」に初期化されているものとする。従って、ページ処理において、初めてS1907の処理が実行される場合はK=1である。この場合には、ページ内状況管理テーブルの下位処理1の完了領域が、上述した入力画像データに基づいた所定サイズになっているかを判定する。本実施形態では、上述したように完了領域の値が「5000」となっているか判定することになる。S1907でCPU106は、下位処理Kが完了したと判定しときはS1911の処理に進み、下位処理Kが完了していないと判定したときはS1908の処理に進む。   In step S1906, the CPU 106 determines whether the immediate interruption flag is set. This immediate interruption flag is set in S1607 of FIG. 16 based on the immediate interruption request, and is information on a flag indicating that there is an immediate interruption request. If the CPU 106 determines in S1906 that the immediate interruption flag is set, the process proceeds to S1913. If it is determined that the immediate interruption flag is not set, the process proceeds to S1907. In step S <b> 1907, the CPU 106 determines whether or not the lower processing K has been completed for the image data of the page being processed. The lower process K is a parameter representing the lower process starting from K = 1. In the case of K = 1, it corresponds to the lower process 1, and in the following, K = 2 corresponds to the lower process 2, and K = 3 corresponds to the lower process 3. Note that the parameter K is initialized to “1” as a process (not shown) between S1903 and S1904. Therefore, K = 1 when the processing of S1907 is executed for the first time in the page processing. In this case, it is determined whether the completion area of the lower process 1 of the in-page situation management table has a predetermined size based on the input image data described above. In this embodiment, as described above, it is determined whether the value of the completion area is “5000”. If the CPU 106 determines in S1907 that the lower process K has been completed, the process proceeds to S1911. If the CPU 106 determines that the lower process K has not been completed, the process proceeds to S1908.

S1908でCPU106は、下位処理する領域を設定する。この下位処理する領域は基本的に、ページ内状況管理テーブルの対応する下位処理の完了領域の続きの領域である。実施形態では、処理の単位を256ラインとしたので、続きの領域から256ライン進んだ領域とする。例えば、完了領域が「0」である場合、1ライン目から256ライン目までを下位処理する領域として設定する。尚、必ずしも256ライン単位である必要はない。ページの終端では、256ラインバウンダリになっていない場合は、256ライン単位以内の領域となる。次にS1909に進みCPU106は、指定された領域に対して、下位処理Kを実行する。繰り返しになるが、ページ処理において、初めて、この下位処理が実行される場合は、下位処理1が、1ライン目から256ライン目に対して実行されることになる。次にS1910に進みCPU106は、ページ内状況管理テーブルの下位処理Kの完了領域を更新してS1906に進む。これはS1909の処理で完了した領域を、ページ内状況管理テーブルの完了領域に反映させるものである。本実施形態では、領域は256ライン単位であるため、完了領域に「256」を加えた値に更新することになる。例えば、図18(A)の下位処理1の状態の場合は、この更新により、完了領域の値は「256」となる。   In step S1908, the CPU 106 sets an area for lower processing. This area for lower processing is basically a continuation of the corresponding lower processing completion area of the in-page status management table. In the embodiment, since the unit of processing is 256 lines, it is assumed that the area advances 256 lines from the subsequent area. For example, when the completion area is “0”, the first line to the 256th line are set as areas for lower processing. Note that the unit is not necessarily 256 lines. At the end of the page, when the boundary is not 256 line, the area is within 256 line units. Next, proceeding to S1909, the CPU 106 executes the lower processing K for the designated area. Again, when this lower process is executed for the first time in the page process, the lower process 1 is executed from the first line to the 256th line. The process advances to step S1910, and the CPU 106 updates the completion area of the lower process K in the in-page status management table, and advances to step S1906. This reflects the area completed in S1909 in the completed area of the in-page status management table. In this embodiment, since the area is in units of 256 lines, the completion area is updated to a value obtained by adding “256”. For example, in the case of the lower processing 1 state of FIG. 18A, the value of the completed area becomes “256” by this update.

またS1911でCPU106は、下位処理Kの次に行うべき下位処理を設定してS1905に進む。下位処理KのパラメータはK=1から始まっているため、ここではKの値をインクリメントする。従って、K=1の場合は、ここでK=2に設定される。本実施形態ではいずれの値であってもインクリメントを行う。   In step S1911, the CPU 106 sets a lower process to be performed next to the lower process K, and the process advances to step S1905. Since the parameter of the lower process K starts from K = 1, the value of K is incremented here. Therefore, when K = 1, K = 2 is set here. In this embodiment, the increment is performed for any value.

また、該当ページに対する全ての下位処理が完了したときはS1912でCPU106は、ページ状況管理テーブルの状態が「処理中」となっている箇所を「処理済」に更新してS1901に処理を進める。これにより、該当ページの画像処理が完了したことを表現及び管理する。   When all the lower-level processes for the corresponding page are completed, the CPU 106 updates the part where the status of the page status management table is “processing” to “processed” in step S1912 and advances the process to step S1901. This represents and manages the completion of the image processing of the page.

またS1913でCPU106は、ページ状況管理テーブルをもとに、画像処理が完了したページの画像処理結果を、画像処理の要求元へ通知及び送信する。また併せて、全ページに対する画像処理が正常終了したメッセージ、又は、中断フラグに基づいて中断終了したメッセージを送信する。   In step S <b> 1913, the CPU 106 notifies and transmits the image processing result of the page for which image processing has been completed to the image processing request source based on the page status management table. At the same time, a message indicating that image processing for all pages has been normally completed or a message indicating completion of interruption based on the interruption flag is transmitted.

図20は、実施形態に係る画像形成装置100による拡張処理の終了処理(図5のS507)を説明するフローチャートである。この処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行される。   FIG. 20 is a flowchart for explaining the expansion processing end processing (S507 in FIG. 5) by the image forming apparatus 100 according to the embodiment. A program for executing this processing is stored in the ROM 108 or the HDD 121, and is expanded in the runtime RAM 107 and executed under the control of the CPU 106.

まずS2000でCPU106は、画像処理要求に対応する処理結果として正常終了のメッセージを受信したか否か判定する。上述したS1913において、画像処理要求の結果を表すメッセージ(正常終了又は中断終了)と、画像処理後の画像データを処理結果として送信している。このためこの処理では、上述した処理結果のメッセージ内容が正常終了を表しているかを判定することになる。S2000で正常終了のメッセージを受信したと判定したときはS2001の処理に進み、正常終了のメッセージを受信していないと判定した場合はS2000で、正常終了のメッセージを受信するまで待つ。S2001でCPU106は、受信した正常処理に対応する拡張処理の管理情報を、例えば図14の拡張処理実行管理テーブルから削除する。   First, in step S2000, the CPU 106 determines whether a normal end message has been received as a processing result corresponding to the image processing request. In S1913 described above, a message indicating the result of the image processing request (normal end or end of interruption) and image data after the image processing are transmitted as the processing result. For this reason, in this process, it is determined whether the message content of the process result described above represents normal end. If it is determined in S2000 that a normal end message has been received, the process proceeds to S2001. If it is determined that a normal end message has not been received, in S2000, the process waits until a normal end message is received. In step S2001, the CPU 106 deletes the extended process management information corresponding to the received normal process from, for example, the extended process execution management table of FIG.

例えば図14(A)において、拡張処理701に対応する正常処理のメッセージを受信した場合には、実行中処理番号1に関する情報が削除される。同時に、実行中処理番号2の情報が、実行中処理番号1の情報として管理され、図14(B)で示すようなテーブル内容になる。   For example, in FIG. 14A, when a normal processing message corresponding to the expansion processing 701 is received, the information regarding the processing number 1 being executed is deleted. At the same time, the information of the process number 2 being executed is managed as the information of the process number 1 being executed, and the table contents as shown in FIG.

次にS2002に進みCPU106は、空き状況管理テーブルの、処理が完了した処理形態で使用していた処理部を、使用中を示す(×)から未使用を示す(○)に変更する。例えば、処理形態801で行われていた処理が完了した場合は、使用されていたFPGA202とCPU106の使用が終了するので、空き状況管理テーブルのFPGA202とCPU106の空き状況を使用中(×)から未使用(○)へ変更する。この処理によって、他の拡張処理で、これら処理部(FPGA202とCPU106)を使用できるようになる。   Next, proceeding to S2002, the CPU 106 changes the processing unit used in the processing mode in which the processing is completed in the space status management table from (x) indicating in use to (o) indicating not in use. For example, when the processing performed in the processing mode 801 is completed, the use of the FPGA 202 and the CPU 106 that have been used ends, so the free status of the FPGA 202 and the CPU 106 in the free status management table is changed from being used (×) to not being used. Change to use (○). By this processing, these processing units (FPGA 202 and CPU 106) can be used in other extension processing.

次にS2003に進みCPU106は、処理形態の最適化処理を行う。これはS2002で使用中であった処理部が未使用となり、別の拡張処理で使用可能な状態に変化している。そのため、処理形態の最適化処理では、現在実行中の拡張処理の処理形態から、より早く処理が完了する処理形態に切り換えることができれば、処理形態の切り換えを行う。この処理形態の最適化処理については後述する。次にS2004に進みCPU106は、完了した拡張処理の処理結果を、HTTP通信により、拡張処理の要求元へ通知する。この処理結果の通知では、拡張処理の結果を表すメッセージ(正常終了、エラー終了など)と、拡張処理を実行した処理済の画像データを送信する。この画像データの送信により、要求された拡張処理が終了する。   In step S2003, the CPU 106 performs optimization processing. This is because the processing unit being used in S2002 is not used, and is changed to a state that can be used in another extension processing. For this reason, in the optimization process of the processing mode, if the processing mode of the extended processing that is currently being executed can be switched to a processing mode that completes processing earlier, the processing mode is switched. The optimization processing of this processing form will be described later. In step S2004, the CPU 106 notifies the processing result of the completed extension process to the requester of the extension process through HTTP communication. In the notification of the processing result, a message indicating the result of the expansion process (normal end, error end, etc.) and processed image data on which the expansion process has been executed are transmitted. The requested extension process is completed by the transmission of the image data.

図21は、図20のS2003の処理形態の最適化処理を説明するフローチャートである。この処理は、図6の処理形態の最適化処理605に対応している。   FIG. 21 is a flowchart for explaining the optimization processing in the processing form of S2003 in FIG. This processing corresponds to the optimization processing 605 of the processing form in FIG.

まずS2100でCPU106は、例えば前述の図14に示すような拡張処理実行管理テーブルの情報を取得する。上述したように拡張処理実行管理テーブルでは、現在実行中の拡張処理が管理されている。従って、CPU106は、その取得した情報に基づいて、現在実行中の拡張処理を確認できる。次にS2101に進みCPU106は、実行中の拡張処理があるか否かを判定する。これは上述したように、S2100で取得した拡張管理実行テーブルの情報に基づいて判定する。ここで実行中の拡張処理があると判定したときはS2102の処理に進み、実行中の拡張処理がないと判定した場合は、この処理を終了する。   First, in step S2100, the CPU 106 acquires information on an extended process execution management table such as that shown in FIG. As described above, the extended processing execution management table manages the extended processing currently being executed. Therefore, the CPU 106 can confirm the extension process currently being executed based on the acquired information. In step S2101, the CPU 106 determines whether there is an extended process being executed. As described above, this is determined based on the information in the extended management execution table acquired in S2100. If it is determined that there is an extension process being executed, the process proceeds to S2102. If it is determined that there is no extension process being executed, this process ends.

S2102でCPU106は、空き状況管理テーブルから、各処理部の空き状況を取得する。この処理では、S2002で、少なくとも1つ以上の処理部が使用状態から未使用状態へ変更されているので、少なくとも1つ以上の処理部が使用可能な状態である。次にS2103に進みCPU106は、実行中処理番号を表す変数Mを1に設定する。以降、この変数Mに基づいて処理が行われる。この変数Mにより、実行中の全ての拡張処理に対して、以降のS2105〜S2108の処理が行われる。   In S2102, the CPU 106 acquires the availability of each processing unit from the availability management table. In this process, since at least one processing unit is changed from the use state to the unused state in S2002, at least one processing unit is in a usable state. Next, proceeding to S <b> 2103, the CPU 106 sets a variable M representing the processing number being executed to 1. Thereafter, processing is performed based on the variable M. By this variable M, the following processes of S2105 to S2108 are performed for all the extended processes being executed.

次にS2104に進みCPU106は、実行中の全ての拡張処理の切換処理が完了したかどうかを判定する。これは、実行中処理番号を表す変数Mの値が、S2100で取得した拡張処理実行管理テーブルで登録されている実行中処理番号の最大値よりも大きいかどうかで判定できる。例えば、この処理を最初に行う時はM=1であり、実行中処理番号の最大値は少なくとも1以上になるため、実行中の全ての拡張処理に対して切換処理が完了していないと判定される。S2104でCPU106は、実行中の全ての拡張処理に対して切換処理が完了していると判定したときはこの処理を終了し、そうでないときはS2105の処理に進む。   Next, proceeding to S2104, the CPU 106 determines whether or not the switching process of all the extended processes being executed has been completed. This can be determined based on whether or not the value of the variable M representing the processing number being executed is larger than the maximum value of the processing number being executed registered in the extended processing execution management table acquired in S2100. For example, when this process is performed for the first time, M = 1 and the maximum value of the process number being executed is at least 1 or more, so it is determined that the switching process has not been completed for all the extended processes being executed. Is done. If the CPU 106 determines in S2104 that the switching process has been completed for all the extended processes being executed, the CPU 106 ends this process. If not, the process proceeds to S2105.

S2105でCPU106は、実行中処理番号Mの処理に対応する処理形態の情報を取得する。例えば、M=1のときには、拡張処理実行管理テーブルの実行中処理番号1の使用処理形態の情報を取得する。例えば図14(B)の例では、実行中処理番号1の使用処理形態は処理形態804である。次にS2106に進みCPU106は、実行中処理番号Mの実行中の処理形態よりも、使用可能な上位の処理形態があるかどうか判定する。これはS2105で取得した処理形態と、実行中処理番号Mの拡張処理に対応する処理形態管理テーブル(図9)と、S2102で取得した処理部の空き状況の情報を参照して判定できる。   In step S <b> 2105, the CPU 106 acquires information on the processing mode corresponding to the processing of the processing number M being executed. For example, when M = 1, information on the usage process form of the process number 1 being executed in the extended process execution management table is acquired. For example, in the example of FIG. 14B, the usage process form of the process number 1 being executed is the process form 804. The process advances to step S2106, and the CPU 106 determines whether there is a higher-level processing mode that can be used than the processing mode currently being executed with the processing number M being executed. This can be determined with reference to the processing mode acquired in S2105, the processing mode management table (FIG. 9) corresponding to the expansion processing with the processing number M being executed, and the processing unit availability information acquired in S2102.

図14(B)の例で説明すると、実行中処理番号1の使用処理形態は処理形態804、拡張処理の内容は拡張処理702であることが分かる。この拡張処理702に対応する処理形態管理テーブルは、実施形態では図9(B)である。図9(B)より、処理形態804よりも優先度の高い処理形態として処理形態802があることが分かる。更に、処理形態802で使用する処理部であるFPGA202とCPU204とが、共に空き状態であることを判定することになる。より厳密には、切換前の処理形態で使用する処理部から、切換後の処理形態で使用する処理部に変更することで、新たに必要となる処理部の空き状況のみを確認すればよい。なぜなら、切換前の処理形態の処理部は、後述する処理により中断されるため、引き継いで使用可能である。また使用可能な、より優先度の高い処理形態がある場合は、それを切換後に使用する処理形態として以降の処理を行う。尚、優先度が高い処理形態が複数存在する場合は、優先度が最も高い処理形態を、切換後に使用する処理形態とする。   In the example of FIG. 14B, it can be seen that the usage process type of the process number 1 being executed is the process type 804 and the content of the extension process is the extension process 702. The processing form management table corresponding to the extended processing 702 is FIG. 9B in the embodiment. From FIG. 9B, it can be seen that there is a processing mode 802 as a processing mode with higher priority than the processing mode 804. Furthermore, it is determined that both the FPGA 202 and the CPU 204, which are processing units used in the processing mode 802, are free. More strictly, it is only necessary to confirm only the vacant status of the newly required processing unit by changing from the processing unit used in the processing mode before switching to the processing unit used in the processing mode after switching. This is because the processing unit in the processing mode before switching is interrupted by processing to be described later, and can be used by taking over. If there is a higher-priority processing mode that can be used, the subsequent processing is performed as a processing mode to be used after switching. When there are a plurality of processing modes having a high priority, the processing mode having the highest priority is set as a processing mode to be used after switching.

S2106でCPU106が、実行中の処理形態よりも優先度の高い処理形態があると判定した場合はS2107の処理に進み、実行中の処理形態よりも優先度の高い処理形態がないと判定した場合はS2108の処理に進む。S2107でCPU106は、処理形態の切換処理を行う。この処理形態の切換処理は、実行中の処理形態から、より優先度の高い処理形態に切り換える処理である。この処理形態の切換処理については後述する。そしてS2108に進みCPU106は、実行中処理番号を表す変数MをインクリメントしてS2104に進む。   When the CPU 106 determines in S2106 that there is a processing form with a higher priority than the processing form being executed, the process proceeds to S2107, and when it is determined that there is no processing form with a higher priority than the processing form being executed Advances to the processing of S2108. In step S2107, the CPU 106 performs processing mode switching processing. This processing mode switching processing is processing for switching from the processing mode being executed to a processing mode having a higher priority. This processing mode switching process will be described later. The process advances to step S2108, and the CPU 106 increments the variable M indicating the process number being executed, and advances to step S2104.

S2107の処理形態の切換処理は、4つの形態が実現可能であり、それぞれを図22〜図25のフローチャートを参照して説明する。この処理形態の切換処理は、図6の処理形態の切替処理606に対応している。また、図22〜図25のフローチャートは、本実施形態に係る画像形成装置100に対していずれか1つが適用されるものであり、同時に2つ以上の処理形態の切換処理は適用しない。また4つの処理形態の切換処理を、図22から順に、第一の処理形態の切換処理、第二の処理形態の切換処理、第三の処理形態の切換処理、第四の処理形態の切換処理として説明する。   The processing mode switching processing in S2107 can be implemented in four modes, and each will be described with reference to the flowcharts in FIGS. This processing mode switching process corresponds to the processing mode switching process 606 of FIG. In addition, any one of the flowcharts of FIGS. 22 to 25 is applied to the image forming apparatus 100 according to the present embodiment, and switching processing of two or more processing forms is not applied at the same time. Further, the switching process of the four processing modes is performed in order from FIG. 22, the switching process of the first processing mode, the switching process of the second processing mode, the switching process of the third processing mode, and the switching process of the fourth processing mode. Will be described.

ここで、これら4つの処理形態の切換処理の違いを模式図で表したものが図26及び図27である。図26及び図27は、図面の右方向を経過時間として表している。また図26,27で、処理形態の切換処理を行わない場合の例、第一の処理形態の切換処理を行う場合の例、第二の処理形態の切換処理を行う場合の例、第三の処理形態の切換処理を行う場合の例、及び、第四の処理形態の切換処理を行う場合について示している。また、それぞれの図に記載される切替タイミングは、処理形態の切換処理が行われるタイミングを示したものである。図26と図27は、その切替タイミングが異なる場合の例で示しており、所定の拡張処理を10ページ分、行うことを前提としている。図26と図27において、p1〜p10は、1ページから10ページの画像処理を示している。また、現在の処理形態は、CPU106又はCPU204により実行されるとものとし、切換後の処理形態はFPGA202により実行されるものとしている。但し、これはあくまでも一例であってこれに限るものではない。   Here, FIG. 26 and FIG. 27 schematically show the difference in the switching process of these four processing forms. 26 and 27 show the elapsed time in the right direction of the drawing. 26 and 27, an example in which the processing mode switching process is not performed, an example in which the first processing mode switching process is performed, an example in which the second processing mode switching process is performed, and a third An example in which processing mode switching processing is performed and a case in which switching processing of the fourth processing mode is performed are shown. Moreover, the switching timing described in each figure shows the timing at which the processing mode switching processing is performed. FIG. 26 and FIG. 27 show examples in which the switching timings are different, and it is assumed that predetermined expansion processing is performed for 10 pages. 26 and 27, p1 to p10 indicate image processing from page 1 to page 10. The current processing mode is assumed to be executed by the CPU 106 or the CPU 204, and the processing mode after switching is executed by the FPGA 202. However, this is merely an example, and the present invention is not limited to this.

まず、図26と図27の処理形態の切換処理を行わない場合に関して説明する。処理形態の切換処理を行わない場合には、使用する処理形態に対して実行指示を出した段階の処理形態で10ページの全てに対して同一の処理形態で行った様子を表している。切替タイミングが発生しても、そもそも処理形態の切換処理が行われないため、現在の処理形態から変更されることはない。これに対して、第一から第四の各処理形態の切換処理では、切替タイミングを境界として、処理形態が変更される様子を表している。尚、第一から第四の各処理形態の切換処理の詳細な説明は後述する。   First, a description will be given of a case where the switching process between the processing modes of FIGS. When the processing mode switching process is not performed, the processing mode at the stage where the execution instruction is issued for the processing mode to be used is shown in the same processing mode for all 10 pages. Even if the switching timing occurs, the processing mode switching process is not performed in the first place, so that the current processing mode is not changed. On the other hand, in the switching process of each of the first to fourth processing modes, the processing mode is changed with the switching timing as a boundary. A detailed description of the switching processing of the first to fourth processing modes will be given later.

まず、第一の処理形態の切換処理について説明する。これは、切換前の処理形態で行っている画像処理を即座に中断し、切換後の処理形態でゼロから画像処理をやり直すものである。   First, switching processing of the first processing form will be described. In this method, the image processing performed in the processing mode before switching is immediately interrupted, and the image processing is restarted from zero in the processing mode after switching.

図22は、実施形態に係る画像形成装置100による第一の処理形態の切換処理(S2107)を説明するフローチャートである。尚、このフローチャートで示す処理は、画像処理要求を受信したCPU(CPU106又はCPU204)により実行される。ここではCPU106が実行するものとして説明する。ここではこの処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行されるものとする。   FIG. 22 is a flowchart for describing the switching process (S2107) of the first processing form by the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is executed by the CPU (CPU 106 or CPU 204) that has received the image processing request. Here, the description will be made assuming that the CPU 106 executes. Here, it is assumed that a program for executing this processing is stored in the ROM 108 or the HDD 121, developed in the runtime RAM 107, and executed under the control of the CPU 106.

まずS2200でCPU106は、即時中断要求を発行する。この即時中断要求の発行先は、処理形態の切換処理の対象となっている処理形態のCPUである。このときの処理形態はS2105で取得した処理形態である。本実施形態では、CPU106又はCPU204となる。例えば、処理形態の切換処理の対象が処理形態804の場合には、CPU204に対して即時中断要求を発行することになる。また上述したように、CPU204は、即時中断要求を図16の画像処理要求の受信処理のS1601の処理で検知し、S1607の処理で即時中断フラグを設定する。この一連の動作により、図19の画像処理制御処理のS1904の処理で即時中断することができる。   First, in S2200, the CPU 106 issues an immediate interruption request. The issue destination of this immediate interruption request is the CPU of the processing form that is the target of the processing form switching process. The processing mode at this time is the processing mode acquired in S2105. In this embodiment, the CPU 106 or the CPU 204 is used. For example, when the target of the processing mode switching process is the processing mode 804, an immediate interruption request is issued to the CPU 204. Further, as described above, the CPU 204 detects the immediate interruption request in the process of S1601 of the image processing request reception process in FIG. 16, and sets the immediate interruption flag in the process of S1607. By this series of operations, the processing can be immediately interrupted in the processing of S1904 of the image processing control processing of FIG.

次にS2201に進みCPU106は、中断要求先の処理形態の処理部から処理結果を受信したか否かを判定する。これはS2200で発行した即時中断要求に応答して、画像処理制御が即時中断したことを確認するものである。画像処理制御処理を中断した場合、図19のS1913で中断終了のメッセージを送信するようにしているので、このメッセージを確認することで判定する。S2201でCPU106は、処理結果を受信したと判定するとS2202の処理に進むが、そうでないときはS2201で処理結果を受信するまで待つ。   Next, proceeding to S2201, the CPU 106 determines whether or not a processing result has been received from the processing unit of the processing mode requested to be interrupted. This is to confirm that the image processing control is immediately interrupted in response to the immediate interrupt request issued in S2200. If the image processing control process is interrupted, the interruption end message is transmitted in step S1913 in FIG. 19, so the determination is made by confirming this message. If the CPU 106 determines in S2201 that the processing result has been received, the process proceeds to S2202. If not, the CPU 106 waits until the processing result is received in S2201.

S2202でCPU106は、S2201で受信した処理結果を削除する。第一の処理形態の切換処理では、切換後の処理形態でゼロから画像処理をやり直すため、S2201で受信した処理結果は以降の処理で不要である。そのため、その処理結果を削除する。次にS2203に進みCPU106は、空き状況管理テーブルに対して、中断した処理形態の処理部の状況を使用中(×)から未使用(○)に変更する。例えば、処理形態804の場合には、図8からCPU204を使用しているので、CPU204の空き状況を使用中から未使用に変更する。次にS2204に進みCPU106は、空き状況管理テーブルの、処理形態の切換後に使用する処理部の状況を未使用(○)から使用中(×)に変更する。ここで、処理形態の切換後に使用する処理部は、図21のS2106で決定した切換後の処理形態の情報を参照することで確認できる。例えば、処理形態804から処理形態802に切換えた場合には、処理形態802で使用するFPGA202とCPU204の空き状況を未使用(○)から使用中(×)に変更する。   In step S2202, the CPU 106 deletes the processing result received in step S2201. In the switching process of the first processing mode, the image processing is restarted from zero in the processing mode after switching, and therefore the processing result received in S2201 is unnecessary in the subsequent processing. Therefore, the processing result is deleted. Next, proceeding to S2203, the CPU 106 changes the status of the processing unit of the suspended processing mode from being used (X) to not being used (O) for the vacancy status management table. For example, in the case of the processing mode 804, since the CPU 204 is used from FIG. 8, the availability of the CPU 204 is changed from being used to not being used. Next, proceeding to S2204, the CPU 106 changes the status of the processing unit used after the switching of the processing mode in the vacancy status management table from unused (O) to in-use (X). Here, the processing unit used after the switching of the processing mode can be confirmed by referring to the processing mode information after switching determined in S2106 of FIG. For example, when the processing mode 804 is switched to the processing mode 802, the availability of the FPGA 202 and the CPU 204 used in the processing mode 802 is changed from unused (O) to being used (X).

次にS2205に進みCPU106は、切換後に使用する処理形態がFPGA202を使用するかを判定する。例えば、切換後に使用するものが処理形態802であればFPGA202を使用すると判定する。ここでFPGA202を使用すると判定したときはS2206の処理に進み、FPGA202を使用しないと判定した場合はS2208の処理に進む。S2206でCPU106は、FPGA202の再構成要求を発行する。これは上述した図5のS504と同様の処理であり、再構成要求を表すメッセージと処理対象となっている処理内容の情報を送信する。この処理内容の情報は、FPGA202に対して再構成すべき回路構成情報の決定のために使用される。そしてS2207に進みCPU106は、FPGA202の再構成が完了したかどうか判定する。これは上述したS505と同様の処理であり、FPGA202の再構成が完了したかどうかは、再構成の要求に対する完了の通知を表すメッセージを受信したかにより判定される。S2207でFPGA202の再構成が完了したと判定したときはS2208に進み、CPU106は、切換先となる処理形態に対して画像処理要求を発行する。これはS506と同様の処理であり、CPU106は、切換後に使用する処理形態の処理部となるCPU(CPU106又はCPU204)に対して、画像処理要求を発行する。この画像処理要求の発行では、画像処理成要求を表すメッセージ、処理対象の処理内容と処理形態の情報、及び、画像データを送信する。ここでは、画像処理を適用する画像データの全てに対して、処理要求の発行を行う。一方、FPGA202の再構成が完了していないと判定した場合はS2207の処理を繰り返し実行する。   Next, proceeding to S2205, the CPU 106 determines whether the FPGA 202 is used as the processing mode to be used after switching. For example, if the processing form 802 is used after switching, it is determined that the FPGA 202 is used. If it is determined that the FPGA 202 is to be used, the process proceeds to S2206. If it is determined that the FPGA 202 is not used, the process proceeds to S2208. In step S <b> 2206, the CPU 106 issues a reconfiguration request for the FPGA 202. This is the same processing as that in S504 of FIG. 5 described above, and a message indicating a reconfiguration request and information on the processing content to be processed are transmitted. This processing content information is used for determining circuit configuration information to be reconfigured for the FPGA 202. In step S2207, the CPU 106 determines whether the reconfiguration of the FPGA 202 has been completed. This is the same processing as S505 described above, and whether or not the reconfiguration of the FPGA 202 has been completed is determined based on whether or not a message indicating completion notification for the reconfiguration request has been received. If it is determined in step S2207 that the reconfiguration of the FPGA 202 has been completed, the process advances to step S2208, and the CPU 106 issues an image processing request to the processing mode that is the switching destination. This is the same processing as that in S506, and the CPU 106 issues an image processing request to the CPU (CPU 106 or CPU 204) serving as the processing unit of the processing form to be used after switching. In the issuance of the image processing request, a message indicating an image processing request, information on processing contents and processing forms to be processed, and image data are transmitted. Here, a processing request is issued for all image data to which image processing is applied. On the other hand, when it is determined that the FPGA 202 has not been reconfigured, the process of S2207 is repeatedly executed.

以上説明した第一の処理形態の切換処理により、即時中断要求を発行し、切換前の処理形態の画像処理実行を即時中断させ、切換後の処理形態でゼロから画像処理をやり直す制御が可能となる。   By the switching process of the first processing form described above, an immediate interruption request is issued, the image processing execution of the processing form before switching is immediately interrupted, and the image processing can be controlled from zero again in the processing form after switching. Become.

図26(a)と図27(a)は、第一の処理形態の切換処理による画像処理の様子を表している。ともに、切替タイミングで第一の処理形態の切換処理が動作し、現在の処理形態の画像処理を即座に中断し、切換後の処理形態でページ1から再度実行している。第一の処理形態の切換処理では、このような画像処理の切換処理が実現可能であり、切り換えタイミングに依存してしまうが、処理形態の切換処理を行わない場合に比べて早く処理が完了する。   FIG. 26A and FIG. 27A show the state of image processing by switching processing of the first processing form. In both cases, the switching process of the first processing form operates at the switching timing, the image processing of the current processing form is immediately interrupted, and is executed again from page 1 in the processing form after switching. In the switching process of the first processing form, such a switching process of the image processing can be realized and depends on the switching timing, but the process is completed earlier than the case where the switching process of the processing form is not performed. .

次に、第二の処理形態の切換処理について説明する。   Next, switching processing of the second processing form will be described.

この第二の処理形態の切換処理は、切換前の処理形態で行っている画像処理を即座に中断し、切換後の処理形態で、切換前の処理形態で画像処理が完了していないページのみ画像処理を実行する。即ち、切換前の処理形態での処理結果を引き継いで、切換後の処理形態に画像処理を実行させる。但し、画像処理が途中のページ(例えば図26(b)、図27(b)のページ4)に関しては、そのページ内の処理を引き継がず、そのページの最初から切換後の処理形態で画像処理を実行させる。即ち、図26(b)、図27(b)では、処理形態を切替えた後、ページ4の最初から画像処理を実行している。   This switching process of the second processing mode immediately interrupts the image processing performed in the processing mode before switching, and only the pages in which the image processing has not been completed in the processing mode after switching in the processing mode after switching. Perform image processing. That is, the processing result in the processing mode before switching is taken over, and the image processing is executed in the processing mode after switching. However, for a page in the middle of image processing (for example, page 4 in FIGS. 26B and 27B), the processing in the page is not taken over, and the image processing is performed in the processing form after switching from the beginning of the page. Is executed. That is, in FIG. 26B and FIG. 27B, image processing is executed from the beginning of page 4 after the processing mode is switched.

図23は、実施形態に係る画像形成装置100による第二の処理形態の切換処理(S2107)を説明するフローチャートである。尚、このフローチャートで示す処理は、画像処理要求を受信したCPU(CPU106又はCPU204)により実行される。ここではCPU106が実行するものとして説明する。ここではこの処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行されるものとする。   FIG. 23 is a flowchart for explaining the switching process (S2107) of the second processing form by the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is executed by the CPU (CPU 106 or CPU 204) that has received the image processing request. Here, the description will be made assuming that the CPU 106 executes. Here, it is assumed that a program for executing this processing is stored in the ROM 108 or the HDD 121, developed in the runtime RAM 107, and executed under the control of the CPU 106.

S2300とS2301の処理は、前述の図22のS2200とS2201と同様の処理であるため、その説明を省略する。S2302でCPU106は、受信した処理結果を拡張処理実行管理テーブル(図14)に登録する。ここで受信した処理結果には、処理済のページの画像データが含まれており、処理済のページ番号を確認できる。処理形態の切換前後で引き継いで画像処理を行うために、後々参照できるように、処理済のページ番号を拡張処理実行管理テーブルの中断状態に格納する。例えば、図14(C)では、切換前の処理形態である処理形態804を中断させ、このとき3ページまで処理が完了しているため中断状態に「3」を登録している。その後、切換後の処理形態である処理形態802は、4ページ目から10ページ目までの画像処理を実行することになる。   Since the processing of S2300 and S2301 is the same processing as S2200 and S2201 of FIG. 22 described above, the description thereof is omitted. In S2302, the CPU 106 registers the received processing result in the extended processing execution management table (FIG. 14). The processing result received here includes the image data of the processed page, and the processed page number can be confirmed. In order to carry out the image processing by taking over before and after the switching of the processing mode, the processed page number is stored in the suspended state of the extended processing execution management table so that it can be referred to later. For example, in FIG. 14C, the processing mode 804, which is the processing mode before switching, is interrupted, and since processing has been completed up to three pages at this time, “3” is registered in the interrupted state. Thereafter, in the processing mode 802 that is the processing mode after switching, image processing from the fourth page to the tenth page is executed.

次にS2303とS2304は、図22のS2203とS2204と同様の処理であるため、その説明を省略する。また次にS2305〜2307の処理は、図22のS2205〜S2207と同様の処理であるため、その説明を省略する。そしてS2308に進みCPU106は、拡張処理実行管理テーブルから処理すべきページ番号を取得する。これはS2302で拡張処理実行管理テーブルの中断状態に登録したページ番号を取得するものである。次にS2309に進みCPU106は、切換先となる処理形態に対して画像処理要求を発行する。これは基本的に、図22のS2208と同様の処理であるが、画像処理要求の発行時において、送信する画像データが異なる。ここでは、S2308で取得した処理すべきページ番号に基づいて、処理済のページと未処理のページとを区別し、未処理のページのみを画像処理要求で送信する画像データとする。この部分が図22のS2208とは異なる点である。   Next, S2303 and S2304 are the same processes as S2203 and S2204 in FIG. Further, the processing of S2305 to 2307 is the same processing as S2205 to S2207 of FIG. In step S2308, the CPU 106 acquires the page number to be processed from the extended process execution management table. This obtains the page number registered in the suspended state of the extended process execution management table in S2302. In step S2309, the CPU 106 issues an image processing request to the processing mode that is the switching destination. This is basically the same processing as S2208 in FIG. 22, but the image data to be transmitted is different when the image processing request is issued. Here, based on the page number to be processed acquired in S2308, the processed page and the unprocessed page are distinguished, and only the unprocessed page is set as image data to be transmitted in the image processing request. This part is different from S2208 in FIG.

以上説明したようにして第二の処理形態の切換処理を実行できる。この第二の処理形態の切換処理により、即時中断要求を発行し、切換前の処理形態の画像処理実行を即時中断させ、切換後の処理形態では処理結果を引き継いで画像処理を実行する制御が可能となる。   As described above, the switching process of the second processing mode can be executed. By the switching process of the second processing form, an immediate interruption request is issued, the image processing execution of the processing form before the switching is immediately interrupted, and the control of executing the image processing by taking over the processing result in the processing form after the switching is performed. It becomes possible.

図26(b)と図27(b)は、第二の処理形態の切換処理による画像処理の様子を表している。ともに、切替タイミングで第二の処理形態の切換処理が動作し、現在の処理形態の画像処理を即座に中断している。切換後の処理形態では、第一の処理形態の切換処理の場合のようにページ1から再度実行するのではなく、処理結果を引き継いで画像処理を実行している。より詳細に説明すると、切換前となる現在の処理形態ではページ1〜3の処理が完了していて、ページ4の処理の途中で中断している。従って、切換後の処理形態では、ページ4の処理から実行することになる。このように第二の処理形態の切換処理では、処理結果を引き継いで切換後の処理形態で処理を行うため、第一の処理形態の切換処理よりも処理時間の短縮が可能である。   FIG. 26B and FIG. 27B show the state of image processing by the switching processing of the second processing form. In both cases, the switching process of the second processing form operates at the switching timing, and the image processing of the current processing form is immediately interrupted. In the processing mode after switching, image processing is performed by taking over the processing result instead of executing again from page 1 as in the switching processing of the first processing mode. More specifically, in the current processing form before switching, the processing of pages 1 to 3 is completed, and the processing of page 4 is interrupted. Therefore, in the processing mode after switching, processing is executed from the processing of page 4. As described above, in the switching process of the second processing mode, the processing result is taken over and the processing is performed in the processing mode after switching. Therefore, the processing time can be shortened compared to the switching process of the first processing mode.

次に第三の処理形態の切換処理について説明する。   Next, switching processing of the third processing form will be described.

この第三の処理形態の切換処理は、切換前の処理形態で行っている画像処理を即座に中断せずに、切替タイミングで処理中のページに対する画像処理が完了した後に、その画像処理を中断して処理形態を切り換える。切換後の処理形態では、第二の処理形態の切換処理と同様に、切換前の処理形態で既に画像処理が完了していないページのみ画像処理を実行する。図26(c)、図27(c)は、第三の処理形態の切換処理を説明している。これら図では、ページ4の画像処理中に切替タイミングが発生しているため、そのページ4の画像処理の完了を待って、処理形態を切り換えている。従って、処理形態を切り換えた後は、ページ5から画像処理が実行される。   The switching process of the third processing mode does not immediately interrupt the image processing performed in the processing mode before the switching, but interrupts the image processing after the image processing for the page being processed is completed at the switching timing. Then, the processing mode is switched. In the processing mode after switching, as in the switching processing in the second processing mode, image processing is executed only for pages for which image processing has not been completed in the processing mode before switching. FIG. 26C and FIG. 27C illustrate the switching process of the third processing form. In these figures, since the switching timing occurs during the image processing of page 4, the processing mode is switched after the completion of the image processing of page 4. Therefore, image processing is executed from page 5 after the processing mode is switched.

図24は、実施形態に係る画像形成装置100による第三の処理形態の切換処理(S2107)を説明するフローチャートである。尚、このフローチャートで示す処理は、画像処理要求を受信したCPU(CPU106又はCPU204)により実行される。ここではCPU106が実行するものとして説明する。ここではこの処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行されるものとする。   FIG. 24 is a flowchart for explaining the switching process (S2107) of the third processing form by the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is executed by the CPU (CPU 106 or CPU 204) that has received the image processing request. Here, the description will be made assuming that the CPU 106 executes. Here, it is assumed that a program for executing this processing is stored in the ROM 108 or the HDD 121, developed in the runtime RAM 107, and executed under the control of the CPU 106.

先ずS2400でCPU106は、ページ間中断要求を発行する。このときのページ間中断要求の発行先は、処理形態の切換処理の対象となっている処理形態のCPUとなる。この処理形態は、S2105で取得した処理形態で、実施形態ではCPU106又はCPU204となる。例えば、処理形態の切換処理の対象が処理形態804の場合は、CPU204に対してページ間中断要求が発行される。また、上述したように、CPU204はページ間中断要求を図16の画像処理要求の受信処理のS1601の処理で検知し、S1607の処理でページ間中断フラグを設定する。この一連の動作により、図19の画像処理制御処理のS1903で、ページ処理の完了後に中断することができる。   First, in step S2400, the CPU 106 issues an inter-page interruption request. The issue destination of the inter-page interruption request at this time is the CPU of the processing mode that is the target of the processing mode switching process. This processing form is the processing form acquired in S2105, and is the CPU 106 or the CPU 204 in the embodiment. For example, when the target of the processing mode switching process is the processing mode 804, an inter-page interruption request is issued to the CPU 204. Further, as described above, the CPU 204 detects the inter-page interruption request in the process of S1601 of the image processing request reception process in FIG. 16, and sets the inter-page interruption flag in the process of S1607. By this series of operations, the page processing can be interrupted after completion of the page processing in S1903 of the image processing control processing of FIG.

次にS2401に進みCPU106は、中断要求先の処理形態の処理部から処理結果を受信したか否かを判定する。これはS2400で発行したページ間中断要求に応答して、画像処理制御処理がページ間で中断したことを確認するものである。画像処理制御処理を中断した場合には、図19のS1913で中断終了のメッセージを送信するようにしているので、このメッセージを確認することで判定する。但し、ページ間中断要求の場合には、切換前の処理形態が最終ページの処理中であった場合には、S1903の処理の前にS1901の処理で全てのページに対する処理が完了すると判定されるため、正常終了のメッセージを受信することがある。従って、正常終了のメッセージを合わせて確認することでこの処理は実現される。処理結果を受信したと判定した場合はS2402の処理に移る。処理結果を受信していないと判定された場合、S2401で処理結果を受信するまで待つことになる。   Next, proceeding to S2401, the CPU 106 determines whether or not a processing result has been received from the processing unit of the processing mode requested to be interrupted. This is to confirm that the image processing control process is interrupted between pages in response to the inter-page interruption request issued in S2400. When the image processing control process is interrupted, a message indicating the end of the interruption is transmitted in S1913 of FIG. 19, and thus determination is made by confirming this message. However, in the case of an inter-page interruption request, if the processing mode before switching is the processing of the last page, it is determined that the processing for all pages is completed in the processing of S1901 before the processing of S1903. Therefore, a normal end message may be received. Therefore, this process is realized by confirming the message of normal termination together. If it is determined that the processing result has been received, the process proceeds to S2402. If it is determined that the processing result has not been received, the processing waits until the processing result is received in S2401.

S2402でCPU106は、受信した処理結果は全ページ処理が完了したものかどうか判定する。S2401で上述したように、全ページ処理が完了している場合には、正常終了を表しているメッセージを処理結果として受信する。従って、正常終了のメッセージ受信をしたかどうかを判定する。受信した処理結果は全ページ処理が完了したものであると判定した場合はこの処理を終了するが、そうでないときはS2403の処理に進む。S2403〜S2410の処理は、図23の第二の処理形態の切換処理のS2302〜S2309と同様であるため、その説明を省略する。   In S <b> 2402, the CPU 106 determines whether or not the received processing result is that all page processing has been completed. As described above in step S2401, when all page processing has been completed, a message indicating normal termination is received as a processing result. Therefore, it is determined whether or not a normal end message has been received. If it is determined that the received processing result is that all page processing has been completed, this processing ends. If not, the processing proceeds to S2403. The processing of S2403 to S2410 is the same as S2302 to S2309 of the switching processing of the second processing form in FIG.

以上説明した処理により、第三の処理形態の切換処理が実行される。この第三の処理形態の切換処理では、ページ間中断要求を発行し、切換前の処理形態の画像処理実行で行っているページ処理完了を待ってから中断させ、切換後の処理形態では処理結果を引き継いで画像処理を実行する制御が可能となる。   By the process described above, the switching process of the third process form is executed. In the switching process of the third processing form, an inter-page interruption request is issued, and the process is interrupted after waiting for the completion of the page processing performed in the image processing execution of the processing form before the switching. It is possible to perform control to execute image processing by taking over.

図26(c)と図27(c)は、第三の処理形態の切換処理による画像処理の様子を表している。ともに、切替タイミングで第三の処理形態の切換処理が動作し、現在の処理形態の画像処理で行っているページ処理完了を待ってから中断している。また、切換後の処理形態ではページ1から再度実行するのではなく、処理結果を引き継いで画像処理を実行していることを表している。より詳細に説明すると、切替タイミングでは、切換前となる現在の処理形態ではページ1〜3の処理が完了し、ページ4の処理の途中となっているが、中断はページ4の処理完了を待ってから行っている。そして、切換後の処理形態では、ページ5の処理から実行している。このように、切替タイミングがページ処理の終わりに近ければ、第二の処理形態の切換処理と比べて、図26の例で示すように、より早く処理を完了することができる。   FIG. 26C and FIG. 27C show the state of image processing by the switching processing of the third processing form. In both cases, the switching process of the third processing mode operates at the switching timing, and is suspended after waiting for the completion of the page processing performed in the image processing of the current processing mode. In addition, the processing form after switching indicates that image processing is executed by taking over the processing result instead of executing again from page 1. More specifically, at the switching timing, the processing of pages 1 to 3 is completed and the processing of page 4 is completed in the current processing form before switching, but the interruption waits for the completion of processing of page 4 It has been done since then. Then, in the processing form after switching, processing is executed from the processing of page 5. In this way, if the switching timing is close to the end of the page processing, the processing can be completed earlier as shown in the example of FIG. 26 as compared with the switching processing of the second processing mode.

次に第四の処理形態の切換処理について説明する。   Next, switching processing of the fourth processing mode will be described.

図26と図27を参照すると、第二の処理形態の切換処理で行った方が合計の処理時間が短くなる場合と、第三の処理形態の切換処理で行った方が合計の処理時間が短くなる場合とがあることがわかる。これは切替タイミングの時の処理中のページの処理状況の違いによるものである。図26の切替タイミングでは、処理中のページ4の処理状況が、終盤(図26の例では、11/12まで処理が完了した状態)まで処理が進んだ状態である。これに対して図27の切替タイミングでは、処理中のページ4の処理状況は、処理がまだ序盤(図27の例では1/3まで完了した状態)である。従って、図26の切替タイミングでは、処理中のページ4の処理が完了するのを待ってから処理を中断した方が合計の処理時間が短くなり、図27の切替タイミングでは、即座に中断した方が合計の処理時間が短くなる。そこで第四の処理形態の切換処理では、切替タイミングの時点で、処理中のページの画像処理の進捗状況を取得した上で、即座に処理を中断すべきか、処理中のページ処理が完了するのを待ってから中断すべきかを判定して制御する。   Referring to FIGS. 26 and 27, the total processing time is shorter when the total processing time is shorter in the second processing mode switching process, and the total processing time is shorter in the third processing mode switching process. It turns out that it may become shorter. This is due to the difference in the processing status of the page being processed at the switching timing. In the switching timing of FIG. 26, the processing status of the page 4 being processed is in a state where the processing has progressed to the final stage (in the example of FIG. 26, the processing has been completed up to 11/12). On the other hand, at the switching timing of FIG. 27, the processing status of page 4 being processed is in the early stage (in the example of FIG. 27, the state is completed to 1/3). Therefore, at the switching timing in FIG. 26, the total processing time is shorter when the processing is interrupted after the processing of page 4 being processed is completed, and at the switching timing in FIG. However, the total processing time is shortened. Therefore, in the switching processing of the fourth processing form, at the time of switching timing, after acquiring the progress status of the image processing of the page being processed, the processing should be interrupted immediately or the page processing being processed is completed. Control whether to wait after waiting.

図25は、実施形態に係る画像形成装置100による第四の処理形態の切換処理(2107)を説明するフローチャートである。尚、このフローチャートで示す処理は、画像処理要求を受信したCPU(CPU106又はCPU204)により実行される。ここではCPU106が実行するものとして説明する。ここではこの処理を実行するプログラムはROM108或いはHDD121に記憶されており、実行時RAM107に展開されてCPU106の制御の下に実行されるものとする。   FIG. 25 is a flowchart for explaining a switching process (2107) of the fourth processing form by the image forming apparatus 100 according to the embodiment. The processing shown in this flowchart is executed by the CPU (CPU 106 or CPU 204) that has received the image processing request. Here, the description will be made assuming that the CPU 106 executes. Here, it is assumed that a program for executing this processing is stored in the ROM 108 or the HDD 121, developed in the runtime RAM 107, and executed under the control of the CPU 106.

先ずS2500でCPU106は、処理ステータスを取得する。この処理ステータスの取得は、現在の処理形態で処理を実行しているCPUに対して、処理ステータス確認要求を発行することで取得できる。処理ステータス確認要求を発行すると、上述したように、S1600により検知され、処理済みのページ番号の情報と、処理中のページで完了した下位処理の数と処理中の下位処理の完了領域の値が処理ステータスとして取得できる。   First, in S2500, the CPU 106 acquires a processing status. This processing status can be acquired by issuing a processing status confirmation request to a CPU that is executing processing in the current processing mode. When the processing status confirmation request is issued, as described above, the information of the processed page number, the number of the lower processing completed on the page being processed, and the value of the completion area of the lower processing being processed are detected. Can be acquired as processing status.

次にS2501に進みCPU106は、現在実行中のページに対して、下位処理が所定数以上完了しているかを判定する。S2500で処理ステータスとして処理中のページに対して完了した下位処理の数を取得しているので、この情報を基に判定できる。例えば、図18に示すように、そのページの処理が3つの下位処理で構成される場合は、所定数以上として具体的には2以上の下位処理が完了しているかを判定する。閾値となるこの所定数としては、即座に中断した場合と、現在実行中のページの処理が完了するのを待ってから中断した時に、どちらの方が早くなるかを考慮した値とする。例えば、現在実行中の処理形態では、各下位処理に5秒を必要とし、切換後の処理形態では、各下位処理に1秒を必要とする場合を想定する。この場合は、即時中断した方が確実に早くなる境界として、下位処理が2つ以上完了してない状態となり、この数「2」が所定数として決定される。下位処理が2つ以上完了している場合は、更に処理中の下位処理でページのどの領域まで処理が完了しているかを確認しないと、どちらの中断方法を適用した方が早いかを判断できない。従って、後述するS2502で、更に処理中の下位処理の完了領域の数を判定する。S2501でCPU106は、下位処理が所定数以上完了していると判定した場合はS2502の処理に進み、そうでないときはS2504の処理に進んで、即時中断要求を発行してS2505に進む。S2502でCPU106は、現在実行中の下位処理が所定領域以上完了しているかどうか判定する。S2500で処理ステータスとして処理中の下位処理の完了領域の値を取得しているので、この情報を基に判定できる。   In step S2501, the CPU 106 determines whether a predetermined number or more of low-order processes have been completed for the currently executed page. Since the number of lower-level processes completed for the page being processed is acquired as the processing status in S2500, the determination can be made based on this information. For example, as shown in FIG. 18, when the processing of the page is composed of three sub-processes, it is determined whether or not two or more sub-processes have been completed. The predetermined number serving as the threshold is a value that considers which is faster when it is interrupted immediately or when it is interrupted after waiting for the processing of the currently executed page to be completed. For example, assume that the processing mode currently being executed requires 5 seconds for each lower-level process, and the post-switching processing mode requires 1 second for each lower-level process. In this case, two or more lower-level processes are not completed as a boundary that is surely earlier when the immediate interruption is performed, and this number “2” is determined as a predetermined number. If two or more sub-processes have been completed, it is impossible to determine which interrupt method is applied earlier unless the sub-process being processed is checked to which area of the page the process has been completed. . Therefore, in S2502, which will be described later, the number of completed areas of the lower processing being further processed is determined. If it is determined in S2501 that the predetermined number of lower-level processes have been completed, the CPU 106 proceeds to S2502, otherwise proceeds to S2504, issues an immediate interruption request, and proceeds to S2505. In step S2502, the CPU 106 determines whether the lower-level process currently being executed has completed a predetermined area or more. Since the value of the completion area of the lower process being processed is acquired as the process status in S2500, the determination can be made based on this information.

S2501を、上述した具体例に沿って説明する。下位処理が2つ以上完了している場合は、遅くとも5秒以内に処理が完了する。また、即座に中断して切換後の処理形態で実行した場合は、3秒で処理が完了する。従って、現在実行中の下位処理が3/5以上完了している場合には、現在実行中のページの処理完了を待ってから中断した方が、合計の処理時間が短くなる。このように、S2502における閾値も、S2501の閾値の考え方と同様に、即座に中断した場合と、現在実行中のページの処理の完了を待ってから中断した場合に、どちらが合計の処理時間が短くなるかを考慮した値となる。S2502でCPU106が、現在実行中の下位処理が所定領域以上完了していると判定した場合はS2503の処理に進み、そうでないときはS2504の処理に移る。   S2501 will be described along the specific example described above. If two or more subordinate processes are completed, the process is completed within 5 seconds at the latest. Further, when the processing is immediately interrupted and executed in the processing mode after switching, the processing is completed in 3 seconds. Therefore, when the lower-level processing currently being executed is completed by 3/5 or more, the total processing time is shortened by suspending the processing after waiting for completion of the processing of the currently-executed page. As described above, the threshold value in S2502 is the same as the threshold value concept in S2501, which is shorter when the processing is interrupted immediately or when the processing is interrupted after completion of processing of the currently executed page. It is a value that considers whether If the CPU 106 determines in S2502 that the currently executed lower-level processing has been completed for a predetermined area or more, the process proceeds to S2503. If not, the process proceeds to S2504.

この後のS2503の処理は、図24のS2400と同様の処理であり、S2504の処理は図23のS2300と同様の処理である。またS2505〜S2514の処理は、上述した図24の第三の処理形態の切換処理のS2401〜S2410の処理と同様であるため、それらの説明を省略する。   The subsequent processing of S2503 is the same processing as S2400 of FIG. 24, and the processing of S2504 is the same processing as S2300 of FIG. Further, the processing of S2505 to S2514 is the same as the processing of S2401 to S2410 of the switching processing of the third processing mode in FIG.

以上説明した処理により、第四の処理形態の切換処理が実行される。この第四の処理形態の切換処理では、処理ステータスを確認した上で、ページ間中断要求を発行すべきか、即時中断要求を発行すべきかを判定し、その判定結果に応じた中断要求を発行する。切換後の処理形態では処理結果を引き継いで画像処理を実行させる制御を行っている。   By the process described above, the switching process of the fourth process form is executed. In the switching process of the fourth processing mode, after confirming the processing status, it is determined whether an inter-page interruption request should be issued or an immediate interruption request should be issued, and an interruption request according to the determination result is issued. . In the processing mode after switching, control is performed to execute the image processing by taking over the processing result.

図26(d)と図27(d)は、第四の処理形態の切換処理による画像処理の様子を表している。ともに、切替タイミングで第四の処理形態の切換処理が動作し、現在の処理形態はページ4の処理中の状態である。図26(d)の例では、切替タイミングでページ4は11/12まで完了した状態である。各下位処理の負荷が均等である場合には、下位処理は2つ以上完了した状態、下位処理3の完了領域は3750ライン(75%)まで完了した状態である。従って、実施形態で説明した各閾値で判定すると、図26(d)のように現在処理中のページ4の処理の完了を待ってから切り換える制御となる。これに対して図27(d)の例では、切替タイミングでページ4は1/3まで完了した状態である。各下位処理の負荷が均等である場合には、下位処理は1つ以上完了した状態である。従って、本実施形態で説明した各閾値で判定すると、図27(d)のように、即時に中断させて切り換える制御となる。   FIG. 26D and FIG. 27D show the state of image processing by the switching process of the fourth processing form. In both cases, the switching process of the fourth processing mode operates at the switching timing, and the current processing mode is a state in which page 4 is being processed. In the example of FIG. 26D, page 4 is in a state of being completed up to 11/12 at the switching timing. When the load of each lower process is equal, two or more lower processes are completed, and the completion area of the lower process 3 is completed to 3750 lines (75%). Therefore, when the determination is made with each threshold described in the embodiment, the control is performed after waiting for the completion of the processing of the currently processed page 4 as shown in FIG. On the other hand, in the example of FIG. 27D, the page 4 is in a state of being completed to 1/3 at the switching timing. When the load of each subordinate process is equal, one or more subordinate processes are completed. Therefore, if it determines with each threshold value demonstrated in this embodiment, as shown in FIG.27 (d), it will be control to interrupt and switch immediately.

このように、第四の処理形態の切換処理では、切替タイミングの処理ステータスに応じて、即座に中断して切り換えるか、現在処理中のページ処理の完了を待ってから中断してから切り換えるかのどちらの方法で行うかを制御できる。従って、いずれの切り換えタイミングでも、合計の処理時間を短くすることが可能となる。尚、第四の処理形態の切換処理では、処理ステータスに応じて、中断方法及び切り換え方法を使い分けたが、更に中断時や、切り換え時のオーバーヘッドが大きい場合は、これを考慮してもよい。オーバーヘッドの一例としては、中断時に要するソフトウエア処理時間、切り換え時に要するソフトウエア処理時間、FPGAの再構成に要する再構成時間等である。   As described above, in the switching processing of the fourth processing mode, whether to immediately stop and switch according to the processing status at the switching timing, or to wait for completion of the page processing currently being processed and then switch to You can control which method to use. Accordingly, the total processing time can be shortened at any switching timing. In the switching process of the fourth processing form, the interruption method and the switching method are properly used according to the processing status. However, this may be taken into consideration when the interruption or the overhead during the switching is large. Examples of the overhead include a software processing time required for interruption, a software processing time required for switching, a reconfiguration time required for FPGA reconfiguration, and the like.

以上説明したように実施形態によれば、要求された拡張処理を行うために、複数存在する処理形態の中から、その優先度と、処理形態に必要な処理部の空き状況を参照して処理形態を決定している。処理部の空き状況に変化があった場合には、現在実行中の拡張処理の処理形態を最適化する処理が働くので、より早く完了する処理形態に切り換えることが可能となる。また、実施形態では、プログラマブルデバイスとしてFPGAを用いて説明してきたが、これに限るものではない。   As described above, according to the embodiment, in order to perform the requested extension processing, processing is performed by referring to the priority and the availability of the processing unit necessary for the processing mode from among a plurality of processing modes. The form is determined. When there is a change in the availability of the processing unit, a process for optimizing the processing form of the currently executed extension process works, so that it is possible to switch to a processing form that is completed earlier. In the embodiment, the description has been made using the FPGA as the programmable device, but the present invention is not limited to this.

(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。   The present invention is not limited to the above-described embodiment, and various changes 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…メインコントローラ、102…操作部、103…スキャナ、104…プリンタ、105…拡張処理部、106…CPU、107…RAM、202…FPGA,204…CPU、302…機能部   DESCRIPTION OF SYMBOLS 100 ... Image forming apparatus, 101 ... Main controller, 102 ... Operation part, 103 ... Scanner, 104 ... Printer, 105 ... Expansion processing part, 106 ... CPU, 107 ... RAM, 202 ... FPGA, 204 ... CPU, 302 ... Function part

Claims (10)

それぞれが並行して処理できる複数の処理手段を有し、前記複数の処理手段の少なくとも一つがFPGA(Field Programmable Gate Array)を有する画像処理装置であって、
前記複数の処理手段の少なくとも一つを使用して実行する複数の処理形態から、所定の処理を実行するための処理形態を選択する選択手段と、
前記複数の処理手段の使用状況を管理する管理手段と、
処理の要求を受け付けると、前記要求された処理を実行するための処理形態を、前記管理手段が管理している前記複数の処理手段の使用状況と、前記選択手段により選択された処理形態とに基づいて決定する決定手段と、
前記決定手段により決定された処理形態で前記要求された処理を実行するように制御する制御手段と、
前記制御手段により前記要求された処理を実行している際、前記決定された処理形態で使用されていない前記複数の処理手段のいずれかが前記要求された処理を実行可能になったかどうかを、前記管理手段が管理している前記使用状況に基づいて判定する判定手段と、
前記判定手段の判定に従って、前記要求された処理を、前記要求された処理を実行可能になった処理手段を使用する処理形態で実行するように処理形態を切り替える切替手段と、を有し、
前記制御手段は、前記切替手段により処理形態の切り替えがなされると、前記実行するように切替えられた処理形態が、前記FPGAを使用する処理形態であれば前記FPGAを前記要求された処理に従って再構成することを特徴とする画像処理装置。
Each of the image processing apparatuses includes a plurality of processing units capable of processing in parallel, and at least one of the plurality of processing units includes an FPGA (Field Programmable Gate Array),
Selecting means for selecting a processing form for executing a predetermined process from a plurality of processing forms executed using at least one of the plurality of processing means;
Management means for managing the usage status of the plurality of processing means;
When a processing request is received, the processing mode for executing the requested processing is changed to the usage status of the plurality of processing units managed by the management unit and the processing mode selected by the selection unit. A determination means for determining based on;
Control means for controlling to execute the requested processing in the processing mode determined by the determining means;
When executing the requested processing by the control means, whether any of the plurality of processing means that are not used in the determined processing mode is capable of executing the requested processing, Determination means for determining based on the use status managed by the management means;
Switching means for switching the processing mode so as to execute the requested processing in a processing mode that uses the processing unit capable of executing the requested processing in accordance with the determination of the determination unit;
When the processing mode is switched by the switching unit, the control unit re-executes the FPGA according to the requested processing if the processing mode switched to the execution is a processing mode using the FPGA. An image processing apparatus comprising:
前記制御手段は更に、前記決定手段により決定された処理形態で前記要求された処理を実行する際、当該決定された処理形態が前記FPGAを使用する処理形態であれば前記FPGAを、前記要求された処理に従って再構成することを特徴とする請求項1に記載の画像処理装置。   The control means further executes the requested processing in the processing form determined by the determining means, and if the determined processing form is a processing form using the FPGA, the FPGA is requested. The image processing apparatus according to claim 1, wherein the image processing apparatus is reconfigured according to the processing. 前記選択手段は、前記所定の処理に対応つけて前記複数の処理形態を優先度とともに記憶しており、前記優先度に従って前記所定の処理を実行するための処理形態を選択することを特徴とする請求項1又は2に記載の画像処理装置。   The selection means stores the plurality of processing forms together with priorities in association with the predetermined processes, and selects a processing form for executing the predetermined processes according to the priorities. The image processing apparatus according to claim 1. 前記複数の処理形態は、前記複数の処理手段の一つ或いは複数を使用する処理形態であることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the plurality of processing forms are processing forms using one or more of the plurality of processing units. 前記要求された処理は、複数のページの画像処理を含み、前記制御手段は、前記切替手段により前記実行するように切替えられた処理形態で前記複数のページの画像処理を実行するように制御することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。   The requested processing includes image processing of a plurality of pages, and the control means controls to execute the image processing of the plurality of pages in the processing mode switched to the execution by the switching means. The image processing apparatus according to claim 1, wherein the image processing apparatus is an image processing apparatus. 前記要求された処理は複数のページの画像処理を含み、前記制御手段は、前記切替手段による切り替えがなされたときに処理中であったページの画像処理を中断し、前記切替手段により前記実行するように切替えられた処理形態で、前記複数のページの前記処理中であったページを含む残りのページの画像処理を実行するように制御することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。   The requested processing includes image processing of a plurality of pages, and the control unit interrupts image processing of a page being processed when switching by the switching unit is performed, and the execution is performed by the switching unit 6. The image processing of the remaining pages including the page that was being processed of the plurality of pages is executed in the processing mode switched as described above. The image processing apparatus according to item. 前記要求された処理は複数のページの画像処理を含み、前記制御手段は、前記切替手段による切り替えがなされたときに処理中であったページの画像処理が完了した後、前記切替手段により前記実行するように切替えられた処理形態で、前記複数のページの残りのページの画像処理を実行するように制御することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。   The requested processing includes image processing of a plurality of pages, and the control unit performs the execution by the switching unit after completing the image processing of the page being processed when switching by the switching unit is performed. 6. The image processing apparatus according to claim 1, wherein the image processing apparatus performs control so that image processing of the remaining pages of the plurality of pages is executed in the processing mode switched to be performed. 前記要求された処理は複数のページの画像処理を含み、前記制御手段は、前記切替手段による切り替えがなされたときに処理中であったページの画像処理の進捗状況に応じて、前記切替手段による切り替えがなされたときに処理中であったページの画像処理を中断し、前記切替手段により前記実行するように切替えられた処理形態で、前記複数のページの前記処理中であったページを含む残りのページの画像処理を実行するか、或いは前記切替手段による切り替えがなされたときに処理中であったページの画像処理が完了した後、前記切替手段により前記実行するように切替えられた処理形態で、前記複数のページの残りのページの画像処理を実行するように制御することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。   The requested process includes image processing of a plurality of pages, and the control unit performs the switching by the switching unit according to the progress of the image processing of the page being processed when the switching unit is switched. The image processing of the page that was being processed when switching was interrupted, and the remaining processing including the pages that were being processed of the plurality of pages in the processing mode switched to be executed by the switching unit In the processing mode in which the image processing of the page is executed, or after the image processing of the page being processed when the switching by the switching unit is completed, the switching unit switches to the execution. The image processing apparatus according to claim 1, wherein control is performed so as to perform image processing of the remaining pages of the plurality of pages. それぞれが並行して処理できる複数の処理手段を有し、前記複数の処理手段の少なくとも一つがFPGAを有する画像処理装置を制御する制御方法であって、
選択手段が、前記複数の処理手段の少なくとも一つを使用して実行する複数の処理形態から、所定の処理を実行するための処理形態を選択する選択工程と、
管理手段が、前記複数の処理手段の使用状況を管理する管理工程と、
決定手段が、処理の要求を受け付けると、前記要求された処理を実行するための処理形態を、前記管理工程が管理している前記複数の処理手段の使用状況と、前記選択工程で選択された処理形態とに基づいて決定する決定工程と、
制御手段が、前記決定工程で決定された処理形態で前記要求された処理を実行するように制御する制御工程と、
判定手段が、前記制御工程が前記要求された処理を実行している際、前記決定された処理形態で使用されていない前記複数の処理手段のいずれかが前記要求された処理を実行可能になったかどうかを、前記管理工程が管理している前記使用状況に基づいて判定する判定工程と、
切替手段が、前記判定工程の判定に従って、前記要求された処理を、前記要求された処理を実行可能になった処理手段を使用する処理形態で実行するように処理形態を切り替える切替工程と、を有し、
前記制御工程は、前記切替工程で処理形態の切り替えがなされると、前記実行するように切替えられた処理形態が、前記FPGAを使用する処理形態であれば前記FPGAを前記要求された処理に従って再構成することを特徴とする制御方法。
Each of the control methods includes a plurality of processing units capable of processing in parallel, and at least one of the plurality of processing units controls an image processing apparatus having an FPGA,
A selection step of selecting a processing mode for executing a predetermined process from a plurality of processing modes executed using at least one of the plurality of processing units;
A management step in which the management means manages the usage status of the plurality of processing means;
When the determination unit accepts the processing request, the processing mode for executing the requested processing is selected in the usage status of the plurality of processing units managed by the management step and the selection step. A determination step for determining based on the processing mode;
A control step for controlling the control means to execute the requested processing in the processing mode determined in the determination step;
When the determination unit is executing the requested process in the control step, any of the plurality of processing units that are not used in the determined processing mode can execute the requested process. A determination process for determining whether or not the management process is managing based on the usage status;
A switching step of switching the processing mode so that the switching unit executes the requested processing in a processing mode using the processing unit that can execute the requested processing according to the determination of the determination step. Have
In the control step, when the processing mode is switched in the switching step, if the processing mode switched to be executed is a processing mode using the FPGA, the FPGA is re-executed according to the requested processing. A control method characterized by comprising.
コンピュータを、請求項1乃至8のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。   The program for functioning a computer as each means of the image processing apparatus of any one of Claims 1 thru | or 8.
JP2015211109A 2015-10-27 2015-10-27 Image processing system and its control method, and program Pending JP2017085322A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015211109A JP2017085322A (en) 2015-10-27 2015-10-27 Image processing system and its control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015211109A JP2017085322A (en) 2015-10-27 2015-10-27 Image processing system and its control method, and program

Publications (1)

Publication Number Publication Date
JP2017085322A true JP2017085322A (en) 2017-05-18

Family

ID=58711325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015211109A Pending JP2017085322A (en) 2015-10-27 2015-10-27 Image processing system and its control method, and program

Country Status (1)

Country Link
JP (1) JP2017085322A (en)

Similar Documents

Publication Publication Date Title
JP6669961B2 (en) Processor, control method of reconfigurable circuit, and program
US20160036998A1 (en) Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method
JP2016063407A (en) Image forming device, parallel processing control method, and control program
JP2016103755A (en) Information processing apparatus, image processing apparatus including information processing apparatus, and control method and program of the same
US9509878B2 (en) Image processing apparatus and method for controlling the same, and storage medium
US10037591B2 (en) Information processing apparatus and method of controlling the same
JP6746326B2 (en) Printing device, printing method, and program for interpreting print data by a plurality of interpreting means
JP2017228010A (en) Storage control means, information processing apparatus including storage control means, storage control method, and program therefor
JP2017130071A (en) Image processing apparatus, memory control device, and memory control method
JP2017085322A (en) Image processing system and its control method, and program
JP5972094B2 (en) Information processing apparatus, information processing method, and program
JP2017129951A (en) Information processor, control method of information processor, and program
JP2012194947A (en) Image processing device and image processing method
JP2016042296A (en) Image processing apparatus, information processing method, and program
JP6996189B2 (en) Print controller, image forming system and image forming device
US10635157B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
JP2016189177A (en) Image processing apparatus, and control method and program for the same
JP2016206729A (en) Information processing apparatus and control method therefor, and program
JP2016057828A (en) Image processing device, control method of the same, and program
JP2016076867A (en) Information processor, control method for information processor, and program
JP6128104B2 (en) Image processing apparatus, control method thereof, and program
JP7243108B2 (en) Information processing device, control method and program
JP2016218591A (en) Information processing device, and control method and program of the same
JP2021100182A (en) Image forming apparatus and method for controlling image forming apparatus
JP5938971B2 (en) Printing apparatus and printing method