JP2009025953A - Arithmetic processing unit and arithmetic processing program - Google Patents

Arithmetic processing unit and arithmetic processing program Download PDF

Info

Publication number
JP2009025953A
JP2009025953A JP2007186848A JP2007186848A JP2009025953A JP 2009025953 A JP2009025953 A JP 2009025953A JP 2007186848 A JP2007186848 A JP 2007186848A JP 2007186848 A JP2007186848 A JP 2007186848A JP 2009025953 A JP2009025953 A JP 2009025953A
Authority
JP
Japan
Prior art keywords
processing
task
operations
arithmetic processing
small
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.)
Granted
Application number
JP2007186848A
Other languages
Japanese (ja)
Other versions
JP5023856B2 (en
Inventor
Junichi Okuyama
潤一 奥山
Mitsuyuki Tamaya
光之 玉谷
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2007186848A priority Critical patent/JP5023856B2/en
Publication of JP2009025953A publication Critical patent/JP2009025953A/en
Application granted granted Critical
Publication of JP5023856B2 publication Critical patent/JP5023856B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an arithmetic processing unit for shortening a whole processing time required for a plurality of processings. <P>SOLUTION: A plurality of floor plan layouts in which areas to be used by a reconfigurable circuit are different are stored for every process belonging to each task. Then, the process is set until the number of use areas exceeds the number of all division areas in the order of the performance object process of a high priority task (S54 to S66). Then, the floor plan layout in which the use areas are not overlapped is selected with respect to the set process (S68 to S74), and the reconfigurable circuit is reconfigured with corresponding configuration data. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

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

ソフトウエア的な制御を行って、ハードウエア的な論理仕様を再構成することができる演算処理装置が普及しつつある。   Arithmetic processing devices capable of performing software-like control and reconfiguring hardware-like logic specifications are becoming widespread.

下記特許文献1には、生成すべき一つの回路を分割してできる複数の分割回路を、再構成可能な回路に順次構成する技術が開示されている他、再構成可能な回路中の演算器(ALU)に定数を入力する技術も記載されている。   The following Patent Document 1 discloses a technique for sequentially configuring a plurality of divided circuits formed by dividing one circuit to be generated into a reconfigurable circuit, and an arithmetic unit in the reconfigurable circuit. A technique for inputting a constant in (ALU) is also described.

下記特許文献2には、実行させる演算間の依存関係に基づいて、回路の再構成を行う技術が開示されている。   Patent Document 2 below discloses a technique for reconfiguring a circuit based on a dependency relationship between operations to be executed.

下記特許文献3には、外部からの割込信号をトリガーとして回路の再構成を行うことにより、優先度の高い処理を先に実行し、その後に中断した処理を再開する技術が開示されている。   Patent Document 3 listed below discloses a technique for reconfiguring a circuit using an external interrupt signal as a trigger to first execute a process with high priority and then resume the interrupted process. .

下記特許文献4には、パイプライン構造を有する再構成可能な複数のプロセッサ要素に対し、1クロックで構成の切り替えを行い、パイプライン構造に流されるデータに対応した演算処理を実行することにより、時分割処理を実現する技術が開示されている。   In the following Patent Document 4, by switching the configuration in one clock for a plurality of reconfigurable processor elements having a pipeline structure, and executing the arithmetic processing corresponding to the data that flows to the pipeline structure, A technique for realizing time division processing is disclosed.

下記特許文献5には、再構成可能な回路内の各演算器の近くに、処理中のデータを保持することにより、回路の動作周波数を向上させる技術が開示されている。   Patent Document 5 below discloses a technique for improving the operating frequency of a circuit by holding data being processed near each arithmetic unit in the reconfigurable circuit.

特開2005−277673号公報JP 2005-277673 A 特開2004−334429号公報JP 2004-334429 A 特開2005−165961号公報Japanese Patent Laid-Open No. 2005-165961 特開2006−018539号公報JP 2006-018539 A 特開2005−044329号公報JP 2005-044329 A

上記特許文献1の技術のように各演算処理を順次実行する場合、単純には、各演算処理に要する時間を足しあわせただけの演算時間を必要とする。この事情は、上記特許文献2の技術のように演算順序を変更する場合も同様である。さらに、上記特許文献3の技術のように、優先順位に基づいて割り込み処理を行う場合には、優先順位の高い処理は早く終了するが、全体の処理が終了するまでには、各演算処理を順次実行するときと同程度の時間を要することになる。また、上記特許文献4で採用された時分割処理は、全体の演算時間を短くするものではなく、しかも、再構成の回数が増加するためオーバーヘッドの問題も無視できなくなる虞がある。上記特許文献5の技術も、このような時間短縮に関する課題を解決するものではない。   In the case of sequentially executing each arithmetic processing as in the technique of the above-mentioned Patent Document 1, simply the arithmetic time required for adding the time required for each arithmetic processing is required. This situation is the same when the calculation order is changed as in the technique of Patent Document 2 described above. Further, as in the technique of Patent Document 3 described above, when interrupt processing is performed based on the priority order, the processing with high priority order ends early, but each arithmetic processing is performed before the entire processing ends. It takes about the same time as the sequential execution. In addition, the time division processing adopted in Patent Document 4 does not shorten the entire calculation time, and the number of reconfigurations increases, so there is a possibility that the overhead problem cannot be ignored. The technique of Patent Document 5 also does not solve such a problem related to time reduction.

本発明は、こうした事情を鑑みてなされたものであり、その目的は、複数の処理に要する全体の処理時間を短縮可能な演算処理装置または演算処理プログラムを提供することにある。   The present invention has been made in view of such circumstances, and an object of the present invention is to provide an arithmetic processing apparatus or an arithmetic processing program capable of reducing the overall processing time required for a plurality of processes.

本発明の演算処理装置の一態様においては、複数の小回路を有し、一部又は全部の前記小回路における論理仕様を再構成可能な再構成可能回路と、一又は二以上の演算を一部の前記小回路で処理する部分論理仕様を、前記一又は二以上の演算毎に記憶する記憶手段と、互いに独立して処理可能な複数の演算に対する処理要求を取得する取得手段と、処理要求された二以上の演算を並列処理する論理仕様を、前記小回路が重複しない前記部分論理仕様の組み合わせに基づいて決定する決定手段と、前記再構成可能回路に対し、前記決定手段により決定された前記論理仕様を動的に再構成する再構成手段と、を備える。   In one aspect of the arithmetic processing apparatus of the present invention, a reconfigurable circuit having a plurality of small circuits and capable of reconfiguring logic specifications in a part or all of the small circuits, and one or two or more operations are combined. Storage means for storing the partial logic specifications processed by the small circuit of each unit for each of the one or more operations, an acquisition means for acquiring processing requests for a plurality of operations that can be processed independently of each other, and processing requests A determination unit that determines a logical specification for parallel processing of the two or more operations performed based on a combination of the partial logical specifications that do not overlap the small circuit, and the determination unit determines the logical specification for the reconfigurable circuit Reconfiguring means for dynamically reconfiguring the logical specification.

本発明の演算処理装置の一態様においては、前記記憶手段は、少なくとも一部の前記一又は二以上の演算について、演算を処理する小回路が異なる複数の部分論理仕様を記憶し、前記決定手段は、演算を処理する小回路が異なる複数の部分論理仕様の中から、小回路を重複させずに組み合わせ可能な部分論理仕様を選択して、前記論理仕様を決定する。   In one aspect of the arithmetic processing apparatus of the present invention, the storage means stores a plurality of partial logic specifications for which at least a part of the one or more operations are different in a small circuit for processing the operation, and the determination means Selects a partial logical specification that can be combined without overlapping small circuits from a plurality of partial logical specifications with different small circuits for processing operations, and determines the logical specifications.

本発明の演算処理装置の一態様においては、少なくとも一つの前記小回路を含むように前記再構成可能回路を区画した複数の小区画が設定され、前記決定手段は、演算の処理に用いられる小区画の重複情報に基づいて、前記小回路が重複しない前記部分論理仕様の組み合わせを判定する。   In one aspect of the arithmetic processing device of the present invention, a plurality of subdivisions that divide the reconfigurable circuit so as to include at least one of the subcircuits are set, and the determining means is a subsection used for arithmetic processing. Based on the overlap information of the sections, a combination of the partial logic specifications that do not overlap the small circuits is determined.

本発明の演算処理装置の一態様においては、前記小回路の一部は、他の小回路とは物理的構造が異なり、前記決定手段は、前記小回路の物理的構造の相違にも基づいて、前記部分論理仕様の組み合わせを定める。   In one aspect of the arithmetic processing unit of the present invention, a part of the small circuit has a physical structure different from other small circuits, and the determining means is based on a difference in physical structure of the small circuit. The combination of the partial logic specifications is determined.

本発明の演算処理装置の一態様においては、前記取得手段は、処理要求された演算についての処理の優先順位情報も取得し、前記決定手段は、前記優先順位情報にも基づいて、前記論理仕様を決定する。   In one aspect of the arithmetic processing apparatus of the present invention, the acquisition means also acquires processing priority information for the requested processing, and the determination means determines the logical specification based on the priority information. To decide.

本発明の演算処理装置の一態様においては、複数決定手段は、処理要求された複数の演算に対する全体の処理時間にも基づいて、前記論理仕様を決定する。   In one aspect of the arithmetic processing apparatus of the present invention, the plurality of determining means determines the logical specification based also on the total processing time for the plurality of operations requested to be processed.

本発明の演算処理プログラムの一態様においては、複数の小回路を有し、一部又は全部の前記小回路における論理仕様を再構成可能な再構成可能回路を備えるコンピュータを、一又は二以上の演算を一部の前記小回路で処理する部分論理仕様を、前記一又は二以上の演算毎に記憶する記憶手段と、互いに独立して処理可能な複数の演算に対する処理要求を取得する取得手段と、処理要求された二以上の演算を並列処理する論理仕様を、前記小回路が重複しない前記部分論理仕様の組み合わせに基づいて決定する決定手段と、前記再構成可能回路に対し、前記決定手段により決定された前記論理仕様を動的に再構成する再構成手段と、して機能させる。   In one aspect of the arithmetic processing program of the present invention, one or two or more computers having a plurality of small circuits and including a reconfigurable circuit capable of reconfiguring logic specifications in a part or all of the small circuits are provided. Storage means for storing partial logic specifications for processing operations in some of the small circuits for each of the one or more operations, and acquisition means for acquiring processing requests for a plurality of operations that can be processed independently of each other A determination means for determining a logical specification for parallel processing of two or more requested processing operations based on a combination of the partial logic specifications in which the small circuits do not overlap; and for the reconfigurable circuit, the determination means It functions as a reconfiguration means for dynamically reconfiguring the determined logical specification.

請求項1の本発明によれば、再構成可能回路の使用効率を向上させ、一連の演算処理を全体として高速化する演算処理装置が提供される。   According to the first aspect of the present invention, there is provided an arithmetic processing device that improves the use efficiency of the reconfigurable circuit and speeds up a series of arithmetic processing as a whole.

請求項2の本発明によれば、並列処理可能な部分論理仕様の組み合わせが増え、再構成可能回路の使用効率が向上する。   According to the present invention of claim 2, the number of combinations of partial logic specifications that can be processed in parallel is increased, and the use efficiency of the reconfigurable circuit is improved.

請求項3の本発明によれば、小回路の重複判定を迅速に行うことが可能となる。   According to the third aspect of the present invention, it is possible to quickly determine whether a small circuit is duplicated.

請求項4の本発明によれば、再構成可能回路の物理的構造に基づく性能を引き出し、処理の高速化、大容量化、または(使用する回路部分の)小規模化の少なくとも一つが可能となる。   According to the present invention of claim 4, performance based on the physical structure of the reconfigurable circuit is extracted, and at least one of speeding up of processing, capacity increase, or downsizing (a circuit portion to be used) is possible. Become.

請求項5の本発明によれば、優先順位情報に基づいて、並列処理の組み合わせを動的に決定できる。   According to the present invention of claim 5, a combination of parallel processing can be dynamically determined based on the priority order information.

請求項6の本発明によれば、全体の処理時間を短縮する並列処理の組み合わせが選ばれる。   According to the sixth aspect of the present invention, a combination of parallel processing that shortens the overall processing time is selected.

請求項7の本発明によれば、再構成可能回路の使用効率を向上させ、一連の演算処理を全体として高速化する演算処理プログラムが提供される。   According to the present invention of claim 7, there is provided an arithmetic processing program that improves the use efficiency of the reconfigurable circuit and speeds up a series of arithmetic processing as a whole.

[用語等の説明]
ここでは、特許請求の範囲あるいは明細書で用いている用語や概念などを簡単に説明する。
[Explanation of terms, etc.]
Here, terms and concepts used in the claims or the specification will be briefly described.

再構成可能回路とは、リコンフィギュラブル回路とも呼ばれるものであり、ハードウエア的な動作を規定する論理仕様をソフトウエア的(プログラム的に)に変更可能な回路を指す。この再構成可能回路は、複数の小回路を備える。各小回路の例としては、算術論理演算部(ALU)、ランダムアクセスメモリ(RAM)、あるいは、これらの組み合わせなどを挙げることができる。複数ある小回路は、同じ物理的構造をもっていてもよいし、互いに異なる物理的構造をもっていてもよい。例えば、一部の小回路に対してのみ、ある種の演算に適した(あるいは適さない)入出力端子、メモリ、演算回路など設ける(あるいは設けない)ようにしてもよい。再構成可能回路では、小回路の内部論理、あるいは、各小回路間や外部との接続論理などを切り換えることで、そのハードウエア的な構造がソフトウエア的に変更(再構成)される。なお、再構成可能回路の再構成は、全部の小回路に対して行われることが一般的であるが、一部の小回路に対して行われてもよく、このような回路は部分的再構成が可能な回路と呼ばれることがある。   The reconfigurable circuit is also referred to as a reconfigurable circuit, and refers to a circuit that can change a logical specification that defines a hardware-like operation into software (programmatically). The reconfigurable circuit includes a plurality of small circuits. Examples of each small circuit include an arithmetic logic unit (ALU), a random access memory (RAM), or a combination thereof. The plurality of small circuits may have the same physical structure or different physical structures. For example, an input / output terminal, a memory, an arithmetic circuit, or the like suitable (or unsuitable) for certain types of operations may be provided (or not provided) only for some of the small circuits. In the reconfigurable circuit, the hardware structure is changed (reconfigured) in software by switching the internal logic of the small circuit or the connection logic between each small circuit and the outside. In general, the reconfiguration of the reconfigurable circuit is performed for all the small circuits, but may be performed for some of the small circuits. Such a circuit may be partially reconfigured. Sometimes called a configurable circuit.

記憶手段は、一又は二以上の演算毎に部分論理仕様を記憶する。部分論理仕様とは、再構成可能回路の全小回路ではなく一部の小回路を使用して、一又は二以上の演算処理を行う論理仕様を指す。記憶手段は、一又は二以上の演算毎に、一つだけ部分論理仕様を記憶してもよいし、使用する小回路の少なくも一部が異なる複数の部分論理仕様を記憶してもよい。   The storage means stores the partial logic specification for each of one or more operations. The partial logical specification refers to a logical specification that performs one or two or more arithmetic processes by using a part of small circuits instead of all the small circuits of the reconfigurable circuit. The storage means may store only one partial logical specification for each one or two or more operations, or may store a plurality of partial logical specifications in which at least some of the small circuits to be used are different.

取得手段は、複数の演算に対する処理要求を、外部からあるいは再構成可能回路から取得する。ここで演算とは、演算処理装置上で管理される単位の処理、例えばタスク、ジョブ、プロセスなどを指すものであり、別の処理と連結して一連の処理をなすものであってもよいし、その中に演算処理装置上で管理される複数の小さな処理単位を含むものであってもよい。処理要求される複数の演算には、互いに独立して処理可能なもの、すなわち、一方の処理結果が他方の処理に用いられるといった従属関係になく処理順が限定されないものが含まれる。なお、互いに独立して処理可能な演算は、典型的には、処理種別が互いに異なるもの(例えば、画像データと色変換処理と、画像データの圧縮処理)であるが、処理種別が互いに同じものであってもよい。例えば、独立した二以上のデータのそれぞれに対し、同じ種類の演算(例えば色変換処理)をする態様が挙げられる。   The acquisition unit acquires processing requests for a plurality of operations from the outside or from a reconfigurable circuit. Here, the calculation refers to a unit process managed on the arithmetic processing unit, for example, a task, a job, a process, etc., and may be a series of processes linked to another process. In this case, a plurality of small processing units managed on the arithmetic processing unit may be included. The plurality of computations required for processing include those that can be processed independently of each other, that is, those that are not dependent on each other and are not limited in processing order, such that one processing result is used for the other processing. Note that operations that can be processed independently of each other typically have different processing types (for example, image data, color conversion processing, and image data compression processing), but the processing types are the same. It may be. For example, the aspect which performs the same kind of calculation (for example, color conversion process) with respect to each of two or more independent data is mentioned.

決定手段は、仕様する小回路が重複しない前記部分論理仕様を組み合わせることにより、各部分論理仕様に対応した演算を並列処理(個々の演算をタスクと呼ぶならば、実質的なマルチタスクが実現されると言える)するための論理仕様を決定する。決定手段は、各演算に対して一つの部分論理仕様のみが記憶されている場合には、これらが重複しない組み合わせに基づいて、論理仕様を決定する。また、少なくとも一部の演算に対して二以上の部分論理仕様が記憶されている場合には、いずれの部分論理仕様を採用するか選択したうえで論理仕様を決定するようにしてもよい。決定手段は、例えば、部分論理仕様の組み合わせの可否を予め算出して記憶しておき、算出結果に基づいて論理仕様を決定してもよいし、その都度組み合わせを算出して論理仕様を決定してもよい。また、処理要求された複数の演算に対する処理が一回の再構成で行えない場合に、次の再構成で採用する論理仕様を決定したり、その再構成のタイミングを決定したりするなど、長期的なスケジューリングを行うようにしてもよい。決定手段は、処理要求された演算の処理の優先順位情報に基づいて、すなわち、演算処理の優先度を二段階以上のカテゴリで表した情報に基づいて、論理仕様を決定してもよい。   The decision means combines the partial logic specifications that do not overlap the small circuits to be specified, thereby processing the operations corresponding to each partial logic specification in parallel (if each operation is called a task, substantial multitasking is realized. To determine the logical specifications for When only one partial logical specification is stored for each operation, the determining means determines the logical specification based on a combination that does not overlap them. In addition, when two or more partial logical specifications are stored for at least some of the operations, the logical specification may be determined after selecting which partial logical specification is to be adopted. For example, the determination unit may calculate and store in advance whether or not the combination of the partial logical specifications is possible, and may determine the logical specification based on the calculation result, or may determine the logical specification by calculating the combination each time. May be. In addition, when processing for multiple requested operations cannot be performed with a single reconfiguration, the logical specification to be used in the next reconfiguration is determined, the timing of the reconfiguration is determined, etc. Scheduling may be performed. The determining means may determine the logical specification based on the processing priority information of the requested processing, that is, based on information representing the priority of the arithmetic processing in two or more categories.

再構成手段は、前記決定手段が決定した前記論理仕様により、再構成可能回路に対し動的に再構成を行う。再構成は、例えば、再構成したい論理仕様に対応する設定データ(コンフィグデータ)を、専用のメモリに書き込むことで行われる。動的(ダイナミック)な再構成とは、一旦再構成した論理仕様が固定的に使用されるのではなく、演算処理の必要性や処理状況などに応じて再構成が行われることをいう。   The reconfiguring means dynamically reconfigures the reconfigurable circuit according to the logical specification determined by the determining means. Reconfiguration is performed, for example, by writing setting data (configuration data) corresponding to a logical specification to be reconfigured into a dedicated memory. Dynamic reconfiguration means that the reconfigured logic specification is not fixedly used, but is reconfigured in accordance with the necessity of the arithmetic processing, the processing status, and the like.

記憶手段、取得手段、決定手段、再構成手段は、通常は、再構成可能回路の外部装置(回路など)を利用して構築されるが、これらの一部または全部を再構成可能回路を利用して構築するようにしてもよい。また、新たな演算を処理するための部分論理仕様を追加する追加手段などを、外部回路や再構成可能回路を用いて構築するようにしてもよい。なお、本演算処理装置は、別の演算処理装置(再構成可能な演算処理装置であっても、再構成不可能な演算処理装置であってもよい)と共同で、データ処理等を行ってもよいし、単体でデータ処理等を行ってもよい。   The storage means, acquisition means, determination means, and reconfiguration means are usually constructed using external devices (circuits, etc.) of reconfigurable circuits, but some or all of these are reconfigurable circuits. You may make it build. Further, an additional means for adding a partial logic specification for processing a new operation may be constructed using an external circuit or a reconfigurable circuit. Note that this arithmetic processing unit performs data processing or the like in cooperation with another arithmetic processing unit (which may be a reconfigurable arithmetic processing unit or a non-reconfigurable arithmetic processing unit). Alternatively, data processing or the like may be performed alone.

[第1の実施の形態]
まず、図1乃至図7を用いて、第1の実施の形態について例示する。図1は、本実施の形態にかかる画像処理装置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の各構成要素が接続されている。
[First Embodiment]
First, the first embodiment will be illustrated with reference to FIGS. 1 to 7. FIG. 1 is a schematic diagram illustrating a configuration example of an image processing apparatus 10 according to the present embodiment. The illustrated image processing apparatus 10 is an apparatus having a single casing, and includes an internal bus 11 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 arithmetic unit 20, a UI (User Interface) 21, a scanner 22, The constituent elements of a printer 24, a CDD (Compact Disc Drive) 26, and a network interface 28 are connected.

CPU12は、ROM14などに格納されたプログラムに従って、画像処理装置10の各構成要素の制御や、画像処理等を行う装置である。ROM14は長期的な記憶が可能な半導体メモリ(記憶装置)であり、各種のプログラムや設定情報などを記憶する。RAM16は一時的な記憶が可能な半導体メモリであり、処理対象となる画像データなどを記憶する。HDD18は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データを長期的に記憶するためなどに用いられる。再構成可能演算装置20は、論理仕様を再構成可能な演算装置であり、ROM14あるいは自装置内に記憶されたプログラムに従って、画像データの演算処理などを行う。UI21は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置10のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ22は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ24は、画像データに基づいて用紙に印刷を行う印刷装置である。CDD26は、記録媒体としてのCD(コンパクトディスク)に記録されたデータを読み取る装置であり、例えば、CPU12や再構成可能演算装置20を制御するためのプログラムがCDD26により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース28は、インターネットなどのネットワーク30に接続してデータを入出力するためのインタフェースであり、例えば、CPU12や再構成可能演算装置20を制御するためのプログラムがネットワーク30を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。   The CPU 12 is a device that controls each component of the image processing apparatus 10 and performs image processing according to 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 capable of temporary storage, and stores image data to be processed. The HDD 18 is a large-capacity storage device configured using a magnetic disk or the like, and is used for storing image data for a long period of time. The reconfigurable computing device 20 is a computing device capable of reconfiguring logic specifications, and performs arithmetic processing of image data and the like according to a program stored in the ROM 14 or the own device. 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 the program for controlling the CPU 12 or the reconfigurable arithmetic device 20 is provided by the CDD 26, this program is executed. Used for reading. 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 and the reconfigurable computing device 20 is provided through the network 30, Used to receive the data signal of this program.

ここで、簡単に、画像処理装置10の動作について説明する。画像処理装置10では、典型的にはユーザからUI21を通じて、スキャナ22による画像データの生成処理や、プリンタ24による画像データの印刷処理が指示される。この場合、CPU12は、プログラムに従って、ユーザからの指示の解析し、スキャナ22を制御して生成した画像データをRAM16へ書き込む処理や、プリンタ24を制御してRAM16に格納された画像データに基づく印刷を行ったりする。この過程で、再構成可能演算装置20は、必要に応じて論理回路の再構成構成を行い、拡大・縮小、色変換、回転などの各種の画像データ処理を行う。   Here, the operation of the image processing apparatus 10 will be briefly described. In the image processing apparatus 10, typically, a user instructs an image data generation process by the scanner 22 or an image data print process by the printer 24 through the UI 21. In this case, the CPU 12 analyzes the instruction from the user according to the program, writes the image data generated by controlling the scanner 22 to the RAM 16, and prints based on the image data stored in the RAM 16 by controlling the printer 24. Or do. In this process, the reconfigurable arithmetic unit 20 reconfigures the logic circuit as necessary, and performs various image data processing such as enlargement / reduction, color conversion, and rotation.

続いて、図2を用いて、再構成可能演算装置20の構成例の概略を説明する。再構成可能演算装置20は、リコンフィグプロセッサ34、コンフィグメモリ38、制御部40、内部インタフェース42、メモリインタフェース44を備える。リコンフィグプロセッサ34は、再構成可能回路としての装置であり、コンフィグメモリ38及び内部インタフェース42と接続されている。リコンフィグプロセッサ34には、小回路としてのプロセッサエレメント(PE)がアレイ状に配置されている。各PEは、ALUやRAMなどを備えており、また、他のPEや内部インタフェース42と接続されている。そして、各PEは、単体で、あるいは他のPEと連携して、内部インタフェース42から入力される画像データに対し演算処理を行い、その結果を内部インタフェース42に出力する。コンフィグメモリ38は半導体メモリを備えた記憶装置であり、リコンフィグプロセッサ34及び内部インタフェース42に接続されている。制御部40は、再構成可能演算装置20を制御する演算装置であり、内部インタフェース42に接続されている。メモリインタフェース44は、内部インタフェース42に接続された装置であり、図1に示した内部バス11を通じてROM14、RAM16、HDD18などとデータの送受信を行ったり、CPU12との間で制御信号の送受信を行ったりする。図2では、ROM14、RAM16、HDD18に対し、リコンフィグプロセッサ34から出力されるデータを格納する出力データ格納部46、リコンフィグプロセッサ34へ入力されるデータを格納する入力データ格納部48、コンフィグメモリ38に入力されるコンフィグデータを格納するコンフィグデータ格納部50が構築された様子を図示している。   Then, the outline of the structural example of the reconfigurable arithmetic unit 20 is demonstrated using FIG. The reconfigurable computing device 20 includes a reconfiguration processor 34, a configuration memory 38, a control unit 40, an internal interface 42, and a memory interface 44. The reconfiguration processor 34 is a device as a reconfigurable circuit, and is connected to the configuration memory 38 and the internal interface 42. In the reconfigurable processor 34, processor elements (PE) as small circuits are arranged in an array. Each PE includes an ALU, a RAM, and the like, and is connected to other PEs and the internal interface 42. Each PE performs arithmetic processing on image data input from the internal interface 42 alone or in cooperation with other PEs, and outputs the result to the internal interface 42. The configuration memory 38 is a storage device including a semiconductor memory, and is connected to the reconfiguration processor 34 and the internal interface 42. The control unit 40 is an arithmetic device that controls the reconfigurable arithmetic device 20, and is connected to the internal interface 42. The memory interface 44 is a device connected to the internal interface 42, and transmits / receives data to / from the ROM 14, RAM 16, HDD 18, etc. via the internal bus 11 shown in FIG. 1 and transmits / receives control signals to / from the CPU 12. Or In FIG. 2, an output data storage unit 46 that stores data output from the reconfiguration processor 34, an input data storage unit 48 that stores data input to the reconfiguration processor 34, and a configuration memory. A state in which the configuration data storage unit 50 for storing the configuration data input to 38 is constructed is illustrated.

ここで、再構成可能演算装置20の動作について簡単に説明する。制御部40は、プログラムに従って、リコンフィグプロセッサ34に設定すべき論理仕様、すなわちコンフィグレーションを決定する。そして、このコンフィグレーションを設定するためのコンフィグレーションデータをコンフィグデータ格納部50からコンフィグメモリ38に入力する。これにより、リコンフィグプロセッサ34の半導体スイッチの動作の切り換えなどが行われ、リコンフィグプロセッサ34の再構成が行われる。すなわち、各PEの内部論理、あるいは、PE間や内部インタフェース42との接続論理が、対応するコンフィグレーション(ある演算機能をもつことからファンクションモジュールと言うこともできる)へと変更される。   Here, the operation of the reconfigurable computing device 20 will be briefly described. The control unit 40 determines a logical specification to be set in the reconfiguration processor 34, that is, a configuration according to the program. Then, configuration data for setting the configuration is input from the configuration data storage unit 50 to the configuration memory 38. Thereby, the operation of the semiconductor switch of the reconfiguration processor 34 is switched, and the reconfiguration processor 34 is reconfigured. That is, the internal logic of each PE, or the connection logic between PEs and the internal interface 42 is changed to a corresponding configuration (it can also be called a function module because it has a certain calculation function).

次に、図3を用いて、図2に示した制御部40について説明する。制御部40は、スケジューラ60と、スケジューラ60に接続された割込み検知部70、スケジューラテーブル72、及びレイアウトロード部74が接続されている。スケジューラ60は、リコンフィグプロセッサ34に設定するコンフィギュレーションの再構成を制御する装置である。スケジューラ60には、プライオリティ・ステータス判断部62、レイアウト判断部64、プロセスセット部66、レイアウト選択部68が含まれている。なお、ここでは、実行する一連の演算(これをタスクと呼ぶことがある)が複数の小演算単位であるプロセス(例えばタスクがパイプライン処理されるものである場合における個々の処理などをプロセスと呼ぶ場合がある)からなる場合を例に挙げて、各構成について説明する。   Next, the control unit 40 shown in FIG. 2 will be described with reference to FIG. The control unit 40 is connected to a scheduler 60, an interrupt detection unit 70 connected to the scheduler 60, a scheduler table 72, and a layout load unit 74. The scheduler 60 is a device that controls reconfiguration of the configuration set in the reconfiguration processor 34. The scheduler 60 includes a priority / status determination unit 62, a layout determination unit 64, a process set unit 66, and a layout selection unit 68. Here, a process in which a series of operations to be executed (sometimes referred to as tasks) are a plurality of small operation units (for example, individual processes when tasks are pipelined) Each configuration will be described by taking as an example a case of consisting of (sometimes called).

プライオリティ・ステータス判断部62は、割込み検知部70から割り込みをかけられた場合に、スケジューラテーブル72を参照して、リコンフィグプロセッサ34で処理するタスクの優先順位(プライオリティ)と、そのタスクに属するプロセスの実行状態(ステータス)を調べる。レイアウト判断部64は、プライオリティ・ステータス判断部62の判断結果を受けて、未設定の場合には、各プロセスを実行するためのコンフィグレーションのフロアプランレイアウト、すなわち、リコンフィグプロセッサのどの部分でどの演算を行うかを判断し、スケジューラテーブル72に登録する。このフロアプランレイアウトは、部分論理仕様としてのデータであり、例えば、コンフィグデータ格納部50に格納された各演算用のコンフィグデータ(これも部分論理仕様を表すデータであるとみなせる)に基づいて判断される。また、プロセスセット部66は、タスクの優先順位の高い順に、そのタスクにおける実行対象プロセスを処理対象のプロセスとして仮設定する。そして、レイアウト選択部68は、仮設定したプロセスのフロアプランレイアウトにおける重複の有無を判断して、実際に設定すべきフロアプランレイアウトを選択する。選択結果は、レイアウトロード部74に指示され、レイアウトロード部では、コンフィグデータ格納部50に格納されたコンフィグデータを読み込んでコンフィグメモリ38に入力させるロード命令信号をCPU12に送信する。   When an interrupt is received from the interrupt detection unit 70, the priority status determination unit 62 refers to the scheduler table 72 and the priority order (priority) of the task to be processed by the reconfiguration processor 34 and the process belonging to the task. Check the execution status (status). The layout determination unit 64 receives the determination result of the priority status determination unit 62, and if it is not set, the layout floor plan layout for executing each process, that is, which part of the reconfiguration processor It is determined whether to perform the calculation, and is registered in the scheduler table 72. This floor plan layout is data as a partial logical specification, and is determined based on, for example, configuration data for each operation stored in the configuration data storage unit 50 (which can also be regarded as data representing the partial logical specification). Is done. Further, the process set unit 66 temporarily sets the execution target processes in the tasks in the descending order of task priority as the process to be processed. Then, the layout selection unit 68 determines whether there is any overlap in the floor plan layout of the temporarily set process, and selects the floor plan layout to be actually set. The selection result is instructed to the layout load unit 74, and the layout load unit reads the configuration data stored in the configuration data storage unit 50 and transmits a load command signal to be input to the configuration memory 38 to the CPU 12.

割込み検知部70は、CPU12が新しい演算の処理命令を発した場合や、リコンフィグプロセッサ34で処理中の演算が終了した場合などに、プライオリティ・ステータス判断部62に割り込み信号を入力する。また、スケジューラテーブル72は、CPU12から処理命令を受けた演算について、そのプライオリティ、ステータス、演算に用いられるフロアプランレイアウトなどをまとめたテーブルである。   The interrupt detection unit 70 inputs an interrupt signal to the priority / status determination unit 62 when the CPU 12 issues a processing instruction for a new operation or when the operation being processed by the reconfiguration processor 34 is completed. The scheduler table 72 is a table in which the priority, status, floor plan layout used for the calculation, and the like are collected for the calculation that has received a processing instruction from the CPU 12.

図4は、コンフィグデータ格納部50に格納された各演算用のコンフィグデータの例を示す図である。図4には、タスクAと名付けられた演算についてのコンフィグデータ80,82,84と、タスクBと名付けられた別の演算についてのコンフィグデータ86,88,90と、タスクCと名付けられた別の演算についてのコンフィグデータ92が示されている。ここでは、タスクA,Bは、順次直列に処理される(言い換えればパイプライン処理可能な)3段階のプロセス(第1〜第3プロセス)からなることを想定している。また、タスクCは4段階のプロセス(第1〜第4プロセス)からなることを想定しているが、第2〜第4プロセスについては図示を省略している。   FIG. 4 is a diagram illustrating an example of configuration data for each calculation stored in the configuration data storage unit 50. FIG. 4 shows configuration data 80, 82, 84 for an operation named task A, configuration data 86, 88, 90 for another operation named task B, and another name named task C. The configuration data 92 for the calculation is shown. Here, it is assumed that tasks A and B are composed of three-stage processes (first to third processes) that are sequentially processed in series (in other words, pipeline processing is possible). Further, although it is assumed that the task C includes four stages of processes (first to fourth processes), the second to fourth processes are not shown.

コンフィグデータ80では、4分割されたエリア(これは再構成可能回路に設定される小区画の例である)のうち左上のエリア1に配置されたPEに第1プロセス用の論理回路であるタスクA1が設定され、コンフィグデータ82では右上のエリア2に第2プロセス用の論理回路であるタスクA2が設定され、コンフィグデータ84では左下のエリア3に第3プロセス用の論理回路であるタスクA3が設定されている。そして、コンフィグデータ86では左側のエリア1,3に第1プロセス用の論理回路であるタスクB1が設定され、コンフィグデータ88では右側のエリア2,4に第2プロセス用の論理回路であるタスクB2が設定され、コンフィグデータ90では下側のエリア3,4に第3プロセス用の論理回路であるタスクB3が設定されている。また、コンフィグデータ92では、左下を除くエリア1,2,4に第1プロセス用の論理回路であるタスクC1が設定されている。これらのコンフィグデータ80〜92において論理回路が設定されていない領域は、PEの使用が予定されていない領域である。制御部40では、論理回路が重複しないように複数のコンフィグデータを組み合わせて(フロアプランレイアウトを決定して)、最終的なコンフィグデータを設定する。   In the configuration data 80, a task that is a logic circuit for the first process in the PE arranged in the upper left area 1 of the four divided areas (this is an example of a small partition set in the reconfigurable circuit). A1 is set. In the configuration data 82, the task A2, which is the logic circuit for the second process, is set in the upper right area 2, and in the configuration data 84, the task A3, which is the logic circuit for the third process, is set in the lower left area 3. Is set. In the configuration data 86, a task B1, which is a logic circuit for the first process, is set in the left areas 1, 3 and in the configuration data 88, a task B2, which is a logic circuit for the second process, is set in the right areas 2, 4. In the configuration data 90, task B3, which is a logic circuit for the third process, is set in the lower areas 3 and 4. In the configuration data 92, a task C1, which is a logic circuit for the first process, is set in areas 1, 2, and 4 except for the lower left. An area where no logic circuit is set in these configuration data 80 to 92 is an area where PE is not scheduled to be used. The control unit 40 sets a final configuration data by combining a plurality of configuration data (determining a floor plan layout) so that logic circuits do not overlap.

図5は、スケジューラテーブル72の例を示す図である。ここでは、図4を用いて説明したタスクA,B,Cについての演算処理過程におけるスケジューラテーブル72を示している。テーブルの最上段102には、現在処理中のタスクに関する情報が記録されている。具体的には、現在、タスクAの第2プロセスと、タスクBの第1プロセスとがリコンフィグプロセッサ34で並列処理されていること、また、タスクAの第2プロセスはエリア3に論理回路が設定され、タスクBの第1プロセスはエリア2,4に論理回路が設定されていることが示されている。   FIG. 5 is a diagram illustrating an example of the scheduler table 72. Here, the scheduler table 72 in the arithmetic processing process for the tasks A, B, and C described with reference to FIG. 4 is shown. Information on the task currently being processed is recorded in the top row 102 of the table. Specifically, the second process of task A and the first process of task B are currently being processed in parallel by the reconfiguration processor 34, and the second process of task A has a logic circuit in area 3. It is shown that a logic circuit is set in areas 2 and 4 for the first process of task B.

段104以下は、各タスクに関する情報が記録されている。具体的には、段104において、「タスク名称」、優先順位を示す「プライオリティ」、処理中または処理終了済みのプロセスを示す「ステータス」、タスクに属す「プロセス数」、「第1プロセス使用フロアプランレイアウト」、「第2プロセス使用フロアプランレイアウト」、「第3プロセス使用フロアプランレイアウト」、「第4プロセス使用フロアプランレイアウト」の項目が設けられている。そして、段106,108,110には、それぞれタスクA,B,Cに関して、段104の各項目に対応する値が設定されている。例えば、タスクAでは、優先順位が1(最も高い)であること、処理中又は処理済みのプロセスは第2プロセスであること、全プロセス数は3であること、各プロセスに対する処理が図4に示したコンフィグデータ80,82,84に対応する使用フロアプランレイアウトで行われることが示されている。同様にして、タスクBでは、優先順位が2(2番目に高い)であること、処理中または処理済みのプロセスは第1プロセスであること、全プロセス数は3であること、各プロセスに対する処理が図4に示したコンフィグデータ86,88,90に対応する使用フロアプランレイアウトで行われることが示されている。また、タスクCについては、優先順位が3(3番目に高い)であること、処理中又は処理済みのプロセスは第0プロセス(つまり、まだ処理が行われていない)であること、全プロセス数は4であること、図4に示したコンフィグデータ92に対応する使用フロアプランレイアウト等を使用することが示されている。   Information about each task is recorded in the steps 104 and below. Specifically, in step 104, “task name”, “priority” indicating priority, “status” indicating a process being processed or completed, “number of processes” belonging to the task, “first process usage floor” Items of “plan layout”, “second process use floor plan layout”, “third process use floor plan layout”, and “fourth process use floor plan layout” are provided. In the levels 106, 108, and 110, values corresponding to the items in the level 104 are set for the tasks A, B, and C, respectively. For example, in task A, the priority is 1 (highest), the process being processed or processed is the second process, the total number of processes is 3, and the process for each process is shown in FIG. It is shown that the operation is performed with the use floor plan layout corresponding to the configuration data 80, 82, and 84 shown. Similarly, in task B, the priority is 2 (second highest), the process being processed or processed is the first process, the total number of processes is 3, and the process for each process Is performed with the use floor plan layout corresponding to the configuration data 86, 88, 90 shown in FIG. For task C, the priority is 3 (the third highest), the process being processed or processed is the 0th process (that is, the process has not yet been performed), and the total number of processes. Is 4, and the use floor plan layout corresponding to the configuration data 92 shown in FIG. 4 is used.

続いて、再構成可能演算装置20の動作について、図6,図7のフローチャートを用いて説明する。図6は、再構成可能演算装置20における全体的な処理の流れを示すフローチャートであり、図7は、スケジューラ60における処理の流れを示すフローチャートである。   Next, the operation of the reconfigurable computing device 20 will be described using the flowcharts of FIGS. FIG. 6 is a flowchart showing an overall process flow in the reconfigurable computing device 20, and FIG. 7 is a flowchart showing a process flow in the scheduler 60.

図6に示すように、再構成可能演算装置20では、CPU12から画像データに関するタスクの処理要求を受けた場合(S10)、制御部40のスケジューラ60がタスクの内容やその処理順序等に関する判断を行う(S12)。そして、スケジューラ60が決定したフロアプランレイアウトに従って、コンフィグデータが、コンフィグメモリ38に入力され、リコンフィグプロセッサ34に対応するコンフィグレーションが再構成される(S14)。リコンフィグプロセッサ34では、このコンフィグレーションに基づいてタスクを実行する(S16)。割込み検知部70は、タスクの処理を検知した場合に、スケジューラ60にタスク終了信号を発して割り込みをかける(S18)。そして、スケジューラ60は、並列処理中の別のタスクがある場合には入力データの入力を停止するとともに(S20)、スケジューラテーブル72を更新して終了内容を判定し(S22)、次に実行するタスクがある場合には、ステップS12以降の処理を繰り返す。   As shown in FIG. 6, in the reconfigurable computing device 20, when a task processing request relating to image data is received from the CPU 12 (S10), the scheduler 60 of the control unit 40 makes a determination regarding the task contents, the processing order, etc. Perform (S12). Then, according to the floor plan layout determined by the scheduler 60, the configuration data is input to the configuration memory 38, and the configuration corresponding to the reconfiguration processor 34 is reconfigured (S14). The reconfiguration processor 34 executes a task based on this configuration (S16). When detecting the task processing, the interrupt detection unit 70 issues a task end signal to the scheduler 60 to interrupt (S18). Then, when there is another task in parallel processing, the scheduler 60 stops inputting input data (S20), updates the scheduler table 72 to determine the end content (S22), and then executes it. If there is a task, the processes after step S12 are repeated.

続いて、図7を用いて、図6のステップS12,S22におけるスケジューラ60の処理の流れを詳しく説明する。スケジューラ60では、タスクの実行要求があった場合(S10)やタスクの終了信号が入力された場合(S18)に、スケジューラテーブル72におけるステータスの更新を行う(S30)。続いて、処理未了のタスクのうち、最もプライオリティが高いタスクのステータスをチェックし(S32)、これから処理すべきプロセスのフロアプランレイアウトを、処理対象のフロアプランレイアウトとしてセットする(S34)。そして、処理未了の全てのタスクのステータスをチェックしたか否かが判定される(S35)。未チェックのタスクがある場合には、次にプライオリティが高いタスクのステータスをチェックし(S36)、そのステータスが示すプロセスのフロアプランレイアウトを参照して(S38)、セット済みのフロアプランレイアウトとの論理積を取る。論理積が0になる場合には、そのフロアプランレイアウトを処理対象のフロアプランレイアウトとしてセットしたのち、ステップS34以下の処理を繰り返す。他方、論理積が0にならない場合、すなわち、それ以前にセットしたフロアプランレイアウトとの重複が生じる場合には、このタスクについてのフロアプランレイアウトのセットは行わず、ステップS34以下の処理を繰り返す。そして、ステップS34において、全タスクのステータスのチェックが終了した場合には、レイアウトロード部74を通じて、セットされているフロアプランレイアウトに対応するコンフィグデータを、プライオリティ順に、コンフィグデータ格納部50から順次コンフィグメモリ38にロードさせる(S44,S46,S48)。   Subsequently, the flow of processing of the scheduler 60 in steps S12 and S22 of FIG. 6 will be described in detail with reference to FIG. The scheduler 60 updates the status in the scheduler table 72 when there is a task execution request (S10) or when a task end signal is input (S18) (S30). Subsequently, the status of the task with the highest priority among unfinished tasks is checked (S32), and the floor plan layout of the process to be processed is set as the floor plan layout to be processed (S34). Then, it is determined whether the statuses of all tasks that have not been processed have been checked (S35). If there is an unchecked task, the status of the task with the next highest priority is checked (S36), and the floor plan layout of the process indicated by the status is referred to (S38). Logical AND. If the logical product is 0, the floor plan layout is set as the floor plan layout to be processed, and then the processes in and after step S34 are repeated. On the other hand, if the logical product does not become 0, that is, if there is an overlap with the floor plan layout set before that, the floor plan layout is not set for this task, and the processes in and after step S34 are repeated. When the status check of all tasks is completed in step S34, the configuration data corresponding to the set floor plan layout is sequentially configured from the configuration data storage unit 50 through the layout load unit 74 in the order of priority. The data is loaded into the memory 38 (S44, S46, S48).

図8は、タスクの処理態様の具体例を示す図である。図においては、図4に示したコンフィグデータ、及び図5に示したスケジューラテーブル72の下で、タスクA,B,Cが処理される様子を時間順に示している。開始前においては、状態120に示すように、タスクA,B,Cのステータスは0であり、いずれの処理も行われていない。処理が始まると、まず最初は、状態122に示すように、プライオリティが1であるタスクAの第1プロセスと、プライオリティが2であり、かつ、フロアプランレイアウトの組み合わせ可能なタスクBの第1プロセスとが並列処理される。そして、タスクAの第1プロセスの処理が先に終了してスケジューラ60は、タスクBの第1プロセスの処理を中断してコンフィグレーションの再構成124を行う。その結果、状態126に示すように、プライオリティが1であるタスクAの第2プロセスと、プライオリティが2であり、かつ、フロアプランレイアウトの組み合わせ可能なタスクBの第1プロセスとの並列処理が行われる。その後、タスクBの第1プロセスの処理が終了すると、再構成128が行われ、状態130に示すように、プライオリティが1であるタスクAの第2プロセスと、プライオリティが2であり、かつ、フロアプランレイアウトの組み合わせ可能なタスクBの第2プロセスとが並列処理される。同様にして、タスクAの第2プロセスの処理が終了した時点で再構成132が行われ、状態134に示すように、タスクAの第3プロセスとタスクBの第2プロセスとの並列処理が行われ、タスクBの第2プロセスの処理が終了した時点で再構成136が行われ、状態138に示すように、タスクAの第3プロセスとタスクBの第3プロセスとの並列処理が行われる。状態138においてタスクBの第3プロセスの処理が終了した際には、プライオリティが1であるタスクAの第3プロセスに対し、次にプライオリティが高いタスクCの第1プロセスを組み合わせることはできず、再構成が行われないままタスクAの第3プロセスの処理が継続されている。やがて、タスクAの第3プロセスの処理が終了すると、再構成140が行われ、状態142に示すように、その時点でプライオリティが最も高いタスクCの第1プロセスの処理が単独で実行される。これは、タスクCの第1プロセスと組み合わせ可能な他のタスクが存在しないためである。そして、タスクCの第1プロセスが終了した時点で、タスクCの第2プロセスを処理する再構成144が行われる。   FIG. 8 is a diagram illustrating a specific example of a task processing mode. In the figure, how the tasks A, B, and C are processed under the configuration data shown in FIG. 4 and the scheduler table 72 shown in FIG. 5 is shown in time order. Before the start, as shown in the state 120, the statuses of the tasks A, B, and C are 0, and any processing is not performed. When the processing starts, first, as shown in a state 122, the first process of task A having a priority of 1 and the first process of task B having a priority of 2 and a floor plan layout that can be combined. Are processed in parallel. Then, the processing of the first process of task A ends first, and the scheduler 60 interrupts the processing of the first process of task B and performs the reconfiguration 124 of the configuration. As a result, as shown in the state 126, the parallel processing of the second process of the task A having the priority 1 and the first process of the task B having the priority 2 and the floor plan layout that can be combined is performed. Is called. Thereafter, when the processing of the first process of task B is completed, reconfiguration 128 is performed, and as shown in state 130, the second process of task A having a priority of 1, a priority of 2, and a floor The second process of task B that can be combined with the plan layout is processed in parallel. Similarly, the reconfiguration 132 is performed when the processing of the second process of task A is completed, and the parallel processing of the third process of task A and the second process of task B is performed as shown in state 134. Thus, the reconfiguration 136 is performed when the processing of the second process of the task B is completed, and the third process of the task A and the third process of the task B are performed in parallel as shown in the state 138. When the processing of the third process of task B is completed in state 138, the first process of task C having the next highest priority cannot be combined with the third process of task A having a priority of 1, Processing of the third process of task A is continued without reconfiguration. Eventually, when the process of the third process of task A is completed, reconfiguration 140 is performed, and as shown in state 142, the process of the first process of task C having the highest priority at that time is executed alone. This is because there is no other task that can be combined with the first process of task C. Then, when the first process of task C ends, reconfiguration 144 for processing the second process of task C is performed.

以上に説明した例では、同じタスクに属する複数のプロセスは、同時に実行しないものとして、スケジューリングを行った。そして、先行するプロセスによる処理により得られた中間データを適宜メモリに保存し、後続するプロセスで使用することを想定した。しかし、プライオリティが次に高いタスクの処理よりも、プライオリティが(その時点で)最も高いタスクの複数のプロセスに対する並列処理を優先するようにしてもよい。この場合には、先行するプロセスが生成した中間データを後続するプロセスが直接使用することになる。そして、このような複数のプロセスのパイプライン処理が不可能な場合に、別のタスクのプロセスとの組み合わせを行うようにしてもよい。なお、タスクが複数のプロセスに分かれていない場合であっても、タスクに属するプロセスに対しさらに下位のプロセスが属する場合であっても、同様の態様で処理できることは言うまでもない。   In the example described above, scheduling is performed on the assumption that a plurality of processes belonging to the same task are not executed simultaneously. Then, it is assumed that intermediate data obtained by processing by the preceding process is appropriately stored in a memory and used in the subsequent process. However, parallel processing for a plurality of processes of the task with the highest priority (at that time) may be prioritized over processing of the task with the next highest priority. In this case, the subsequent process directly uses the intermediate data generated by the preceding process. When such a plurality of processes cannot be pipelined, a combination with another task process may be performed. Needless to say, even if the task is not divided into a plurality of processes, even if a lower-level process belongs to the process belonging to the task, it can be processed in the same manner.

さらに、以上の説明では、タスクA,B,Cの処理命令のみを受けた場合の例について示したが、これらの処理中に、プライオリティが同じ又は異なる別のタスクの処理命令を受けた場合には、スケジューラテーブル72を必要に応じて更新し、動的なスケジューリングをしてもよい。また、割り込みがかけられる前に、予め、スケジューラテーブル72に基づいて、次のフロアプランレイアウトを決定しておくことにより、再構成に必要なオーバーヘッドを短縮するようにしてもよい。また、以上の説明では、リコンフィグプロセッサ34のエリアを4分割して、フロアプランレイアウトを検討する例を示したが、さらに細かくエリアを設定して、リソースを効率的に使用するようにしてもよい。   Further, in the above description, an example in which only the processing instructions for tasks A, B, and C are received has been shown. However, when a processing instruction for another task having the same or different priority is received during these processes. May update the scheduler table 72 as necessary to perform dynamic scheduling. Further, the overhead required for reconfiguration may be shortened by determining the next floor plan layout based on the scheduler table 72 in advance before an interrupt is applied. In the above description, the example of examining the floor plan layout by dividing the area of the reconfigurable processor 34 into four parts has been shown. However, the area may be set more finely so that resources can be used efficiently. Good.

[第2の実施の形態]
次に、図9乃至図11を用いて、第2の実施の形態について説明する。第2の実施の形態は、第1の実施の形態を変形したものであり、図1乃至図3に示したハードウエア構成は基本的に第1の実施の形態と同様である。しかし、第2の実施の形態では、準備するコンフィグデータの数とその組み合わせ方が第1の実施の形態とは異なっている。
[Second Embodiment]
Next, a second embodiment will be described with reference to FIGS. The second embodiment is a modification of the first embodiment, and the hardware configuration shown in FIGS. 1 to 3 is basically the same as that of the first embodiment. However, in the second embodiment, the number of configuration data to be prepared and the combination thereof are different from those in the first embodiment.

図9は、図4に対応する図であり、本実施形態において、コンフィグデータ格納部50に格納されたコンフィグデータを示している。ここでは、タスクAの第1プロセス用のコンフィグデータであるタスクA第1プロセスレイアウト群150として、4個のコンフィグデータ152,154,156,158が設けられている。具体的には、コンフィグデータ152は4分割された左上1のエリアに論理回路が設定され、コンフィグデータ154は右上のエリア2に論理回路が設定され、コンフィグデータ156は左下のエリア3に論理回路が設定され、コンフィグデータ158は右下のエリア4に論理回路が設定されている。また、タスクBの第1プロセス用のコンフィグデータであるタスクB第1プロセスレイアウト群160には6個のコンフィグデータ162,164,166,168,170,172が設けられており、これらにはそれぞれ、上側のエリア1,2、左側のエリア1,3、右側のエリア2,4、下側のエリア3,4、右上及び左下のエリア2,3、左上及び右下のエリア1,4に論理回路が設定されている。このように、本実施の形態では、各タスクの各プロセスについて、論理回路の設定位置が異なる複数のコンフィグデータが用意されている。特に、図9に示した例では、各タスクの各プロセスについて、全てのエリアの組み合わせに対応したコンフィグデータが用意されている。   FIG. 9 is a diagram corresponding to FIG. 4 and shows the configuration data stored in the configuration data storage unit 50 in the present embodiment. Here, four configuration data 152, 154, 156 and 158 are provided as the task A first process layout group 150 which is the configuration data for the first process of task A. Specifically, in the configuration data 152, a logic circuit is set in the upper left area 1 divided into four, in the configuration data 154, a logic circuit is set in the upper right area 2, and in the configuration data 156, the logic circuit is set in the lower left area 3. In the configuration data 158, a logic circuit is set in the lower right area 4. The task B first process layout group 160, which is configuration data for the first process of task B, is provided with six pieces of configuration data 162, 164, 166, 168, 170, 172. , Upper area 1, 2, left area 1, 3, right area 2, 4, lower area 3, 4, upper right and lower left area 2, 3, upper left and lower right area 1, 4 The circuit is set up. As described above, in this embodiment, a plurality of pieces of configuration data having different logic circuit setting positions are prepared for each process of each task. In particular, in the example shown in FIG. 9, configuration data corresponding to all combinations of areas is prepared for each process of each task.

図10は、図5に対応する図であり、本実施の形態におけるスケジューラテーブル178を示している。この例では、最上段180に、全エリアをいくつに分割してフロアプランレイアウトを設定したかを示す「フロアプランレイアウト分割エリア数」が「4」であること、セット中のコンフィグデータによって使われている「使用エリア数」が「2」であることが記録されている。そして、具体的には、タスクAの第2プロセスと、タスクBの第1プロセスが設定されており、タスクAの第2プロセスはエリア1に論理回路をもち、タスクBの第1プロセスはエリア2,4に論理回路をもつことが記録されている。   FIG. 10 corresponds to FIG. 5 and shows the scheduler table 178 in the present embodiment. In this example, the number of floorplan layout divided areas, which indicates how many areas are divided and the floorplan layout is set, is “4” in the top row 180, and is used depending on the configuration data in the set. It is recorded that the “number of used areas” is “2”. Specifically, the second process of task A and the first process of task B are set, the second process of task A has a logic circuit in area 1, and the first process of task B is area 2 and 4 are recorded as having logic circuits.

段182以下には各タスクに関する情報が記録されており、段182では「タスク名称」「プライオリティ」「ステータス」「プロセス数」「第1プロセスフロアプランレイアウト使用エリア数」「第2プロセスフロアプランレイアウト使用エリア数」「第3プロセスフロアプランレイアウト使用エリア数」の項目が設けられている。使用エリア数とは、4分割されたエリアのうち何個のエリアを使用して論理回路が設定されたかを表すものである。そして、段184,186,188には、それぞれタスクA,B,Cに関して、段104の各項目に対応する値が設定されている。   Information about each task is recorded below the level 182. In level 182, "task name", "priority", "status", "number of processes", "number of first process floor plan layout used areas", "second process floor plan layout". The items “number of used areas” and “number of third process floor plan layout used areas” are provided. The number of used areas represents how many of the four divided areas are used to set the logic circuit. In steps 184, 186, and 188, values corresponding to the items in step 104 are set for tasks A, B, and C, respectively.

図11は、図7に対応するフローチャートであり、スケジューラ60における処理の流れを示している。スケジューラ60では、タスクの実行要求があった場合やタスクの終了信号が入力された場合などに、スケジューラテーブル178におけるステータスの更新を行う(S50)。続いて、処理未了のタスクのうち、最もプライオリティが高いタスクのステータスをチェックし(S52)、これから処理すべきプロセスを処理対象のプロセスとしてセットし(S54)、そのプロセスの使用エリア数を記録する。そして、処理未了の全てのタスクのステータスをチェックしたか否かが判定さる(S56)。未チェックのタスクがある場合には、次にプライオリティが高いタスクのステータスをチェックし(S58)、実行対象のプロセスの使用エリア数を参照して、合計の使用エリア数を求める(S60)。続いて、合計の使用エリア数の合計がフロアプランレイアウト分割エリア数を超えるかを検証し(S62)、超えない場合にはそのプロセスを処理対象のプロセスとしてセットし(S64)、超える場合には合計のエリア数から加算したエリア数を減算する(S66)。   FIG. 11 is a flowchart corresponding to FIG. 7 and shows the flow of processing in the scheduler 60. The scheduler 60 updates the status in the scheduler table 178 when there is a task execution request or when a task end signal is input (S50). Subsequently, the status of the task with the highest priority among the unfinished tasks is checked (S52), the process to be processed is set as the process to be processed (S54), and the number of used areas of the process is recorded. To do. Then, it is determined whether the statuses of all tasks that have not been processed have been checked (S56). If there is an unchecked task, the status of the task with the next highest priority is checked (S58), and the total number of used areas is obtained by referring to the number of used areas of the process to be executed (S60). Subsequently, it is verified whether the total number of used areas exceeds the number of floor plan layout division areas (S62). If not, the process is set as a process to be processed (S64). The added area number is subtracted from the total area number (S66).

他方、ステップS56で全てのタスクのステータスをチェックした場合には、1番目にセットされたプロセスのフロアプランレイアウトを選択する。このプロセス用のフロアプランレイアウトが複数ある場合には、いずれか一つが選択される。そして、次にプロセスがセットされているかを確認し(S70)、セットされている場合には、そのプロセスのフロアプランレイアウトを選択して(S72)、それ以前に選択したフロアプランレイアウトとの論理積をとる(S74)。その結果、論理積が0にならない場合、つまりフロアプランレイアウトに重複が生じる場合には、同じプロセス用の別のフロアプランレイアウトを選択して(S72)、同様の処理を繰り返す。他方、論理積が0になった場合には、ステップS70以降を繰り返す。ステップS70において、次にセットされたプロセスがない場合には、選択された各フロアプランレイアウトに対応するコンフィグデータを、コンフィグデータ格納部50から順次コンフィグメモリ38にロードさせる(S76)。   On the other hand, if the statuses of all tasks are checked in step S56, the floor plan layout of the first set process is selected. If there are a plurality of floor plan layouts for this process, one of them is selected. Next, it is confirmed whether or not the process is set (S70). If it is set, the floor plan layout of the process is selected (S72), and the logic with the floor plan layout selected before is selected. The product is taken (S74). As a result, if the logical product does not become 0, that is, if there is an overlap in the floor plan layout, another floor plan layout for the same process is selected (S72), and the same processing is repeated. On the other hand, when the logical product becomes 0, step S70 and subsequent steps are repeated. In step S70, if there is no next set process, the configuration data corresponding to each selected floor plan layout is sequentially loaded from the configuration data storage unit 50 to the configuration memory 38 (S76).

なお、以上の説明においては、各タスクの各プロセスに対して全てのエリアの組み合わせに対応したコンフィグデータが存在することを前提とした。しかし、一部のエリアの組み合わせに対応したコンフィグデータしか存在しない場合には、重複しないフロアプランレイアウトを見つけられないこともある。そこで、このような場合には、例えば、第1の実施の形態と組み合わせたフロアプランレイアウト設定などを行えばよい。   In the above description, it is assumed that configuration data corresponding to all combinations of areas exists for each process of each task. However, if there is only configuration data corresponding to a combination of some areas, a floor plan layout that does not overlap may not be found. Therefore, in such a case, for example, floor plan layout setting combined with the first embodiment may be performed.

[第3の実施の形態]
続いて、図12乃至図14を用いて、第3の実施の形態について説明する。第3の実施の形態は、第2の実施の形態を変形したものであり、基本的なハードウエア構成や処理態様は第2の実施の形態と同様である。しかし、第3の実施の形態では、第2の実施の形態(そして第1の実施の形態)におけるリコンフィグプロセッサ34とは、物理的構造が異なるリコンフィグプロセッサ34を用いることを想定している。
[Third Embodiment]
Subsequently, a third embodiment will be described with reference to FIGS. The third embodiment is a modification of the second embodiment, and the basic hardware configuration and processing mode are the same as those of the second embodiment. However, in the third embodiment, it is assumed that a reconfiguration processor 34 having a different physical structure from that of the reconfiguration processor 34 in the second embodiment (and the first embodiment) is used. .

図12は、本実施の形態にかかるリコンフィグプロセッサ200の構造を模式的に説明する図である。リコンフィグプロセッサ200では、リコンフィグプロセッサ34と同様に、複数のPEが配置されている。しかし、左上のエリア1には、スキャナからのデータを大量かつ拘束に入力できるダイレクトインプットポート202が設けられている。そして、このダイレクトインプットポート202の性能を十分に引き出せるPEは、エリア1のPEに限られているため、エリア1にはスキャンにより生成された画像データを処理するスキャン処理Aというタスクを配置することが望ましい。また、エリア4には、JPEG(JointPhotographicExpertGroup)の画像データを高速に処理可能なハードウエア構造をもつJPEGアクセラレータ204が埋め込まれている。そして、このJPEGアクセラレータ204の性能を十分に引き出せるPEは、エリア4のPEに限られているため、エリア4にはJPEG処理Bというタスクを配置することが望ましい。   FIG. 12 is a diagram schematically illustrating the structure of the reconfiguration processor 200 according to the present embodiment. In the reconfiguration processor 200, a plurality of PEs are arranged in the same manner as the reconfiguration processor 34. However, the upper left area 1 is provided with a direct input port 202 through which a large amount of data from the scanner can be input without restriction. Since PEs that can sufficiently bring out the performance of the direct input port 202 are limited to PEs in area 1, a task called scan processing A for processing image data generated by scanning is arranged in area 1. Is desirable. In area 4, a JPEG accelerator 204 having a hardware structure capable of processing JPEG (Joint Photographic Expert Group) image data at high speed is embedded. Since the PEs that can sufficiently bring out the performance of the JPEG accelerator 204 are limited to the PEs in the area 4, it is desirable to place a task called JPEG processing B in the area 4.

図13は、図10に対応する図であり、本実施の形態におけるスケジューラテーブル210を表している。スケジューラテーブル210の最上段212には、図10の場合と同様に、「フロアプランレイアウト分割エリア数」が「4」であること、及び「使用エリア数」が「2」であることが記録されている。また、最上段212には、現在、タスクAの第2プロセスと、タスクBの第1プロセスが設定されており、タスクAの第2プロセスはエリア3に論理回路をもち、タスクBの第1プロセスはエリア1,2に論理回路をもつことが記録されている。   FIG. 13 is a diagram corresponding to FIG. 10 and represents the scheduler table 210 in the present embodiment. In the uppermost stage 212 of the scheduler table 210, as in the case of FIG. 10, it is recorded that “the number of floor plan layout divided areas” is “4” and “the number of used areas” is “2”. ing. In the uppermost stage 212, the second process of task A and the first process of task B are currently set. The second process of task A has a logic circuit in area 3, and the first process of task B It is recorded that the process has logic circuits in areas 1 and 2.

段214以下には各タスクに関する情報が記録されており、基本的な項目は、図10と同様である。ただし、スケジューラテーブル210では、段214に、タスクに含まれる特殊な処理について記載する「処理プロパティ」の項目が設けられている。そして、段216のタスクAでは「処理プロパティ」が「なし」に設定され、段218のタスクBでは「処理プロパティ」が「スキャン(エリア1)」に設定され、段220のタスクCでは「処理プロパティ」が「JPEG(エリア4)」に設定されている。   Information about each task is recorded in the column 214 and subsequent items, and the basic items are the same as those in FIG. However, in the scheduler table 210, an item “processing property” describing a special process included in the task is provided in the stage 214. Then, “task property” is set to “none” in task A in step 216, “process property” is set to “scan (area 1)” in task B in step 218, and “process” is set in task C in step 220. “Property” is set to “JPEG (area 4)”.

続いて、図14を用いて、リコンフィグプロセッサ200及びスケジューラテーブル210を用いた場合のスケジューラ60の動作について説明する。スケジューラ60では、タスクの実行要求があった場合やタスクの終了信号が入力された場合などに、スケジューラテーブル210におけるステータスの更新を行う(S80)。続いて、処理未了のタスクのうち、最もプライオリティが高いタスクの処理プロパティを参照し(S82)、特殊な処理が含まれるか否かを確認する(S84)。その結果、特殊な処理が含まれており、リコンフィグプロセッサ200の特定のエリアを使用する場合には、そのエリアで処理を行うフロアプランレイアウトを選択する(S86)。他方、特殊な処理が含まれていない場合には、特殊なエリアを使用するタスクの処理位置と重複しないようにフロアプランレイアウトを選択する(S86)。以上の処理を、エリアに空き領域が無くなるまで、あるいは、全てのタスクに対して繰り返す(S90)。すなわち、この実施の形態においては、特定のエリアに対して特殊な処理が配置されるように、特定のエリアをロック(鍵をかける)している。   Next, the operation of the scheduler 60 when the reconfiguration processor 200 and the scheduler table 210 are used will be described with reference to FIG. The scheduler 60 updates the status in the scheduler table 210 when there is a task execution request or when a task end signal is input (S80). Subsequently, the processing property of the task with the highest priority among the unfinished tasks is referred to (S82), and it is confirmed whether or not special processing is included (S84). As a result, special processing is included, and when a specific area of the reconfigurable processor 200 is used, a floor plan layout to be processed in that area is selected (S86). On the other hand, if the special process is not included, the floor plan layout is selected so as not to overlap with the processing position of the task using the special area (S86). The above processing is repeated for all tasks until there is no free area in the area (S90). That is, in this embodiment, a specific area is locked (locked) so that special processing is arranged for the specific area.

本実施の形態にかかる画像処理装置の概略的な構成例を示す図である。It is a figure which shows the schematic structural example of the image processing apparatus concerning this Embodiment. 再構成可能演算装置の概略的な構成例を示す図である。It is a figure which shows the schematic structural example of a reconfigurable arithmetic unit. 制御部の概略的な構成例を示す図である。It is a figure which shows the schematic structural example of a control part. コンフィグデータの例を示す図である。It is a figure which shows the example of configuration data. スケジューラテーブルの例を示す図である。It is a figure which shows the example of a scheduler table. 再構成可能演算装置における処理の流れを説明するフローチャートである。It is a flowchart explaining the flow of the process in a reconfigurable arithmetic unit. 制御部における処理の流れを説明するフローチャートである。It is a flowchart explaining the flow of the process in a control part. 再構成の例を説明する図である。It is a figure explaining the example of reconstruction. コンフィグデータの別の例を示す図である。It is a figure which shows another example of configuration data. スケジューラテーブルの別の例を示す図である。It is a figure which shows another example of a scheduler table. 制御部における処理の流れの変形例を説明するフローチャートである。It is a flowchart explaining the modification of the flow of the process in a control part. リコンフィグプロセッサの構成の変形例を示す図である。It is a figure which shows the modification of a structure of a reconfiguration processor. スケジューラテーブルの別の例を示す図である。It is a figure which shows another example of a scheduler table. 制御部に置ける処理の流れの変形例を説明するフローチャートである。It is a flowchart explaining the modification of the flow of the process which can be put in a control part.

符号の説明Explanation of symbols

10 画像処理装置、11 内部バス、12 CPU、14 ROM、16 RAM、18 HDD、20 再構成可能演算装置、22 スキャナ、24 プリンタ、26 CDD、28 ネットワークインタフェース、30 ネットワーク、34 リコンフィグプロセッサ、38 コンフィグメモリ、40 制御部、42 内部インタフェース、44 メモリインタフェース、46 出力データ格納部、48 入力データ格納部、50 コンフィグデータ格納部、60 スケジューラ、62 プライオリティ・ステータス判断部、64 レイアウト判断部、66 プロセスセット部、68 レイアウト選択部、70 割込み検知部、72 スケジューラテーブル、74 レイアウトロード部。   DESCRIPTION OF SYMBOLS 10 Image processing apparatus, 11 Internal bus, 12 CPU, 14 ROM, 16 RAM, 18 HDD, 20 Reconfigurable arithmetic unit, 22 Scanner, 24 Printer, 26 CDD, 28 Network interface, 30 Network, 34 Reconfiguration processor, 38 Configuration memory, 40 control unit, 42 internal interface, 44 memory interface, 46 output data storage unit, 48 input data storage unit, 50 configuration data storage unit, 60 scheduler, 62 priority status determination unit, 64 layout determination unit, 66 process Set unit, 68 Layout selection unit, 70 Interrupt detection unit, 72 Scheduler table, 74 Layout load unit.

Claims (7)

複数の小回路を有し、一部又は全部の前記小回路における論理仕様を再構成可能な再構成可能回路と、
一又は二以上の演算を一部の前記小回路で処理する部分論理仕様を、前記一又は二以上の演算毎に記憶する記憶手段と、
互いに独立して処理可能な複数の演算に対する処理要求を取得する取得手段と、
処理要求された二以上の演算を並列処理する論理仕様を、前記小回路が重複しない前記部分論理仕様の組み合わせに基づいて決定する決定手段と、
前記再構成可能回路に対し、前記決定手段により決定された前記論理仕様を動的に再構成する再構成手段と、
を備えることを特徴とする演算処理装置。
A reconfigurable circuit having a plurality of small circuits and capable of reconfiguring a logic specification in a part or all of the small circuits;
Storage means for storing a partial logical specification for processing one or more operations in a part of the small circuits for each of the one or more operations;
Acquisition means for acquiring processing requests for a plurality of operations that can be processed independently of each other;
Determining means for determining a logical specification for parallel processing of two or more operations requested for processing based on a combination of the partial logical specifications in which the small circuits do not overlap;
Reconfiguring means for dynamically reconfiguring the logic specification determined by the determining means for the reconfigurable circuit;
An arithmetic processing apparatus comprising:
請求項1に記載の演算処理装置において、
前記記憶手段は、少なくとも一部の前記一又は二以上の演算について、演算を処理する小回路が異なる複数の部分論理仕様を記憶し、
前記決定手段は、演算を処理する小回路が異なる複数の部分論理仕様の中から、小回路を重複させずに組み合わせ可能な部分論理仕様を選択して、前記論理仕様を決定することを特徴とする演算処理装置。
The arithmetic processing device according to claim 1,
The storage means stores a plurality of partial logic specifications for which at least some of the one or more operations are different in a small circuit for processing the operation,
The determining means selects a partial logical specification that can be combined without overlapping small circuits from a plurality of partial logical specifications with different small circuits for processing operations, and determines the logical specifications. An arithmetic processing unit.
請求項1に記載の演算処理装置において、
少なくとも一つの前記小回路を含むように前記再構成可能回路を区画した複数の小区画が設定され、
前記決定手段は、演算の処理に用いられる小区画の重複情報に基づいて、前記小回路が重複しない前記部分論理仕様の組み合わせを判定することを特徴とする演算処理装置。
The arithmetic processing device according to claim 1,
A plurality of sub-partitions that partition the reconfigurable circuit so as to include at least one of the sub-circuits;
The determination means determines the combination of the partial logic specifications that the small circuits do not overlap based on the overlap information of the small sections used for the calculation processing.
請求項1に記載の演算処理装置において、
前記小回路の一部は、他の小回路とは物理的構造が異なり、
前記決定手段は、前記小回路の物理的構造の相違にも基づいて、前記部分論理仕様の組み合わせを定めることを特徴とする演算処理装置。
The arithmetic processing device according to claim 1,
Some of the small circuits have different physical structures from other small circuits,
The determination processing unit determines the combination of the partial logic specifications based on a difference in physical structure of the small circuit.
請求項1乃至4のいずれか1項に記載の演算処理装置において、
前記取得手段は、処理要求された演算についての処理の優先順位情報も取得し、
前記決定手段は、前記優先順位情報にも基づいて、前記論理仕様を決定することを特徴とする演算処理装置。
In the arithmetic processing unit according to any one of claims 1 to 4,
The acquisition means also acquires processing priority information for the requested processing,
The arithmetic processing apparatus, wherein the determining means determines the logical specification based on the priority information.
請求項1乃至5のいずれか1項に記載の演算処理装置において、
複数決定手段は、処理要求された複数の演算に対する全体の処理時間にも基づいて、前記論理仕様を決定することを特徴とする演算処理装置。
In the arithmetic processing unit according to any one of claims 1 to 5,
A plurality of determination means determine the logical specifications based on the total processing time for a plurality of operations requested to be processed.
複数の小回路を有し、一部又は全部の前記小回路における論理仕様を再構成可能な再構成可能回路を備えるコンピュータを、
一又は二以上の演算を一部の前記小回路で処理する部分論理仕様を、前記一又は二以上の演算毎に記憶する記憶手段と、
互いに独立して処理可能な複数の演算に対する処理要求を取得する取得手段と、
処理要求された二以上の演算を並列処理する論理仕様を、前記小回路が重複しない前記部分論理仕様の組み合わせに基づいて決定する決定手段と、
前記再構成可能回路に対し、前記決定手段により決定された前記論理仕様を動的に再構成する再構成手段と、
して機能させることを特徴とする演算処理プログラム。
A computer having a plurality of small circuits and including a reconfigurable circuit capable of reconfiguring a logic specification in a part or all of the small circuits.
Storage means for storing a partial logical specification for processing one or more operations in a part of the small circuits for each of the one or more operations;
Acquisition means for acquiring processing requests for a plurality of operations that can be processed independently of each other;
Determining means for determining a logical specification for parallel processing of two or more operations requested for processing based on a combination of the partial logical specifications in which the small circuits do not overlap;
Reconfiguring means for dynamically reconfiguring the logic specification determined by the determining means for the reconfigurable circuit;
An arithmetic processing program characterized by being made to function.
JP2007186848A 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program Expired - Fee Related JP5023856B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007186848A JP5023856B2 (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
JP2007186848A JP5023856B2 (en) 2007-07-18 2007-07-18 Arithmetic processing device and arithmetic processing program

Publications (2)

Publication Number Publication Date
JP2009025953A true JP2009025953A (en) 2009-02-05
JP5023856B2 JP5023856B2 (en) 2012-09-12

Family

ID=40397719

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP5023856B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250411A (en) * 2009-04-13 2010-11-04 Hitachi Ltd Computer system and management method
JP2015039155A (en) * 2013-08-19 2015-02-26 富士通株式会社 Control method, arithmetic device and control program
JP2016009339A (en) * 2014-06-24 2016-01-18 キヤノン株式会社 Image processor, control method thereof and program
JP2018180805A (en) * 2017-04-10 2018-11-15 東芝デベロップメントエンジニアリング株式会社 Management device
JP2020004429A (en) * 2019-08-08 2020-01-09 キヤノン株式会社 Information processing apparatus, control method thereof, and program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102091854B (en) * 2011-01-14 2012-10-10 湘潭大学 Stepless eccentricity adjustable rotating arc sensor
CN102319938B (en) * 2011-09-05 2013-12-25 湘潭大学 Double-drive rotary stirring submerged arc build-up welding sensor

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232079A (en) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd Information processing system
JP2000252814A (en) * 1999-03-02 2000-09-14 Fuji Xerox Co Ltd Information processing system
JP2000255125A (en) * 1999-03-11 2000-09-19 Fuji Xerox Co Ltd Printing processing device and method
JP2001202236A (en) * 2000-01-20 2001-07-27 Fuji Xerox Co Ltd Data processing method for programmable logic circuit device and the same device and information processing system and circuit reconstituting method for the same device
JP2004326143A (en) * 2003-04-21 2004-11-18 Nec Saitama Ltd Cpu device with fpga and method for initializing it
JP2005136956A (en) * 2003-10-08 2005-05-26 Toshiba Corp Logic circuit device, and operating voltage change method
JP2005165435A (en) * 2003-11-28 2005-06-23 Ip Flex Kk Data transmission method
JP2005258767A (en) * 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd Configuration method for information processing system and semiconductor integrated circuit
JP2006197023A (en) * 2005-01-11 2006-07-27 Fujitsu Ltd Semiconductor integrated circuit
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232079A (en) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd Information processing system
JP2000252814A (en) * 1999-03-02 2000-09-14 Fuji Xerox Co Ltd Information processing system
JP2000255125A (en) * 1999-03-11 2000-09-19 Fuji Xerox Co Ltd Printing processing device and method
JP2001202236A (en) * 2000-01-20 2001-07-27 Fuji Xerox Co Ltd Data processing method for programmable logic circuit device and the same device and information processing system and circuit reconstituting method for the same device
JP2004326143A (en) * 2003-04-21 2004-11-18 Nec Saitama Ltd Cpu device with fpga and method for initializing it
JP2005136956A (en) * 2003-10-08 2005-05-26 Toshiba Corp Logic circuit device, and operating voltage change method
JP2005165435A (en) * 2003-11-28 2005-06-23 Ip Flex Kk Data transmission method
JP2005258767A (en) * 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd Configuration method for information processing system and semiconductor integrated circuit
JP2006197023A (en) * 2005-01-11 2006-07-27 Fujitsu Ltd Semiconductor integrated circuit
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250411A (en) * 2009-04-13 2010-11-04 Hitachi Ltd Computer system and management method
JP2015039155A (en) * 2013-08-19 2015-02-26 富士通株式会社 Control method, arithmetic device and control program
JP2016009339A (en) * 2014-06-24 2016-01-18 キヤノン株式会社 Image processor, control method thereof and program
JP2018180805A (en) * 2017-04-10 2018-11-15 東芝デベロップメントエンジニアリング株式会社 Management device
JP2020004429A (en) * 2019-08-08 2020-01-09 キヤノン株式会社 Information processing apparatus, control method thereof, and program

Also Published As

Publication number Publication date
JP5023856B2 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
JP5023856B2 (en) Arithmetic processing device and arithmetic processing program
JP4104538B2 (en) Reconfigurable circuit, processing device provided with reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method, and circuit
TWI426452B (en) Work processing device
JP3921367B2 (en) Data processing apparatus and method, computer program, information storage medium, parallel processing apparatus, data processing system
WO2016155335A1 (en) Task scheduling method and device on heterogeneous multi-core reconfigurable computing platform
TWI426451B (en) Work processing device
JP2014016894A (en) Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program
JP5985900B2 (en) Behavioral synthesis device, data processing system including behavioral synthesis device, and behavioral synthesis program
JP4199444B2 (en) Partition configuration change method, partition configuration change method, and partition configuration change program
WO2001095099A1 (en) System for managing circuitry of variable function information processing circuit and method for managing circuitry of variable function information processing circuit
JP3832557B2 (en) Circuit reconfiguration method and information processing system for programmable logic circuit
JP2006236106A (en) Data processor and data processing method
JP4859103B2 (en) Image forming apparatus
KR100781358B1 (en) System and method for data process
JP5277615B2 (en) Data processing apparatus and data processing program
JP6823251B2 (en) Information processing equipment, information processing methods and programs
JP2006172219A (en) Automated design device for semiconductor integrated circuit, automated design method for semiconductor integrated circuit, and automated design program for semiconductor integrated circuit
JP4809497B2 (en) Programmable controller that executes multiple independent sequence programs in parallel
US8359564B2 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
GB2366414A (en) A method of identifying false paths in circuit synthesis
JP4728581B2 (en) Array type processor
JP5835498B2 (en) LSI and LSI manufacturing method
JP3989397B2 (en) Integrated circuit device and data setting device for the device
JP2007323491A (en) Direct memory access control device and control method
JP2021035029A (en) Information processing device, dynamic reconfiguration device, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120131

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: 20120522

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120604

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5023856

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