JP5205843B2 - Arithmetic processing device and arithmetic processing program - Google Patents

Arithmetic processing device and arithmetic processing program Download PDF

Info

Publication number
JP5205843B2
JP5205843B2 JP2007186849A JP2007186849A JP5205843B2 JP 5205843 B2 JP5205843 B2 JP 5205843B2 JP 2007186849 A JP2007186849 A JP 2007186849A JP 2007186849 A JP2007186849 A JP 2007186849A JP 5205843 B2 JP5205843 B2 JP 5205843B2
Authority
JP
Japan
Prior art keywords
logic
arithmetic
reference table
circuit
data
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.)
Expired - Fee Related
Application number
JP2007186849A
Other languages
Japanese (ja)
Other versions
JP2009027324A (en
Inventor
孝雄 内藤
和雄 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2007186849A priority Critical patent/JP5205843B2/en
Publication of JP2009027324A publication Critical patent/JP2009027324A/en
Application granted granted Critical
Publication of JP5205843B2 publication Critical patent/JP5205843B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、演算処理装置または演算処理プログラムに関する。   The present invention relates to an arithmetic processing device or an arithmetic processing program.

下記特許文献1には、ある演算処理をするにあたり、再構成可能回路の再構成中にはCPUがこの処理を実行し、再構成完了後にはCPUに代わって再構成可能回路が処理を継続する技術が開示されている。なお、CPUと再構成可能回路は、共有メモリを用いてデータを共有している。   In Patent Document 1 below, when performing certain arithmetic processing, the CPU executes this processing during the reconfiguration of the reconfigurable circuit, and the reconfigurable circuit continues processing on behalf of the CPU after the reconfiguration is completed. Technology is disclosed. Note that the CPU and the reconfigurable circuit share data using a shared memory.

下記特許文献2には、再構成可能回路の再構成に使用するメモリとは別に、再構成可能回路の演算で用いられる固定値を記憶するための固定値用メモリを備え、制御部によってこの固定値用メモリに固定値をセットすることにより、再構成に使用するメモリの記憶容量を減らす技術が開示されている。   The following Patent Document 2 includes a fixed value memory for storing a fixed value used in the operation of the reconfigurable circuit, in addition to the memory used for reconfiguring the reconfigurable circuit. A technique for reducing the storage capacity of a memory used for reconfiguration by setting a fixed value in a value memory is disclosed.

下記特許文献3には、演算間の実行順序の依存関係を表すデータフローグラフを生成し、データフローグラフの実行順序を決定する技術が開示されている。実行順序は、例えば、フィードバックされるデータを読み出すための待ち時間を短くするように決定される。   Patent Document 3 below discloses a technique for generating a data flow graph representing the dependency of execution order between operations and determining the execution order of the data flow graph. The execution order is determined so as to shorten the waiting time for reading the data to be fed back, for example.

特開2003−208305号公報JP 2003-208305 A 特開2006−018453号公報JP 2006-018453 A 特開2005−258593号公報JP 2005-258593 A

本発明の目的は、再構成可能回路に参照表を生成して演算を実行する処理の処理時間を、ソフトウエア的な処理により行う場合に比べて短縮させた演算処理装置、または、演算処理プログラムを提供することにある。   An object of the present invention is to provide an arithmetic processing device or an arithmetic processing program in which the processing time for generating a reference table in a reconfigurable circuit and executing an arithmetic operation is shortened compared to the case where the processing is performed by software processing. Is to provide.

本発明の演算処理装置の一態様においては、演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路と、前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段と、を備える。   In one aspect of the arithmetic processing device of the present invention, an arithmetic circuit capable of reconfiguring arithmetic logic specifications, and a reconfigurable circuit including a storage circuit capable of reconfiguring data connection logic specifications with the arithmetic circuit; The operation logic specification and the connection logic specification are reconfigured to generate a generation logic for generating a reference table on the storage circuit, and a reference operation logic for performing an operation referring to the reference table on the operation circuit. Setting means.

本発明の演算処理装置の一態様においては、前記生成論理に基づいて前記参照表を生成する生成手段と、前記参照演算論理に基づいて前記参照表を参照した演算を行う参照演算手段と、を備え、前記設定手段は、再構成前に前記生成手段により生成された少なくとも一つの前記参照表を再構成後まで保全するように再構成を行い、前記参照演算論理は、再構成後まで保全される少なくとも一つの前記参照表を参照して演算を行う論理であり、前記生成論理は、前記記憶回路に対し、再構成後まで保全されて参照される前記参照表とは異なる部分に新たな参照表を生成する論理であり、前記生成手段は、前記参照演算手段による演算と並列的に、新たな参照表を生成する。   In one aspect of the arithmetic processing device of the present invention, generating means for generating the reference table based on the generation logic, and reference arithmetic means for performing an operation referring to the reference table based on the reference arithmetic logic, And the setting means performs reconfiguration so as to maintain at least one of the reference tables generated by the generation means before reconfiguration until after reconfiguration, and the reference operation logic is maintained until after reconfiguration. Logic that performs an operation with reference to at least one of the reference tables, and the generation logic is a new reference to the storage circuit that is different from the reference table that is maintained and referenced until after the reconfiguration. This is a logic for generating a table, and the generation means generates a new reference table in parallel with the calculation by the reference calculation means.

本発明の演算処理装置の一態様においては、前記演算回路は、演算論理仕様を再構成可能な分散配置された複数の演算要素を用いて構築され、前記記憶回路は、前記演算要素とのデータの結線論理仕様を再構成可能な分散配置された複数の記憶要素を用いて構築され、前記生成論理は、再構成後まで保全される前記参照表とは異なる前記記憶要素に対し新たな参照表を生成する論理である。   In one aspect of the arithmetic processing apparatus of the present invention, the arithmetic circuit is constructed using a plurality of arithmetic elements arranged in a distributed manner capable of reconfiguring arithmetic logic specifications, and the storage circuit is data with the arithmetic element. The connection logic specification is constructed using a plurality of distributed storage elements that can be reconfigured, and the generation logic is a new reference table for the storage elements different from the reference table that is maintained until after the reconfiguration. Is the logic to generate

本発明の演算処理装置の一態様においては、前記生成論理は、一部の前記記憶要素に記憶されたデータに基づいて、別の前記記憶要素に新たな参照表を生成する論理である。   In one aspect of the arithmetic processing apparatus of the present invention, the generation logic is logic for generating a new reference table in another storage element based on data stored in some of the storage elements.

本発明の演算処理装置の一態様においては、再構成可能回路は、再構成可能回路の外部と相対的に高速な入出力を行う入出力線路を備え、前記参照演算論理は、前記入出力線路を占有して演算を行う論理である。   In one aspect of the arithmetic processing device of the present invention, the reconfigurable circuit includes an input / output line for performing high-speed input / output with the outside of the reconfigurable circuit, and the reference arithmetic logic is the input / output line. Is the logic to occupy and perform the operation.

本発明の演算処理装置の一態様においては、前記生成手段は、前記参照演算手段による演算の開始時または開始後に新たな参照表の生成を開始し、前記参照演算手段による演算の終了前または終了時に新たな参照表の生成を終了することにより、前記参照演算手段による演算と並列的に新たな参照表を生成する。   In one aspect of the arithmetic processing device of the present invention, the generation means starts generating a new reference table at the start or after the start of the calculation by the reference calculation means, and before or after the calculation by the reference calculation means is completed. Occasionally, the generation of a new reference table is terminated to generate a new reference table in parallel with the calculation by the reference calculation means.

本発明の演算処理装置の一態様においては、前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、前記参照表は、前記画像データの画素の自由度に応じた大きさ、または、前記画像データの画素数に応じた大きさをもつ。   In one aspect of the arithmetic processing apparatus of the present invention, the reference operation logic is logic for performing an operation referring to the reference table for input image data, and the reference table is a free pixel of the image data. It has a size according to the degree or a size according to the number of pixels of the image data.

本発明の演算処理プログラムの一態様においては、演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路を含むコンピュータを、前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段として機能させる。   In one aspect of the arithmetic processing program of the present invention, there is provided a reconfigurable circuit including an arithmetic circuit capable of reconfiguring arithmetic logic specifications, and a memory circuit capable of reconfiguring data connection logic specifications with the arithmetic circuits. A generating logic for reconstructing the operation logic specification and the connection logic specification and generating a reference table on the storage circuit, and a reference operation for performing an operation referring to the reference table on the operation circuit It functions as a setting means for setting logic.

請求項1に記載の発明によれば、ソフトウエア的な処理により参照表を作成する態様に比べて参照表が迅速に生成されるため、参照表を参照した演算の実行時間を短縮することができる演算処理装置が提供される。   According to the first aspect of the present invention, since the reference table is generated more quickly than a mode in which the reference table is created by software processing, it is possible to shorten the execution time of the operation referring to the reference table. An arithmetic processing device is provided.

請求項2に記載の発明によれば、参照表が再構成前に生成されるため、再構成後にこの参照表を参照した演算を速やかに実行することが可能となる。   According to the second aspect of the present invention, since the reference table is generated before reconfiguration, it is possible to quickly execute an operation referring to the reference table after reconfiguration.

請求項3に記載の発明によれば、演算要素及び記憶要素の活用率が高められ、この結果、全体の演算時間が短縮される。   According to the third aspect of the present invention, the utilization factor of the calculation element and the storage element is increased, and as a result, the entire calculation time is shortened.

請求項4に記載の発明によれば、再構成可能回路の外部との通信量を減らすことが可能となる。   According to the invention described in claim 4, it is possible to reduce the amount of communication with the outside of the reconfigurable circuit.

請求項5に記載の発明によれば、参照演算論理は入出力線路を接続論理と競合せずに使用できるため、入出力時間が短縮される。   According to the fifth aspect of the present invention, since the reference arithmetic logic can use the input / output line without competing with the connection logic, the input / output time is shortened.

請求項6に記載の発明によれば、演算の実行中に参照表が生成されるので、全体の演算時間を短縮することができる。   According to the invention described in claim 6, since the reference table is generated during the execution of the calculation, the entire calculation time can be shortened.

請求項7に記載の発明によれば、画像処理に必要となる比較的大きな参照表の作成効率が高められる。   According to the seventh aspect of the present invention, the efficiency of creating a relatively large reference table required for image processing can be increased.

請求項8に記載の発明によれば、ソフトウエア的な処理により参照表を作成する態様に比べて参照表が迅速に生成されるため、参照表を参照した演算の実行時間を短縮することができる演算処理プログラムが提供される。   According to the eighth aspect of the present invention, since the reference table is generated more quickly than a mode in which the reference table is created by software processing, it is possible to shorten the execution time of the operation referring to the reference table. An arithmetic processing program is provided.

[用語等の説明]
ここでは、特許請求の範囲、明細書、または図面において用いられる用語や概念等について説明する。
[Explanation of terms, etc.]
Here, terms and concepts used in the claims, the specification, or the drawings will be described.

再構成可能回路とは、リコンフィギュラブル回路とも呼ばれるものであり、主として演算処理を行う算術論理演算部(ALU)などの演算回路と、主としてデータの記憶を行うランダムアクセスメモリ(RAM)などの記憶回路とを含んでいる。再構成論理回路では、ハードウエア的に規定された論理仕様をソフトウエア的(プログラム的に)に変更することが可能である。特に、論理仕様を数クロック以内に切り換えることができる場合には、一連の処理の最中に、論理仕様を変更する動的再構成が可能となる。   A reconfigurable circuit is also called a reconfigurable circuit, which is an arithmetic circuit such as an arithmetic logic unit (ALU) that mainly performs arithmetic processing and a memory such as a random access memory (RAM) that mainly stores data. Circuit. In the reconfigurable logic circuit, it is possible to change the logic specification defined by hardware into software (programmatic). In particular, when the logical specification can be switched within several clocks, dynamic reconfiguration for changing the logical specification is possible during a series of processes.

切り換え対象となる論理仕様には、例えば、演算回路で行われる演算処理の態様を定めた演算論理仕様、再構成論理回路内の配線の態様を定めた結線論理仕様、再構成論理回路と外部装置との配線の態様を定めた入出力論理仕様などが含まれる。なお、記憶回路では、典型的には内部的な論理仕様が固定され、結線論理仕様あるいは入出力論理仕様などが再構成可能に構築されるが、例えば、内部的な論理仕様を再構成可能とされてもよい。   The logical specifications to be switched include, for example, an arithmetic logic specification that defines the mode of arithmetic processing performed in the arithmetic circuit, a wiring logic specification that defines the wiring mode in the reconfigurable logic circuit, a reconfigurable logic circuit, and an external device And input / output logic specifications that define the manner of wiring. In the memory circuit, the internal logic specifications are typically fixed and the connection logic specifications or the input / output logic specifications are reconfigurable. For example, the internal logic specifications can be reconfigured. May be.

再構成可能回路は、典型的には、分散配置(例えばチップ上に2次元アレイ状に配置)された複数の要素(エレメント)からなる。具体的には、演算回路を複数の演算要素によって構築したり、記憶回路を複数の記憶要素によって構築したりする例が挙げられる。再構成のためのプログラミングが、こうした演算要素や記憶要素を単位として行われることも多い。   A reconfigurable circuit typically includes a plurality of elements (elements) arranged in a distributed manner (for example, arranged in a two-dimensional array on a chip). Specifically, there are examples in which an arithmetic circuit is constructed by a plurality of arithmetic elements, and a memory circuit is constructed by a plurality of memory elements. In many cases, programming for reconstruction is performed in units of such arithmetic elements and storage elements.

設定手段は、演算要素に対し所定の生成論理及び参照演算論理を設定するように、再構成可能回路の論理仕様を再構成する手段である。ここで、生成論理は、記憶回路に参照表を生成する論理であり、参照演算論理は、記憶要素に生成された参照表を参照した演算を演算回路上で実行する論理である。生成論理や参照演算論理は、例えば、演算論理仕様、結線論理仕様、入出力論理仕様などを適当なものに変更することで設定される。   The setting means is means for reconfiguring the logic specification of the reconfigurable circuit so as to set predetermined generation logic and reference calculation logic for the calculation element. Here, the generation logic is logic for generating a reference table in the storage circuit, and the reference operation logic is logic for executing an operation referring to the reference table generated in the storage element on the operation circuit. The generation logic and the reference operation logic are set by changing, for example, the operation logic specification, the connection logic specification, the input / output logic specification, and the like.

参照表は、所望のデータを参照(読み出し)できるようにデータ構造が設定されたデータ群を指す。参照表には、しばしばハッシュやツリーなどの探索アルゴリズムが用いられる。参照表の典型例としては、ルックアップテーブル(LUT)を挙げることができる。   The reference table indicates a data group in which a data structure is set so that desired data can be referred (read). For lookup tables, search algorithms such as hashes and trees are often used. A typical example of the lookup table is a lookup table (LUT).

生成手段は、生成論理に基づいて、記憶回路にデータを入力して参照表を生成する手段である。入力されるデータは、外部の記憶装置に記憶されていたもの、あるいは、それから加工されたものであってもよいし、記憶回路の一部に記憶されていたもの、あるいは、それから加工されたものあってもよい。参照表には、参照される一連の演算を通じて値が固定された定数データが入力されてもよいし、演算の過程で値が書き換えられる変数データが入力されてもよい。   The generation means is means for generating a reference table by inputting data to the storage circuit based on the generation logic. The input data may have been stored in an external storage device or processed from it, stored in a part of the storage circuit, or processed from it There may be. In the reference table, constant data whose value is fixed through a series of operations to be referred to may be input, or variable data whose values are rewritten in the course of the operation may be input.

参照演算手段は、参照演算論理に基づいて、生成手段により生成された参照表を参照した演算を実行する手段である。この演算は、演算対象となるデータの入力、あるいは、演算結果のデータの出力をともなうものであってもよい。   The reference operation means is means for executing an operation referring to the reference table generated by the generation means based on the reference operation logic. This calculation may involve input of data to be calculated or output of calculation result data.

演算処理装置には、再構成可能回路と、設定手段が含まれる他、さらに、生成手段あるいは参照演算手段などが含まれてもよい。再構成可能回路、あるいは、各手段を構成するハードウエアは、一つのボード上あるいは一つの筐体内などに集中的に配置されていてもよいし、複数のボード上や複数の筐体内に互いに通信可能に分散配置されていてもよい。また、設定手段、生成手段、参照演算手段の一部または全部は、再構成可能回路を利用して構築されるものであってもよいし、再構成不可能な回路(典型的なCPUは再構成不可能である)を利用して構築されるものであってもよい。設定手段、生成手段、参照演算手段は、典型的には、このようなコンピュータハードウエアの動作を、コンピュータプログラムに基づいて制御することにより実現される。   The arithmetic processing unit may include a reconfigurable circuit and a setting unit, and may further include a generation unit or a reference arithmetic unit. The reconfigurable circuit or the hardware that constitutes each means may be centrally arranged on a single board or in a single case, or may communicate with each other on multiple boards or in multiple cases. It may be distributed in a possible manner. In addition, some or all of the setting unit, the generation unit, and the reference calculation unit may be constructed using a reconfigurable circuit, or a non-reconfigurable circuit (a typical CPU is reconfigured). It may be constructed using (not configurable). The setting means, the generation means, and the reference calculation means are typically realized by controlling the operation of such computer hardware based on a computer program.

なお、生成手段が参照表を生成するタイミングと、参照演算手段がこの参照表を参照して演算を行うタイミングは様々に設定可能である。一例としては、生成手段が参照表を生成したあとで、(再構成を行わずに)引き続いて、参照演算手段が演算を行う態様が挙げられる。また、別の例としては、生成手段が新たな参照表を生成するのと並列的に、参照演算手段が、再構成前に生成された参照表を参照して演算を行う態様が挙げられる。ここで、並列的とは、実行過程の少なくとも一部の処理と、生成過程の少なくとも一部の処理が、同時刻帯に行われることをいう。   Note that the timing at which the generation means generates the reference table and the timing at which the reference calculation means performs the calculation with reference to the reference table can be set variously. As an example, after the generation unit generates the reference table, a mode in which the reference calculation unit performs the calculation subsequently (without performing reconstruction) can be cited. As another example, in parallel with the generation unit generating a new reference table, the reference calculation unit performs an operation with reference to the reference table generated before reconstruction. Here, parallel means that at least a part of the execution process and at least a part of the generation process are performed at the same time zone.

[実施の形態]
以下に本発明の実施の形態を例示する。
[Embodiment]
Hereinafter, embodiments of the present invention will be exemplified.

図1は、本実施の形態にかかる画像処理装置10の構成例を示す概略図である。画像処理装置10は、演算処理装置の一種であり、図示した例においては単体の筐体をもつ装置として構成されている。画像処理装置10の内部には、内部通信路としての内部バス11が設けられている。そして、内部バス11には、CPU(中央処理装置)12、ROM(ReadOnlyMemory)14、RAM(RandomAccessMemory)16、HDD(HardDiscDrive)18、再構成可能システム20、UI(UserInterface)21、スキャナ22、プリンタ24、CDD(CompactDiscDrive)26、及びネットワークインタフェース28の各構成装置が接続されている。   FIG. 1 is a schematic diagram illustrating a configuration example of an image processing apparatus 10 according to the present embodiment. The image processing apparatus 10 is a kind of arithmetic processing apparatus, and is configured as an apparatus having a single casing in the illustrated example. Inside the image processing apparatus 10, an internal bus 11 is provided as an internal communication path. The internal bus 11 includes a CPU (Central Processing Unit) 12, a ROM (Read Only Memory) 14, a RAM (Random Access Memory) 16, an HDD (Hard Disc Drive) 18, a reconfigurable system 20, a UI (User Interface) 21, a scanner 22, and a printer. 24, a CDD (Compact Disc Drive) 26, and a network interface 28 are connected to each other.

CPU12は、ROM14などに格納されたプログラムに従って、画像処理装置10の各構成装置の制御や、画像処理等を行う装置である。ROM14は長期的な記憶が可能な半導体メモリ(記憶装置)であり、各種のプログラムや設定情報などを記憶する。RAM16は主として短期的な記憶に用いられる半導体メモリであり、処理対象となる画像データなどを記憶する。RAM16と再構成可能システム20との入出力を高速化するために、内部バス11を介さずに両者を直結したり、DDR(ダブルデータレート)方式を用いたりする場合もある。HDD18は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データの長期的な記憶などに用いられる。   The CPU 12 is a device that controls each component of the image processing apparatus 10 and performs image processing in accordance with a program stored in the ROM 14 or the like. The ROM 14 is a semiconductor memory (storage device) capable of long-term storage, and stores various programs and setting information. The RAM 16 is a semiconductor memory mainly used for short-term storage, and stores image data to be processed. In order to speed up the input / output between the RAM 16 and the reconfigurable system 20, there are cases in which both are directly connected without using the internal bus 11 or a DDR (double data rate) system is used. The HDD 18 is a large-capacity storage device configured using a magnetic disk or the like, and is used for long-term storage of image data.

再構成可能システム20は、コンフィグメモリ32とリコンフィギュラブルプロセッサ34とを含む装置であり、典型的には、同一のチップ上にこうした装置を設置されている。コンフィグメモリ32は、リコンフィギュラブルプロセッサ34の論理仕様を規定する論理仕様データが入力される記憶装置である。コンフィグメモリ32は、例えば、選択可能な複数の論理仕様データをスイッチで切り替えることで、採用する論理仕様データを数クロック(例えば1クロック)で選択できるように設定されている。   The reconfigurable system 20 is a device that includes a configuration memory 32 and a reconfigurable processor 34 and is typically installed on the same chip. The configuration memory 32 is a storage device to which logical specification data that defines the logical specification of the reconfigurable processor 34 is input. The configuration memory 32 is set such that, for example, a plurality of selectable logical specification data is switched by a switch, and the logical specification data to be adopted can be selected in several clocks (for example, one clock).

リコンフィギュラブルプロセッサ34は、再構成可能回路としての装置であり、アレイ状に配置された複数のプロセッサエレメント(PE)を備えている。プロセッサエレメントは、リコンフィギュラブルプロセッサ34を構成する小回路であり、例えば、演算要素としてのALUエレメント、あるいは、記憶要素としてのRAMエレメントなどからなる。このうち、ALUエレメントは、再構成された論理仕様に基づいて、データに対する演算処理を行う小回路であり、RAMエレメントは、データの入出力及び記憶が行われる小回路である。ALUエレメントの内部的な論理仕様である演算論理仕様や、他のALUエレメントやRAMエレメントとの接続を規定する結線論理仕様、外部装置との接続を規定する入出力論理仕様などは、コンフィグメモリ32に設定された論理仕様データに基づいて再構成される。なお、リコンフィギュラブルプロセッサ34には、外部装置との入出力を高速に行う専用入出力I/F(インタフェース)や、論理仕様が固定された(再構成不可能な)小演算回路などが設けられることも多い。再構成可能システム20は、論理仕様データの選択や再構成時期などを制御する制御部を自装置内に備えて自らの動作を制御するものであってもよいし、CPU12などの外部装置によって動作を制御されるものであってもよい。こうした制御部あるいはCPU12は、プログラムに従って、コンフィグメモリ34にコンフィグデータを入力してリコンフィギュラブルプロセッサ34に画像処理論理などのコンフィギュレーションを設定し、それを実行させる。コンフィグデータは、ROM14、RAM16、HDD18などに格納されている。   The reconfigurable processor 34 is a device as a reconfigurable circuit, and includes a plurality of processor elements (PE) arranged in an array. The processor element is a small circuit constituting the reconfigurable processor 34, and includes, for example, an ALU element as an arithmetic element or a RAM element as a storage element. Among these, the ALU element is a small circuit that performs arithmetic processing on data based on the reconfigured logic specifications, and the RAM element is a small circuit that performs input / output and storage of data. The configuration memory 32 includes an arithmetic logic specification that is an internal logic specification of the ALU element, a connection logic specification that specifies connection with other ALU elements and RAM elements, an input / output logic specification that specifies connection with an external device, and the like. Is reconfigured based on the logical specification data set in The reconfigurable processor 34 is provided with a dedicated input / output I / F (interface) that performs high-speed input / output with an external device, a small arithmetic circuit with a fixed logical specification (non-reconfigurable), and the like. It is often done. The reconfigurable system 20 may include a control unit that controls selection of logical specification data, reconfiguration time, and the like in its own device to control its own operation, or may be operated by an external device such as the CPU 12. May be controlled. Such a control unit or CPU 12 inputs configuration data to the configuration memory 34 in accordance with a program, sets a configuration such as image processing logic in the reconfigurable processor 34, and executes it. The configuration data is stored in the ROM 14, the RAM 16, the HDD 18, and the like.

UI21は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置10のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ22は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ24は、画像データに基づいて用紙に印刷を行う印刷装置である。CDD26は、記録媒体としてのCD(コンパクトディスク)に記録されたデータを読み取る装置であり、例えば、CPU12や再構成可能システム20を制御するためのプログラムがCDD26により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース28は、インターネットなどのネットワーク30に接続してデータを入出力するためのインタフェースであり、例えば、CPU12や再構成可能システム20を制御するためのプログラムがネットワーク30を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。   The UI 21 includes a display device such as a liquid crystal display and a light emitting diode, and an input device such as a touch panel and a keyboard, and displays data to the user of the image processing apparatus 10 and receives an operation command from the user. The scanner 22 is a reading device that reads an image on a sheet surface and generates image data. The printer 24 is a printing device that performs printing on paper based on image data. The CDD 26 is a device that reads data recorded on a CD (compact disc) as a recording medium. For example, when a program for controlling the CPU 12 or the reconfigurable system 20 is provided by the CDD 26, the CDD 26 reads this program. Used for. The network interface 28 is an interface for inputting / outputting data by connecting to a network 30 such as the Internet. For example, when a program for controlling the CPU 12 or the reconfigurable system 20 is provided through the network 30, Used to receive program data signals.

ここで、再構成可能システム20の構造について図2,3を参照して簡単に説明する。図2は、ALUエレメントついて説明する模式図である。この例では、コンフィグメモリ32には、コンフィグデータとしての設定データAと設定データBが記憶されており、また、このいずれかを選択するSEL(選択回路)40が設けられている。また、リコンフィギュラブルプロセッサ34には、ALUエレメントをなすALU42が設けられており、その演算論理仕様は、SEL40の選択に基づいて再構成されている。ALU42は、典型的には、入力データAと入力データBの2つのデータを入力し、演算論理仕様に従った演算処理を行って、出力データを出力する。もちろん、設定によっては、RAMエレメントを参照した演算処理など、様々なタイプの演算処理を行うことが可能である。   Here, the structure of the reconfigurable system 20 will be briefly described with reference to FIGS. FIG. 2 is a schematic diagram for explaining the ALU element. In this example, the configuration memory 32 stores setting data A and setting data B as configuration data, and a SEL (selection circuit) 40 for selecting one of these is provided. Further, the reconfigurable processor 34 is provided with an ALU 42 that constitutes an ALU element, and its arithmetic logic specification is reconfigured based on the selection of the SEL 40. Typically, the ALU 42 inputs two data of input data A and input data B, performs arithmetic processing according to arithmetic logic specifications, and outputs output data. Of course, depending on the setting, various types of arithmetic processing such as arithmetic processing with reference to the RAM element can be performed.

図3は、リコンフィギュラブルプロセッサ34に設けられたRAMエレメントとしてのRAM44について説明する模式図である。このRAM44に対しては、データの読み出しまたは書き込みを制御するR/W(Read/Write)制御信号と、読み出しまたは書き込み位置を制御するADR(アドレス)信号が入力され、この信号に基づいてデータの入出力が行われる。このRAM44に対しては、内部の論理仕様を再構成する仕組みは設けられない。しかし、一般的には、R/W制御信号、ADR信号、データなどの入出力先を定める結線論理仕様あるいは入出力論理仕様を再構成したり、ALUエレメントの再構成時にRAM44が記憶するデータを一斉に消去したりすることは可能である。   FIG. 3 is a schematic diagram for explaining a RAM 44 as a RAM element provided in the reconfigurable processor 34. The RAM 44 receives an R / W (Read / Write) control signal for controlling reading or writing of data and an ADR (address) signal for controlling a reading or writing position. I / O is performed. A mechanism for reconfiguring internal logic specifications is not provided for the RAM 44. However, in general, the wiring logic specification or input / output logic specification that determines the input / output destination of the R / W control signal, ADR signal, data, etc. is reconfigured, or the data stored in the RAM 44 when the ALU element is reconfigured. It is possible to erase all at once.

[第1の形態]
次に、図4と図5を参照して第1の形態について説明する。ここでは、図1〜図3に示したハードウエア構成を前提として説明を行う。
[First embodiment]
Next, a 1st form is demonstrated with reference to FIG. 4 and FIG. Here, the description will be made on the assumption of the hardware configuration shown in FIGS.

図4は、リコンフィギュラブルプロセッサ34に設定される論理の例を説明する図である。画像処理装置10では、リコンフィギュラブルプロセッサ34は、色変換処理、輝度変換処理、圧縮・伸張処理、フィルタ処理などの画像処理に用いられる。この画像処理では、色変換用LUTや輝度変換用LUTなどの画像処理用LUTを用いて高速な処理が行われる。   FIG. 4 is a diagram for explaining an example of logic set in the reconfigurable processor 34. In the image processing apparatus 10, the reconfigurable processor 34 is used for image processing such as color conversion processing, luminance conversion processing, compression / expansion processing, and filter processing. In this image processing, high-speed processing is performed using an image processing LUT such as a color conversion LUT or a luminance conversion LUT.

図4の例では、RAM16に記憶されたLUTデータ50の一部または全部が、リコンフィギュラブルプロセッサ34に送信され、LUTが生成される論理を示している。具体的には、リコンフィギュラブルプロセッサ34には、DDR(ダブルデータレート)インタフェース52と、2つのRAMエレメントであるRAM53,54が含まれている。また、複数配置されているALUエレメントの論理仕様を変更することにより、アドレスカウンタ生成部58と書き込み許可(WriteEnable)信号生成部60が構築されている。   In the example of FIG. 4, a part or all of the LUT data 50 stored in the RAM 16 is transmitted to the reconfigurable processor 34 to indicate a logic for generating the LUT. Specifically, the reconfigurable processor 34 includes a DDR (double data rate) interface 52 and RAMs 53 and 54 that are two RAM elements. Further, the address counter generator 58 and the write enable signal generator 60 are constructed by changing the logical specifications of a plurality of ALU elements.

DDRインタフェース52は、DDR方式を利用した入出力線路である入出力信号線62と接続されており、入出力信号線62を介してRAM16からLUTデータ50を入力する。そして、DDRインタフェース52に入力されるLUTデータ50は、データ信号線64を通じてRAM53,54に送られるとともに、アドレスカウンタ生成部58と書き込み許可信号生成部60に送られる。アドレスカウンタ生成部58は、入力通知線65からデータの入力通知がある度に値を増分させて、RAM53,54に対するアドレスデータ信号を生成する。また、アドレスカウンタ生成部58は、生成されたアドレス信号をアドレス信号線66を通じてRAM53とRAM54に送信する。さらに、書き込み許可信号生成部60は、DDRインタフェース52に入力されたデータを、RAM53とRAM54のいずれに書き込むかを制御するR/W信号を生成する。そして、RAM53に対するR/W信号はWE(WriteEnable)1信号線68を通じて送信が行われ、RAM54に対するR/W信号はWE2信号線70を通じて送信が行われる。   The DDR interface 52 is connected to an input / output signal line 62 that is an input / output line using the DDR system, and inputs the LUT data 50 from the RAM 16 via the input / output signal line 62. The LUT data 50 input to the DDR interface 52 is sent to the RAMs 53 and 54 through the data signal line 64 and also sent to the address counter generator 58 and the write permission signal generator 60. The address counter generator 58 increments the value every time there is a data input notification from the input notification line 65 to generate an address data signal for the RAMs 53 and 54. The address counter generator 58 transmits the generated address signal to the RAM 53 and the RAM 54 through the address signal line 66. Further, the write permission signal generation unit 60 generates an R / W signal that controls whether the data input to the DDR interface 52 is written to the RAM 53 or the RAM 54. The R / W signal for the RAM 53 is transmitted through a WE (Write Enable) 1 signal line 68, and the R / W signal for the RAM 54 is transmitted through a WE 2 signal line 70.

続いて、リコンフィギュラブルプロセッサ34における動作について説明する。制御部は、再構成により図4に示した論理を設定すると、LUTデータ50からLUTの作成に必要なデータを順次出力させる。出力されたデータは入出力信号線62を通じてDDRインタフェース52に入力され、さらにデータ信号線64を通じてRAM53,54に入力される。このとき、アドレスカウンタ生成部58は、各データの格納位置を示すアドレス信号を生成し、アドレス信号線66を通じてRAM53,54に出力する。また、書き込み許可信号生成部60は、設定にしたがい、読み込まれるLUTデータ50をRAM53,54のいずれに入力するかを決定し、決定結果に基づくR/W信号をWE1信号線68及びWE2信号線70を通じてRAM53,54に送信する。典型的には、RAM53に書き込みが行われる場合、RAM54に対する書き込みは禁止され、RAM54に書き込みが行われる場合、RAM53に対する書き込みは禁止される。そして、RAM53,54には、それぞれ、入力されたLUTデータ50に対応するLUTが生成される。   Next, the operation in the reconfigurable processor 34 will be described. When the control unit sets the logic shown in FIG. 4 by reconfiguration, the control unit sequentially outputs data necessary for creating the LUT from the LUT data 50. The output data is input to the DDR interface 52 through the input / output signal line 62 and further input to the RAMs 53 and 54 through the data signal line 64. At this time, the address counter generation unit 58 generates an address signal indicating the storage position of each data, and outputs it to the RAMs 53 and 54 through the address signal line 66. Further, according to the setting, the write permission signal generation unit 60 determines which of the RAMs 53 and 54 to input the read LUT data 50, and outputs the R / W signal based on the determination result to the WE1 signal line 68 and the WE2 signal line. 70 to the RAM 53, 54. Typically, when writing to the RAM 53, writing to the RAM 54 is prohibited, and when writing to the RAM 54 is performed, writing to the RAM 53 is prohibited. Then, LUTs corresponding to the input LUT data 50 are generated in the RAMs 53 and 54, respectively.

リコンフィギュラブルプロセッサ34では、RAM53,54にLUTが生成されると、このLUTを参照した画像処理を実行する。画像処理を行う論理は、図4に示した設定を行う際に同時に設定されてもよいし、LUTを生成後にLUTを破壊することなく再構成を行うことで設定されてもよい。また、処理対象となる画像データは、LUTデータ50の入力に使われた入出力信号線62を通じて入出力されてもよいし、別の線路を通じて入出力されてもよい。   When the LUT is generated in the RAMs 53 and 54, the reconfigurable processor 34 executes image processing with reference to the LUT. The logic for performing image processing may be set at the same time when the setting shown in FIG. 4 is performed, or may be set by performing reconfiguration without destroying the LUT after generating the LUT. Further, the image data to be processed may be input / output through the input / output signal line 62 used for inputting the LUT data 50, or may be input / output through another line.

図5は、処理時間について説明する模式図である。ここでは、2つのLUTを生成するLUT−1aとLUT−1bの処理、生成されたLUTを参照した画像処理1、新たに2つのLUTを生成するLUT−2aとLUT−2bの処理、及び、新たに生成されたLUTを参照した画像処理2が順次行われている。図5(a)は、LUTデータ50をソフトウエア的に生成する場合を示しており、図5(b)は、LUTデータ50をハードウエア的に(つまり、図4に示した態様で)生成する場合を示している。図5(a)では、1データあたり1μs程度(256データのLUTでは256μs)を要してソフトウエア的にLUTの生成が行われた後に、ハードウエア的に画像処理が行われていることを想定している。したがって、例えば、一連の処理において256データのLUTを100回生成する場合の所要時間は25.6msとなる。これに対し、図5(b)の例では、1データあたり1ns程度(256データのLUTでは256ns)を要してハードウエア的にLUTの生成が行われ、引き続いてハードウエア的に画像処理が行われていることを想定している。したがって、256データのLUTを100回生成する場合の所要時間は25.6μsとなる。このように、ソフトウエア的なLUTの生成時間と、ハードウエア的なLUTの生成時間の差に起因して、図5(a)と図5(b)では、全体の処理に要する時間が大きく異なっている。なお、ここでは、リコンフィギュラブルプロセッサ34の再構成に要する時間を特に考慮しなかったが、数クロック(数ns)で再構成を行う場合には、図5の例に与える影響は小さいと考えられる。   FIG. 5 is a schematic diagram for explaining the processing time. Here, processing of LUT-1a and LUT-1b that generate two LUTs, image processing 1 that refers to the generated LUT, processing of LUT-2a and LUT-2b that newly generate two LUTs, and Image processing 2 with reference to the newly generated LUT is sequentially performed. FIG. 5A shows a case where the LUT data 50 is generated by software, and FIG. 5B shows the case where the LUT data 50 is generated by hardware (that is, in the mode shown in FIG. 4). Shows when to do. In FIG. 5A, about 1 μs per data (256 μs for a 256-data LUT) is required, and after the LUT is generated by software, image processing is performed by hardware. Assumed. Therefore, for example, the time required to generate an LUT of 256 data 100 times in a series of processing is 25.6 ms. On the other hand, in the example of FIG. 5B, about 1 ns per data (256 ns for a 256-data LUT) is required, and the LUT is generated by hardware. Subsequently, image processing is performed by hardware. It is assumed that it is done. Therefore, the time required for generating 256 LUTs 100 times is 25.6 μs. As described above, due to the difference between the software LUT generation time and the hardware LUT generation time, the time required for the entire processing is large in FIGS. 5A and 5B. Is different. Here, the time required for the reconfiguration of the reconfigurable processor 34 is not particularly considered, but if the reconfiguration is performed with several clocks (several ns), the influence on the example of FIG. 5 is considered to be small. It is done.

[第2の形態]
次に、図6〜図9を用いて、第2の形態について説明する。第2の形態は、第1の形態と同様に、図1〜図3に示したハードウエア構成を前提とするものである。
[Second form]
Next, a 2nd form is demonstrated using FIGS. 6-9. Similar to the first embodiment, the second embodiment is based on the hardware configuration shown in FIGS.

図6は図4に対応する図であり、図4に対応する要素には同一の番号を付して説明を簡略化する。図6には、図4と同様にRAM16とリコンフィギュラブルプロセッサ34が図示されている。ただし、RAM16には、LUTデータ50に加えて、画像データ80が記憶されており、RAM16からDDRインタフェース52に対しては、DDR方式を利用した2つの入出力信号線82,84が接続されている。リコンフィギュラブルプロセッサ34に対しては、図4の例と同様に、RAM53,54が設けられ、さらに、データ信号線64、入力通知線65、アドレスカウンタ生成部58、書き込み許可信号生成部60、アドレス信号線66、WE1信号線68、及びWE2信号線70が設定されている。さらに、リコンフィギュラブルプロセッサ34には、RAM92が設けられており、再構成前からLUT100が生成されている他、ALUエレメントの再構成により、画像前処理部90と画像後処理部94が生成されている。そして、RAM92に対しては、画像前処理部90からアドレス信号線96と、データ信号線98が接続されており、画像前処理部90の画像処理結果に基づいて、LUT100のデータが参照されている。画像後処理部94は、LUT100のデータを参照した結果に基づいて、さらに画像処理を行うものである。   FIG. 6 is a diagram corresponding to FIG. 4, and the elements corresponding to FIG. 6 shows the RAM 16 and the reconfigurable processor 34 as in FIG. However, the RAM 16 stores image data 80 in addition to the LUT data 50, and two input / output signal lines 82 and 84 using the DDR system are connected from the RAM 16 to the DDR interface 52. Yes. The reconfigurable processor 34 is provided with RAMs 53 and 54 as in the example of FIG. 4, and further includes a data signal line 64, an input notification line 65, an address counter generator 58, a write permission signal generator 60, An address signal line 66, a WE1 signal line 68, and a WE2 signal line 70 are set. Further, the reconfigurable processor 34 is provided with a RAM 92. The LUT 100 is generated before the reconfiguration, and the image preprocessing unit 90 and the image postprocessing unit 94 are generated by reconfiguring the ALU element. ing. The RAM 92 is connected with an address signal line 96 and a data signal line 98 from the image preprocessing unit 90, and the data of the LUT 100 is referred to based on the image processing result of the image preprocessing unit 90. Yes. The image post-processing unit 94 further performs image processing based on the result of referring to the data of the LUT 100.

続いて、図6に示した論理の実行過程について説明する。まず、再構成前にあっては、LUTデータ50をRAM92に入力する論理が設定されており、この論理の実行によりRAM92にはLUT100が生成される。そして、このLUT100のデータを壊さないようにして再構成が行われ、図6に示した論理が設定される。再構成後には、LUTデータ50は、入出力信号線84を通じてDDRインタフェース52に入力され、図4に示した例と同様にして、RAM53,54にLUTを生成する。また、LUTの生成と並列的に、RAM16からは、入力信号線82を通じて、画像データ80がDDRインタフェース52に入力される。そして、画像前処理部90は、この画像データ80に対して前処理を行い、その結果を元にLUT100内の参照先(アドレス)を決定する。そして、画像後処理部94は、LUT100の参照結果に基づいて後処理を行い、処理結果を、RAM16などに出力する。この前処理及び後処理を通じて、入力された画像データ80に対し、LUTデータ100を参照した画像処理が行われる。   Next, the logic execution process shown in FIG. 6 will be described. First, before reconfiguration, the logic for inputting the LUT data 50 to the RAM 92 is set, and the LUT 100 is generated in the RAM 92 by executing this logic. Then, reconfiguration is performed without destroying the data of the LUT 100, and the logic shown in FIG. 6 is set. After reconfiguration, the LUT data 50 is input to the DDR interface 52 through the input / output signal line 84, and LUTs are generated in the RAMs 53 and 54 in the same manner as the example shown in FIG. In parallel with the generation of the LUT, the image data 80 is input from the RAM 16 to the DDR interface 52 through the input signal line 82. The image preprocessing unit 90 performs preprocessing on the image data 80, and determines a reference destination (address) in the LUT 100 based on the result. Then, the image post-processing unit 94 performs post-processing based on the reference result of the LUT 100, and outputs the processing result to the RAM 16 or the like. Through this pre-processing and post-processing, image processing with reference to the LUT data 100 is performed on the input image data 80.

なお、次の再構成は、RAM53,54に生成されたLUTを破壊しないよう行われる。そして、再構成によって、このLUTを参照した画像処理を行う論理と、それ以降の画像処理で使用される新たなLUTを生成する論理が設定される。   The next reconfiguration is performed so as not to destroy the LUT generated in the RAMs 53 and 54. Then, by reconfiguration, logic for performing image processing with reference to this LUT and logic for generating a new LUT used in subsequent image processing are set.

ここで、図7〜図9を用いて、順次再構成が行われる例を説明する。図7は、リコンフィギュラブルプロセッサ34に対し、次々と論理の設定を行い、対応する処理を実行する例を示す図である。図7(a)の例では、リコンフィギュラブルプロセッサ34には、ALUエレメントを利用した処理1A部110、及び処理1B部114と、RAM112に記憶されたLUT118が設けられている。また、処理1A部110による画像処理結果に基づいてLUT118を参照できるように、アドレス信号線122とデータ信号線124が設定されている。ここで、LUT118は、再構成前に生成され、再構成後まで保全された(破壊されなかった)ものであり、処理1A部110、処理1B部114、アドレス信号線122、データ信号線124等は、新たに論理設定されたものである。さらに、リコンフィギュラブルプロセッサ34では、RAM130に対し、アドレス信号線132とデータ信号線134が配線され、LUT136を生成する論理が設定されている。図7(a)に示した論理が設定された場合、リコンフィギュラブルプロセッサ34では、処理1A部110と処理1B部114によるLUT118を参照した画像処理と、RAM130に対するLUT136の生成処理とが並列的に行われる。   Here, an example in which reconstruction is performed sequentially will be described with reference to FIGS. FIG. 7 is a diagram illustrating an example in which logic is sequentially set for the reconfigurable processor 34 and corresponding processing is executed. In the example of FIG. 7A, the reconfigurable processor 34 is provided with a processing 1A unit 110 and a processing 1B unit 114 using an ALU element, and an LUT 118 stored in the RAM 112. Further, the address signal line 122 and the data signal line 124 are set so that the LUT 118 can be referred to based on the image processing result by the processing 1A unit 110. Here, the LUT 118 is generated before the reconfiguration and maintained (not destroyed) until after the reconfiguration, and the processing 1A unit 110, the processing 1B unit 114, the address signal line 122, the data signal line 124, and the like. Are newly set logically. Further, in the reconfigurable processor 34, the address signal line 132 and the data signal line 134 are wired to the RAM 130, and the logic for generating the LUT 136 is set. When the logic shown in FIG. 7A is set, in the reconfigurable processor 34, the image processing referring to the LUT 118 by the processing 1A unit 110 and the processing 1B unit 114 and the generation processing of the LUT 136 for the RAM 130 are performed in parallel. To be done.

図7(b)は、図7(a)に示した論理に基づく処理が実行された後で、再構成により設定される論理を示している。ここでは、RAM112に対して、アドレス信号線138とデータ信号線140を配線し、これにより、新たなLUT142を生成する論理が設定されている。また、RAM130には、再構成前に生成されたLUT136が保全されている。また、ALUエレメントを利用して、処理2A部144と処理2B部146が設定されており、さらに、処理2A部144の処理結果に基づいてLUT136を参照できるようにアドレス信号線152とデータ信号線154が配線されている。図7(b)に示した論理が設定されると、RAM112に新しいLUT142を生成する処理と、処理2A部144と処理2B部146がLUT136を参照して行う画像処理とが、並列的に実行される。   FIG. 7B shows the logic set by reconfiguration after the process based on the logic shown in FIG. 7A is executed. Here, the logic for setting the address signal line 138 and the data signal line 140 to the RAM 112 and generating a new LUT 142 is set. In addition, the LUT 136 generated before reconfiguration is maintained in the RAM 130. Further, the processing 2A unit 144 and the processing 2B unit 146 are set using the ALU element, and the address signal line 152 and the data signal line are set so that the LUT 136 can be referred to based on the processing result of the processing 2A unit 144. 154 is wired. When the logic shown in FIG. 7B is set, processing for generating a new LUT 142 in the RAM 112 and image processing performed by the processing 2A unit 144 and the processing 2B unit 146 with reference to the LUT 136 are executed in parallel. Is done.

続いて、図8と図9を用いて、図6や図7で説明したような構成の下で、具体的に画像処理を行う態様について説明する。   Next, with reference to FIGS. 8 and 9, a mode in which image processing is specifically performed under the configuration described in FIGS. 6 and 7 will be described.

図8は、画像処理の対象となる画像データ160を模式的に示した図である。ここでは、この画像データ160は、画素を2次元的に配置したデータであり、横方向に伸びる4000画素からなるラインが、縦方向に2000ライン並べられたものであるとする。そして、リコンフィギュラブルプロセッサ34におけるRAMエレメントの個数や容量の制約などにより、画像データ160を一度に処理することができないものとする。そこで、画像データ160を、100ラインを1バンドとして、20ラインに分割して画像処理を行う。   FIG. 8 is a diagram schematically showing image data 160 to be subjected to image processing. Here, it is assumed that the image data 160 is data in which pixels are two-dimensionally arranged, and 2000 lines of 4000 pixels extending in the horizontal direction are arranged in the vertical direction. It is assumed that the image data 160 cannot be processed at a time due to restrictions on the number and capacity of RAM elements in the reconfigurable processor 34. Therefore, image processing is performed by dividing the image data 160 into 20 lines with 100 lines as one band.

図9は、画像データ160に対する画像処理の全体の制御を示すフローチャートである。画像処理が開始される場合、まず、バンド数を表す制御変数nが0に設定される(S10)。このnはバンドが変わる毎に1づつ増分され(S12)、20を超えると(S14)処理を終了する。他方、nが20以下である場合には、各バンドに対して、画像処理1〜5(S18,S22,S26,S30,S34)が順次実行される。アルゴリズム的に見れば、画像処理1〜5は、リコンフィギュラブルプロセッサ34上でパイプライン処理されるべきものである。しかし、ALUエレメントの性能やRAMエレメントの個数や容量が十分でないために、ここでは、画像処理1〜5を順次リコンフィギュラブルプロセッサ34上に再構成するものとしている。具体的には、画像処理1の結果出力されるデータに対して画像処理2が行われ、画像処理2の結果出力されるデータに対して画像処理3が行われるというように、先行する画像処理の出力結果が後続する画像処理において入力される。そして、各画像処理1〜5の実行に先だっては、その画像処理を行う論理を設定するための再構成1〜5(S16,S20,S24,S28,S32)が行われる。これらの再構成及び画像処理の繰り返し過程では、図7を用いて説明したように、先行する画像処理の実行中に、後続する画像処理で利用されるLUTが生成され、再構成にあたってはこのLUTが保全される。例えば、画像処理5の実行(S34)と並列的に、画像処理1で用いるLUTが生成され、このLUTが破壊されないように再構成1(S16)が行われる。   FIG. 9 is a flowchart showing overall control of image processing for the image data 160. When image processing is started, first, a control variable n representing the number of bands is set to 0 (S10). This n is incremented by 1 every time the band changes (S12), and when it exceeds 20 (S14), the process is terminated. On the other hand, when n is 20 or less, image processing 1 to 5 (S18, S22, S26, S30, S34) is sequentially executed for each band. From an algorithm point of view, the image processing 1 to 5 should be pipelined on the reconfigurable processor 34. However, since the performance of the ALU elements and the number and capacity of the RAM elements are not sufficient, the image processes 1 to 5 are sequentially reconfigured on the reconfigurable processor 34 here. Specifically, image processing 2 is performed on data output as a result of image processing 1, and image processing 3 is performed on data output as a result of image processing 2. Are output in the subsequent image processing. Prior to the execution of the image processes 1 to 5, reconstructions 1 to 5 (S16, S20, S24, S28, and S32) for setting logic for performing the image process are performed. In the repetition process of the reconstruction and the image processing, as described with reference to FIG. 7, an LUT used in the subsequent image processing is generated during the execution of the preceding image processing. Is preserved. For example, in parallel with execution of image processing 5 (S34), an LUT used in image processing 1 is generated, and reconstruction 1 (S16) is performed so that the LUT is not destroyed.

なお、新しいLUTは、通常は、再構成後に使用されないRAMエレメントを利用して生成される。そして、このRAMエレメントに過去に使用したLUTが記憶されている場合には、このLUTを保全することなく新たなLUTが生成される。しかし、RAMエレメントの個数や容量に余裕がある場合には、複数回あとの再構成後に再利用されるLUTを、その時まで保全するようにしてもよい。   Note that a new LUT is usually generated using RAM elements that are not used after reconfiguration. When a previously used LUT is stored in this RAM element, a new LUT is generated without maintaining this LUT. However, if there is a surplus in the number and capacity of RAM elements, the LUT that is reused after multiple reconfigurations may be maintained until that time.

図10は、図9に示した処理の処理時間について説明する模式図である。ここでは、図5に示した例と同様に、2つのLUTを生成するLUT−1a,LUT−1bの処理、生成されたLUTを参照した画像処理1、新たに2つのLUTを生成するLUT−2a,LUT−2bの処理、新たに生成されたLUTを参照した画像処理2が順次行われることを想定している。図10(a)は、図5(b)に対応する図であり、LUTの生成と画像処理とが非並列的に実行される態様を示している。これに対し、図10(b)では、図9を用いて説明したように、LUTの生成と画像処理とが並列的に実行される。具体的には、画像処理1の実行と並列して、画像処理2で用いるLUTを生成するLUT−2a,LUT−2bの処理が行われ、画像処理2の実行と並列して、画像処理3で用いるLUTを生成するLUT−3a,LUT−3bの処理が行われている。この結果、図10(b)の例では図10(a)の例に比べてLUTの生成に要する時間の分だけ、全体の所要時間が短縮されることになる。   FIG. 10 is a schematic diagram for explaining the processing time of the processing shown in FIG. Here, as in the example shown in FIG. 5, the processing of LUT-1a and LUT-1b that generate two LUTs, the image processing 1 that refers to the generated LUT, and the LUT- that generates two new LUTs It is assumed that the processing 2a and LUT-2b and the image processing 2 referring to the newly generated LUT are sequentially performed. FIG. 10A is a diagram corresponding to FIG. 5B, and illustrates an aspect in which LUT generation and image processing are performed in a non-parallel manner. On the other hand, in FIG. 10B, as described with reference to FIG. 9, LUT generation and image processing are executed in parallel. Specifically, the LUT-2a and LUT-2b for generating the LUT used in the image processing 2 are performed in parallel with the execution of the image processing 1, and the image processing 3 is performed in parallel with the execution of the image processing 2. Processing of LUT-3a and LUT-3b for generating the LUT used in FIG. As a result, in the example of FIG. 10B, the total required time is shortened by the time required to generate the LUT, compared to the example of FIG.

[第3の形態]
最後に、図11を用いて、第3の形態について説明する。第3の形態は、第1の形態及び第2の形態と同様に、図1〜図3に示したハードウエア構成を前提とするものである。
[Third embodiment]
Finally, the third embodiment will be described with reference to FIG. The third mode is based on the hardware configuration shown in FIGS. 1 to 3 as in the first mode and the second mode.

図11は図6に対応する図であり、図6に対応する要素には同一の番号を付して説明を簡略化する。図11ではRAM16に画像データ80が格納されている。そして、RAM16からDDRインタフェース52には、DDR方式を利用した複数の入出力信号線170,172,174,176が接続されている。DDRインタフェース52に入力された画像データに対して、画像前処理部90と画像後処理部94がLUT100を参照した画像処理を行う点は、図6の例と同様である。また、リコンフィギュラブルプロセッサ34に、RAM53,54が設けられており、アドレスカウンタ生成部58と書き込み許可信号生成部60を利用したLUTの生成が行われる点も、図6の例と同様である。しかし、図11の例では、ALUエレメントを利用してリードアドレスカウンタ180が生成され、また、RAM182に共有LUTデータ184が格納されている点で、図6の例とは異なる。すなわち、図11の例では、リードアドレスカウンタ180が出力するアドレス信号にしたがって、RAM182の共有LUTデータ184からデータが読み出され、RAM53,54に出力される。   FIG. 11 is a diagram corresponding to FIG. 6, and the elements corresponding to FIG. In FIG. 11, image data 80 is stored in the RAM 16. A plurality of input / output signal lines 170, 172, 174, and 176 using the DDR method are connected from the RAM 16 to the DDR interface 52. The image pre-processing unit 90 and the image post-processing unit 94 perform image processing with reference to the LUT 100 on the image data input to the DDR interface 52, as in the example of FIG. Further, the reconfigurable processor 34 is provided with RAMs 53 and 54, and the LUT is generated using the address counter generator 58 and the write permission signal generator 60 as in the example of FIG. . However, the example of FIG. 11 is different from the example of FIG. 6 in that the read address counter 180 is generated using the ALU element and the shared LUT data 184 is stored in the RAM 182. That is, in the example of FIG. 11, data is read from the shared LUT data 184 of the RAM 182 according to the address signal output from the read address counter 180 and output to the RAMs 53 and 54.

共有LUTデータ184は、再構成によっても値が破壊されないように設定される。そして、RAM92にLUT100を生成する場合や、他のRAM190,192,194にLUTを生成する場合にも使用される。RAM182は、共有LUTデータ184を格納できるだけの容量を持たない場合には、複数のRAMに共有LUTデータ184を格納してもよい。   The shared LUT data 184 is set so that the value is not destroyed even by reconfiguration. It is also used when the LUT 100 is generated in the RAM 92 or when the LUT is generated in the other RAM 190, 192, 194. If the RAM 182 does not have enough capacity to store the shared LUT data 184, the RAM 182 may store the shared LUT data 184 in a plurality of RAMs.

本実施の形態にかかる画像処理装置のハードウエア構成例を示す図である。It is a figure which shows the hardware structural example of the image processing apparatus concerning this Embodiment. ALUエレメントの構成例を説明する図である。It is a figure explaining the structural example of an ALU element. RAMエレメントの構成例を説明する図である。It is a figure explaining the structural example of a RAM element. 設定する論理の例を説明する図である。It is a figure explaining the example of the logic to set. 処理時間について模式的に説明する図である。It is a figure explaining processing time typically. 設定する論理の変形例を説明する図である。It is a figure explaining the modification of the logic to set. 論理仕様を再構成する例について説明する図である。It is a figure explaining the example which reconfigure | reconstructs a logical specification. 処理対象となる画像データを模式的に示した図である。It is the figure which showed typically the image data used as a process target. 画像処理の全体的な制御の例を示すフローチャートである。6 is a flowchart illustrating an example of overall control of image processing. 処理時間について模式的に説明する図である。It is a figure explaining processing time typically. 設定する論理の別の変形例を説明する図である。It is a figure explaining another modification of the logic to set.

符号の説明Explanation of symbols

10 画像処理装置、11 内部バス、12 CPU、14 ROM、16,44,53,54,92 RAM、18 HDD、20 再構成可能システム、22 スキャナ、24 プリンタ、28 ネットワークインタフェース、30 ネットワーク、32 コンフィグメモリ、34 リコンフィギュラブルプロセッサ、40 SEL、42 ALU、50 LUTデータ、52 DDRインタフェース、58 アドレスカウンタ生成部、60 書き込み許可信号生成部、80 画像データ、90 画像前処理部、94 画像後処理部、100 LUT。   10 image processing apparatus, 11 internal bus, 12 CPU, 14 ROM, 16, 44, 53, 54, 92 RAM, 18 HDD, 20 reconfigurable system, 22 scanner, 24 printer, 28 network interface, 30 network, 32 config Memory, 34 Reconfigurable processor, 40 SEL, 42 ALU, 50 LUT data, 52 DDR interface, 58 Address counter generator, 60 Write permission signal generator, 80 image data, 90 image preprocessor, 94 Image postprocessor , 100 LUT.

Claims (7)

演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路と、
前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段と、
を備え
前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、
前記参照表は、前記画像データの画素数に応じた大きさをもつことを特徴とする演算処理装置。
An arithmetic circuit capable of reconfiguring arithmetic logic specifications, and a reconfigurable circuit comprising a storage circuit capable of reconfiguring data connection logic specifications with the arithmetic circuit;
The operation logic specification and the connection logic specification are reconfigured, and a generation logic for generating a reference table on the storage circuit and a reference operation logic for performing an operation referring to the reference table on the operation circuit are set. Setting means;
Equipped with a,
The reference operation logic is a logic for performing an operation referring to the reference table for input image data,
The arithmetic processing apparatus , wherein the reference table has a size corresponding to the number of pixels of the image data .
請求項1に記載の演算処理装置において、
前記生成論理に基づいて前記参照表を生成する生成手段と、
前記参照演算論理に基づいて前記参照表を参照した演算を行う参照演算手段と、
を備え、
前記設定手段は、再構成前に前記生成手段により生成された少なくとも一つの前記参照表を再構成後まで保全するように再構成を行い、
前記参照演算論理は、再構成後まで保全される少なくとも一つの前記参照表を参照して演算を行う論理であり、
前記生成論理は、前記記憶回路に対し、再構成後まで保全されて参照される前記参照表とは異なる部分に新たな参照表を生成する論理であり、
前記生成手段は、前記参照演算手段による演算と並列的に、新たな参照表を生成する、ことを特徴とする演算処理装置。
The arithmetic processing device according to claim 1,
Generating means for generating the lookup table based on the generation logic;
Reference operation means for performing an operation referring to the reference table based on the reference operation logic;
With
The setting means performs reconfiguration so as to maintain at least one of the reference tables generated by the generation means before reconfiguration until after reconfiguration,
The reference operation logic is logic that performs an operation with reference to at least one of the reference tables maintained until after reconfiguration,
The generation logic is a logic for generating a new reference table in a part different from the reference table that is maintained and referenced until after the reconfiguration for the storage circuit,
The calculation processing device is characterized in that the generation means generates a new reference table in parallel with the calculation by the reference calculation means.
請求項2に記載の演算処理装置において、
前記演算回路は、演算論理仕様を再構成可能な分散配置された複数の演算要素を用いて構築され、
前記記憶回路は、前記演算要素とのデータの結線論理仕様を再構成可能な分散配置された複数の記憶要素を用いて構築され、
前記生成論理は、再構成後まで保全される前記参照表とは異なる前記記憶要素に対し新たな参照表を生成する論理であることを特徴とする演算処理装置。
In the arithmetic processing unit according to claim 2,
The arithmetic circuit is constructed using a plurality of distributed arithmetic elements that can reconfigure the arithmetic logic specification,
The storage circuit is constructed using a plurality of distributed storage elements capable of reconfiguring data connection logic specifications with the arithmetic elements,
The arithmetic processing apparatus, wherein the generation logic is a logic for generating a new reference table for the storage element different from the reference table maintained until after reconfiguration.
請求項3に記載の演算処理装置において、
前記生成論理は、一部の前記記憶要素に記憶されたデータに基づいて、別の前記記憶要素に新たな参照表を生成する論理である、ことを特徴とする演算処理装置。
In the arithmetic processing unit according to claim 3,
The arithmetic processing apparatus, wherein the generation logic is logic for generating a new reference table in another storage element based on data stored in a part of the storage elements.
請求項4に記載の演算処理装置において、
再構成可能回路は、再構成可能回路の外部と相対的に高速な入出力を行う入出力線路を備え、
前記参照演算論理は、前記入出力線路を占有して演算を行う論理である、ことを特徴とする演算処理装置。
In the arithmetic processing unit according to claim 4,
The reconfigurable circuit has an input / output line for performing high-speed input / output relative to the outside of the reconfigurable circuit,
The arithmetic processing device according to claim 1, wherein the reference arithmetic logic is a logic for performing an operation while occupying the input / output line.
請求項2に記載の演算処理装置において、
前記生成手段は、前記参照演算手段による演算の開始時または開始後に新たな参照表の生成を開始し、前記参照演算手段による演算の終了前または終了時に新たな参照表の生成を終了することにより、前記参照演算手段による演算と並列的に新たな参照表を生成する、ことを特徴とする演算処理装置。
In the arithmetic processing unit according to claim 2,
The generation means starts generating a new reference table at or after the start of calculation by the reference calculation means, and ends generation of a new reference table before or at the end of the calculation by the reference calculation means. A new reference table is generated in parallel with the calculation by the reference calculation means.
演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路を含むコンピュータを、
前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段として機能させる演算処理プログラムであり、
前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、
前記参照表は、前記画像データの画素数に応じた大きさをもつことを特徴とする演算処理プログラム。
A computer including a reconfigurable circuit having an arithmetic circuit capable of reconfiguring arithmetic logic specifications, and a storage circuit capable of reconfiguring data connection logic specifications with the arithmetic circuit,
The operation logic specification and the connection logic specification are reconfigured, and a generation logic for generating a reference table on the storage circuit and a reference operation logic for performing an operation referring to the reference table on the operation circuit are set. an arithmetic processing program Ru to function as a setting unit,
The reference operation logic is a logic for performing an operation referring to the reference table for input image data,
The arithmetic processing program, wherein the reference table has a size corresponding to the number of pixels of the image data.
JP2007186849A 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program Expired - Fee Related JP5205843B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007186849A JP5205843B2 (en) 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007186849A JP5205843B2 (en) 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program

Publications (2)

Publication Number Publication Date
JP2009027324A JP2009027324A (en) 2009-02-05
JP5205843B2 true JP5205843B2 (en) 2013-06-05

Family

ID=40398741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007186849A Expired - Fee Related JP5205843B2 (en) 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program

Country Status (1)

Country Link
JP (1) JP5205843B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012032967A (en) * 2010-07-29 2012-02-16 Tsutomu Inamoto Calculation device and calculation method using binary vector and polynomial

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4700611B2 (en) * 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Data processing apparatus and data processing method
JP2006287675A (en) * 2005-04-01 2006-10-19 Renesas Technology Corp Semiconductor integrated circuit
JP4664724B2 (en) * 2005-04-18 2011-04-06 三菱電機株式会社 Semiconductor integrated circuit device and semiconductor integrated circuit device design apparatus

Also Published As

Publication number Publication date
JP2009027324A (en) 2009-02-05

Similar Documents

Publication Publication Date Title
WO2018077295A1 (en) Data processing method and apparatus for convolutional neural network
JP5943736B2 (en) Information processing apparatus, information processing apparatus control method, and program
JP4640989B2 (en) Image processing apparatus and image processing control method
JP2006268377A (en) Program start-up controller and program start-up control method
JP5277615B2 (en) Data processing apparatus and data processing program
US20100228958A1 (en) Information processing apparatus, method for controlling information processing apparatus and computer readable medium
JP5776306B2 (en) Image data processing apparatus and program
JP5205843B2 (en) Arithmetic processing device and arithmetic processing program
US7417915B2 (en) Multiport memory device
JP4952116B2 (en) Arithmetic processing system, control program
JP2009025955A (en) Data processor and data processing program
US10725789B2 (en) Data generation device for parallel processing
JP6160317B2 (en) Image processing apparatus and program
JP2014154935A (en) Reconfigurable device and image forming apparatus having the same
JP6919072B2 (en) Image processing device
JP5034738B2 (en) Data processing apparatus and data processing program
KR102290229B1 (en) Data generating device for parallel processing
US20220066666A1 (en) Information processing apparatus and non-transitory computer readable medium
JP2008066875A (en) Data processing unit
JP2008129851A (en) Processing unit
JP6330397B2 (en) Image processing apparatus, image forming apparatus, image processing method, and program
JP6379757B2 (en) Image processing apparatus and image forming apparatus
CN115525586A (en) DDR (double data Rate) expansion device, control method, device and medium
JP4646853B2 (en) Control information supply device
JP2007189367A (en) Image processor and image processing control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121015

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5205843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees