JP2009025953A - Arithmetic processing unit and arithmetic processing program - Google Patents
Arithmetic processing unit and arithmetic processing program Download PDFInfo
- 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
Links
Images
Abstract
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
下記特許文献2には、実行させる演算間の依存関係に基づいて、回路の再構成を行う技術が開示されている。
下記特許文献3には、外部からの割込信号をトリガーとして回路の再構成を行うことにより、優先度の高い処理を先に実行し、その後に中断した処理を再開する技術が開示されている。
下記特許文献4には、パイプライン構造を有する再構成可能な複数のプロセッサ要素に対し、1クロックで構成の切り替えを行い、パイプライン構造に流されるデータに対応した演算処理を実行することにより、時分割処理を実現する技術が開示されている。
In the following
下記特許文献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.
上記特許文献1の技術のように各演算処理を順次実行する場合、単純には、各演算処理に要する時間を足しあわせただけの演算時間を必要とする。この事情は、上記特許文献2の技術のように演算順序を変更する場合も同様である。さらに、上記特許文献3の技術のように、優先順位に基づいて割り込み処理を行う場合には、優先順位の高い処理は早く終了するが、全体の処理が終了するまでには、各演算処理を順次実行するときと同程度の時間を要することになる。また、上記特許文献4で採用された時分割処理は、全体の演算時間を短くするものではなく、しかも、再構成の回数が増加するためオーバーヘッドの問題も無視できなくなる虞がある。上記特許文献5の技術も、このような時間短縮に関する課題を解決するものではない。
In the case of sequentially executing each arithmetic processing as in the technique of the above-mentioned
本発明は、こうした事情を鑑みてなされたものであり、その目的は、複数の処理に要する全体の処理時間を短縮可能な演算処理装置または演算処理プログラムを提供することにある。 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
請求項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
請求項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
CPU12は、ROM14などに格納されたプログラムに従って、画像処理装置10の各構成要素の制御や、画像処理等を行う装置である。ROM14は長期的な記憶が可能な半導体メモリ(記憶装置)であり、各種のプログラムや設定情報などを記憶する。RAM16は一時的な記憶が可能な半導体メモリであり、処理対象となる画像データなどを記憶する。HDD18は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データを長期的に記憶するためなどに用いられる。再構成可能演算装置20は、論理仕様を再構成可能な演算装置であり、ROM14あるいは自装置内に記憶されたプログラムに従って、画像データの演算処理などを行う。UI21は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置10のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ22は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ24は、画像データに基づいて用紙に印刷を行う印刷装置である。CDD26は、記録媒体としてのCD(コンパクトディスク)に記録されたデータを読み取る装置であり、例えば、CPU12や再構成可能演算装置20を制御するためのプログラムがCDD26により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース28は、インターネットなどのネットワーク30に接続してデータを入出力するためのインタフェースであり、例えば、CPU12や再構成可能演算装置20を制御するためのプログラムがネットワーク30を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。
The
ここで、簡単に、画像処理装置10の動作について説明する。画像処理装置10では、典型的にはユーザからUI21を通じて、スキャナ22による画像データの生成処理や、プリンタ24による画像データの印刷処理が指示される。この場合、CPU12は、プログラムに従って、ユーザからの指示の解析し、スキャナ22を制御して生成した画像データをRAM16へ書き込む処理や、プリンタ24を制御してRAM16に格納された画像データに基づく印刷を行ったりする。この過程で、再構成可能演算装置20は、必要に応じて論理回路の再構成構成を行い、拡大・縮小、色変換、回転などの各種の画像データ処理を行う。
Here, the operation of the
続いて、図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
ここで、再構成可能演算装置20の動作について簡単に説明する。制御部40は、プログラムに従って、リコンフィグプロセッサ34に設定すべき論理仕様、すなわちコンフィグレーションを決定する。そして、このコンフィグレーションを設定するためのコンフィグレーションデータをコンフィグデータ格納部50からコンフィグメモリ38に入力する。これにより、リコンフィグプロセッサ34の半導体スイッチの動作の切り換えなどが行われ、リコンフィグプロセッサ34の再構成が行われる。すなわち、各PEの内部論理、あるいは、PE間や内部インタフェース42との接続論理が、対応するコンフィグレーション(ある演算機能をもつことからファンクションモジュールと言うこともできる)へと変更される。
Here, the operation of the
次に、図3を用いて、図2に示した制御部40について説明する。制御部40は、スケジューラ60と、スケジューラ60に接続された割込み検知部70、スケジューラテーブル72、及びレイアウトロード部74が接続されている。スケジューラ60は、リコンフィグプロセッサ34に設定するコンフィギュレーションの再構成を制御する装置である。スケジューラ60には、プライオリティ・ステータス判断部62、レイアウト判断部64、プロセスセット部66、レイアウト選択部68が含まれている。なお、ここでは、実行する一連の演算(これをタスクと呼ぶことがある)が複数の小演算単位であるプロセス(例えばタスクがパイプライン処理されるものである場合における個々の処理などをプロセスと呼ぶ場合がある)からなる場合を例に挙げて、各構成について説明する。
Next, the
プライオリティ・ステータス判断部62は、割込み検知部70から割り込みをかけられた場合に、スケジューラテーブル72を参照して、リコンフィグプロセッサ34で処理するタスクの優先順位(プライオリティ)と、そのタスクに属するプロセスの実行状態(ステータス)を調べる。レイアウト判断部64は、プライオリティ・ステータス判断部62の判断結果を受けて、未設定の場合には、各プロセスを実行するためのコンフィグレーションのフロアプランレイアウト、すなわち、リコンフィグプロセッサのどの部分でどの演算を行うかを判断し、スケジューラテーブル72に登録する。このフロアプランレイアウトは、部分論理仕様としてのデータであり、例えば、コンフィグデータ格納部50に格納された各演算用のコンフィグデータ(これも部分論理仕様を表すデータであるとみなせる)に基づいて判断される。また、プロセスセット部66は、タスクの優先順位の高い順に、そのタスクにおける実行対象プロセスを処理対象のプロセスとして仮設定する。そして、レイアウト選択部68は、仮設定したプロセスのフロアプランレイアウトにおける重複の有無を判断して、実際に設定すべきフロアプランレイアウトを選択する。選択結果は、レイアウトロード部74に指示され、レイアウトロード部では、コンフィグデータ格納部50に格納されたコンフィグデータを読み込んでコンフィグメモリ38に入力させるロード命令信号をCPU12に送信する。
When an interrupt is received from the interrupt
割込み検知部70は、CPU12が新しい演算の処理命令を発した場合や、リコンフィグプロセッサ34で処理中の演算が終了した場合などに、プライオリティ・ステータス判断部62に割り込み信号を入力する。また、スケジューラテーブル72は、CPU12から処理命令を受けた演算について、そのプライオリティ、ステータス、演算に用いられるフロアプランレイアウトなどをまとめたテーブルである。
The interrupt
図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
コンフィグデータ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
図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
段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
続いて、再構成可能演算装置20の動作について、図6,図7のフローチャートを用いて説明する。図6は、再構成可能演算装置20における全体的な処理の流れを示すフローチャートであり、図7は、スケジューラ60における処理の流れを示すフローチャートである。
Next, the operation of the
図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
続いて、図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
図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
以上に説明した例では、同じタスクに属する複数のプロセスは、同時に実行しないものとして、スケジューリングを行った。そして、先行するプロセスによる処理により得られた中間データを適宜メモリに保存し、後続するプロセスで使用することを想定した。しかし、プライオリティが次に高いタスクの処理よりも、プライオリティが(その時点で)最も高いタスクの複数のプロセスに対する並列処理を優先するようにしてもよい。この場合には、先行するプロセスが生成した中間データを後続するプロセスが直接使用することになる。そして、このような複数のプロセスのパイプライン処理が不可能な場合に、別のタスクのプロセスとの組み合わせを行うようにしてもよい。なお、タスクが複数のプロセスに分かれていない場合であっても、タスクに属するプロセスに対しさらに下位のプロセスが属する場合であっても、同様の態様で処理できることは言うまでもない。 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
[第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
図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
段182以下には各タスクに関する情報が記録されており、段182では「タスク名称」「プライオリティ」「ステータス」「プロセス数」「第1プロセスフロアプランレイアウト使用エリア数」「第2プロセスフロアプランレイアウト使用エリア数」「第3プロセスフロアプランレイアウト使用エリア数」の項目が設けられている。使用エリア数とは、4分割されたエリアのうち何個のエリアを使用して論理回路が設定されたかを表すものである。そして、段184,186,188には、それぞれタスクA,B,Cに関して、段104の各項目に対応する値が設定されている。
Information about each task is recorded below the
図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
なお、以上の説明においては、各タスクの各プロセスに対して全てのエリアの組み合わせに対応したコンフィグデータが存在することを前提とした。しかし、一部のエリアの組み合わせに対応したコンフィグデータしか存在しない場合には、重複しないフロアプランレイアウトを見つけられないこともある。そこで、このような場合には、例えば、第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
図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
図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
段214以下には各タスクに関する情報が記録されており、基本的な項目は、図10と同様である。ただし、スケジューラテーブル210では、段214に、タスクに含まれる特殊な処理について記載する「処理プロパティ」の項目が設けられている。そして、段216のタスクAでは「処理プロパティ」が「なし」に設定され、段218のタスクBでは「処理プロパティ」が「スキャン(エリア1)」に設定され、段220のタスクCでは「処理プロパティ」が「JPEG(エリア4)」に設定されている。
Information about each task is recorded in the
続いて、図14を用いて、リコンフィグプロセッサ200及びスケジューラテーブル210を用いた場合のスケジューラ60の動作について説明する。スケジューラ60では、タスクの実行要求があった場合やタスクの終了信号が入力された場合などに、スケジューラテーブル210におけるステータスの更新を行う(S80)。続いて、処理未了のタスクのうち、最もプライオリティが高いタスクの処理プロパティを参照し(S82)、特殊な処理が含まれるか否かを確認する(S84)。その結果、特殊な処理が含まれており、リコンフィグプロセッサ200の特定のエリアを使用する場合には、そのエリアで処理を行うフロアプランレイアウトを選択する(S86)。他方、特殊な処理が含まれていない場合には、特殊なエリアを使用するタスクの処理位置と重複しないようにフロアプランレイアウトを選択する(S86)。以上の処理を、エリアに空き領域が無くなるまで、あるいは、全てのタスクに対して繰り返す(S90)。すなわち、この実施の形態においては、特定のエリアに対して特殊な処理が配置されるように、特定のエリアをロック(鍵をかける)している。
Next, the operation of the scheduler 60 when the
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
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:
前記記憶手段は、少なくとも一部の前記一又は二以上の演算について、演算を処理する小回路が異なる複数の部分論理仕様を記憶し、
前記決定手段は、演算を処理する小回路が異なる複数の部分論理仕様の中から、小回路を重複させずに組み合わせ可能な部分論理仕様を選択して、前記論理仕様を決定することを特徴とする演算処理装置。 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.
少なくとも一つの前記小回路を含むように前記再構成可能回路を区画した複数の小区画が設定され、
前記決定手段は、演算の処理に用いられる小区画の重複情報に基づいて、前記小回路が重複しない前記部分論理仕様の組み合わせを判定することを特徴とする演算処理装置。 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.
前記小回路の一部は、他の小回路とは物理的構造が異なり、
前記決定手段は、前記小回路の物理的構造の相違にも基づいて、前記部分論理仕様の組み合わせを定めることを特徴とする演算処理装置。 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.
前記取得手段は、処理要求された演算についての処理の優先順位情報も取得し、
前記決定手段は、前記優先順位情報にも基づいて、前記論理仕様を決定することを特徴とする演算処理装置。 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.
複数決定手段は、処理要求された複数の演算に対する全体の処理時間にも基づいて、前記論理仕様を決定することを特徴とする演算処理装置。 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.
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)
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)
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)
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 |
-
2007
- 2007-07-18 JP JP2007186848A patent/JP5023856B2/en not_active Expired - Fee Related
Patent Citations (10)
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)
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 |