JP2017097478A - Arithmetic processing unit and control method of arithmetic processing unit - Google Patents

Arithmetic processing unit and control method of arithmetic processing unit Download PDF

Info

Publication number
JP2017097478A
JP2017097478A JP2015226658A JP2015226658A JP2017097478A JP 2017097478 A JP2017097478 A JP 2017097478A JP 2015226658 A JP2015226658 A JP 2015226658A JP 2015226658 A JP2015226658 A JP 2015226658A JP 2017097478 A JP2017097478 A JP 2017097478A
Authority
JP
Japan
Prior art keywords
logic circuit
processing
time
task
total
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
JP2015226658A
Other languages
Japanese (ja)
Other versions
JP6485335B2 (en
Inventor
健太朗 片山
Kentaro Katayama
健太朗 片山
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015226658A priority Critical patent/JP6485335B2/en
Publication of JP2017097478A publication Critical patent/JP2017097478A/en
Application granted granted Critical
Publication of JP6485335B2 publication Critical patent/JP6485335B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To shorten a processing completion time of a task by a logic circuit of a programmable logic device.SOLUTION: An arithmetic processing unit comprises: a processor for executing plural tasks; a programmable logic circuit for forming a logic circuit corresponding to at least a part of plural tasks, in which the constituted logic circuit executes processing of the task; and a constitution control part for, according to processing request of the task, based on a total processing end time of a first logic circuit which has been constituted or whose constitution has been reserved, in the programmable logic circuit and an area of the first logic circuit. calculating a constitution possible time until constitution of plural kinds of second logic circuits corresponding to the task for which processing is required, is allowed, then calculating plural total processing times in which, the constitution possible time is added to a constitution time required for constitution of each of the plural kinds of second logic circuit and a processing time required for each processing, then selecting the second logic circuit requiring a shorter total processing time, then, constituting the selected second logic circuit in the programmable logic circuit.SELECTED DRAWING: Figure 1

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。   The present invention relates to an arithmetic processing device and a control method for the arithmetic processing device.

演算処理回路またはCPU(Central Processing Unit)などのプロセッサ回路と、プログラム可能なロジック回路であるPLD(Programmable Logic Device)とを混載する演算処理装置(CPUチップ)が提案されている。CPUはプログラムの命令をフェッチし実行する。これに対して、PLDは内部のロジック回路をコンフィグレーションデータ(構成データ、またはロジック回路を構成するための設定値)で再構成し、プログラム内の一部の命令またはタスク(例えば演算関数など、以下タスク等と称する)を処理するロジック回路を構成する。それによりPLDの内部に構成されたロジック回路が、タスク等を高速に処理する。たとえば、プログラマが、プログラム内の一部のタスク等をPLDにより処理するよう設定しておくことで、一部のタスク等はPLDにより実行され、残りのタスク等はCPUにより実行される。その結果、CPUチップによるデータ処理を高速化、低消費電力化を図ることができる。   There has been proposed an arithmetic processing device (CPU chip) in which a processor circuit such as an arithmetic processing circuit or a CPU (Central Processing Unit) and a programmable logic circuit (PLD) are mixedly mounted. The CPU fetches and executes program instructions. In contrast, the PLD reconfigures the internal logic circuit with configuration data (configuration data or setting values for configuring the logic circuit), and some instructions or tasks in the program (for example, arithmetic functions, etc.) A logic circuit for processing (hereinafter referred to as a task or the like) is configured. As a result, a logic circuit configured in the PLD processes tasks and the like at high speed. For example, if a programmer sets a part of tasks in the program to be processed by the PLD, some tasks are executed by the PLD, and the remaining tasks are executed by the CPU. As a result, data processing by the CPU chip can be speeded up and power consumption can be reduced.

一方、PLDはコンフィグレーションデータにより所望のロジック回路を構成する。そして、プログラム内のタスク等をPLDで実行するためには、タスク等のコードを高位合成してハードウエア記述言語(HDL)に変換し、そのHDLを論理合成してネットリストに変換し、ネットリストを実現するコンフィグレーションデータに変換する。PLDには、例えば、FPGA(Field Programmable Gate Array)やリコンフィギュラブルLSIなどがある。   On the other hand, the PLD forms a desired logic circuit based on the configuration data. In order to execute tasks in the program with PLD, the task code is synthesized at a high level and converted into a hardware description language (HDL), and the HDL is logically synthesized and converted into a netlist. Convert the configuration data to realize the list. PLDs include, for example, FPGAs (Field Programmable Gate Arrays) and reconfigurable LSIs.

命令コードは抽象度が高く制約条件に依存する複数種類のロジック回路に対応するHDLに変換できる。そして、複数のロジック回路のうちいずれかを選択するPLDについては、以下の特許文献に記載されている。   The instruction code can be converted to HDL corresponding to a plurality of types of logic circuits that are highly abstract and depend on the constraints. A PLD for selecting one of a plurality of logic circuits is described in the following patent documents.

特開2000−252814号公報JP 2000-252814 A 特開2007−179358号公報JP 2007-179358 A

従来のCPUとPLDを混載する演算処理装置は、1つのタスク等に対応するロジック回路をPLD内に構成し、そのタスク等を実行することが行われている。つまり、従来のPLDは、1つのタスク等のロジック回路を構成(コンフィグレーション:configuration)して処理を実行し、その処理が完了した後、新たなタスク等のロジック回路に再構成(リコンフィグレーション:reconfiguration)してその処理を実行するというように、同期してロジック回路の再構成と処理の実行を行う。   In a conventional arithmetic processing unit in which a CPU and a PLD are mixedly mounted, a logic circuit corresponding to one task or the like is configured in the PLD, and the task or the like is executed. In other words, a conventional PLD configures a logic circuit such as one task (configuration) and executes a process. After the process is completed, the logic circuit such as a new task is reconfigured (reconfigured). : Reconfiguration) and execute the process, the logic circuit is reconfigured and the process is executed synchronously.

しかしながら、近年においてPLDでもFPGAの高集積化及び高性能化により、1つのPLDで複数のタスク等を非同期に部分的に再構成し処理を実行することが可能になっている。この場合、複数のタスク等は、異なるプログラム内のタスクであり、異なるプログラムは互いに依存関係がない。この互いに独立関係にある複数のタスクの場合、PLD内に既に構成され実行中のロジック回路の処理が完了する前に、新規のロジック回路が構成される、部分的再構成が行われる。そのため、新規に構成するロジック回路を、単にその時点でのPDL内の再構成可能なスペースの大きさに応じて選択すると、面積が小さいが処理速度は低速のロジック回路が選択された結果、最終的な処理完了時間が遅くなるという課題が発生する。   However, in recent years, even with PLDs, due to the high integration and high performance of FPGAs, it is possible to execute a process by partially reconfiguring a plurality of tasks and the like asynchronously with one PLD. In this case, the plurality of tasks and the like are tasks in different programs, and the different programs are not dependent on each other. In the case of a plurality of tasks that are independent of each other, a partial reconfiguration in which a new logic circuit is configured is performed before the processing of the logic circuit that is already configured and being executed in the PLD is completed. Therefore, when a newly configured logic circuit is selected according to the size of the reconfigurable space in the PDL at that time, a logic circuit with a small area but a low processing speed is selected. This causes a problem that the processing completion time is delayed.

そこで、実施の形態の第1の側面の目的は、命令またはタスクの処理完了時間を短くできる演算処理装置及び演算処理装置の制御方法を提供することにある。   Accordingly, an object of the first aspect of the embodiment is to provide an arithmetic processing device and a control method for the arithmetic processing device that can shorten the processing completion time of an instruction or a task.

開示の第1の側面は、複数のタスクを実行するプロセッサと、前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、より短い総処理時間の第2のロジック回路を選択し前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する構成制御部とを有する、演算処理装置である。   A first aspect of the disclosure includes a processor that executes a plurality of tasks and a logic circuit corresponding to at least a part of the plurality of tasks, and the configured logic circuit executes processing of the tasks Based on the logic circuit and the total processing end time of the configured or reserved configuration of the first logic circuit in the programmable logic circuit and the area of the first logic circuit according to the processing request of the task, The configurable time until each of the plurality of types of second logic circuits corresponding to the task requested to be processed is calculated, and the configuration time required for the configuration of each of the plurality of types of second logic circuits, respectively. A plurality of total processing times obtained by adding the configurable time to the processing time required for the processing of And a configuration control unit constituting the second logic circuit selected by said selecting the second logic circuit in said programmable logic circuit, an arithmetic processing unit.

第1の側面によれば、命令またはタスクの処理完了時間を短くできる。   According to the first aspect, the processing completion time of an instruction or task can be shortened.

本実施の形態における演算処理装置の構成を示す図である。It is a figure which shows the structure of the arithmetic processing unit in this Embodiment. プログラマブルロジック回路(PLD)が複数のロジック回路を非同期に構成することを説明する図である。It is a figure explaining that a programmable logic circuit (PLD) comprises a plurality of logic circuits asynchronously. FPGA内に配置(構成)するロジック回路の性能と面積について説明する図である。It is a figure explaining the performance and area of a logic circuit arranged (configured) in an FPGA. 図3の3つのロジック回路の処理時間を示す図である。It is a figure which shows the processing time of three logic circuits of FIG. 新たなタスクのロジック回路を非同期で配置(構成)する場合の問題点について説明する図である。It is a figure explaining the problem in the case of arranging (composing) the logic circuit of a new task asynchronously. 2つのロジック回路の実行時間と処理量を示す図である。It is a figure which shows the execution time and processing amount of two logic circuits. 本実施の形態における構成制御プログラムによる新たなタスクのロジック回路を選択する例を示す図である。It is a figure which shows the example which selects the logic circuit of the new task by the configuration control program in this Embodiment. タスクXを2つのロジック回路で処理する場合とCPUで処理する3つの実行プランを示す図である。It is a figure which shows the case where the task X is processed with two logic circuits, and three execution plans processed with CPU. 本実施の形態における構成制御プログラムのフローチャート図である。It is a flowchart figure of the configuration control program in this Embodiment. 構成制御プログラムの処理時間予測処理のフローチャート図である。It is a flowchart figure of the processing time prediction process of a configuration control program. 構成可能時間の計算のフローチャート図である。It is a flowchart figure of calculation of configurable time. 図11の回路候補C#がFPGA内に構成(配置)可能か否かの判定処理のフローチャート図である。FIG. 12 is a flowchart of processing for determining whether or not the circuit candidate C # in FIG. 11 can be configured (arranged) in the FPGA. 構成制御プログラムによる各タスクのロジック回路の構成(配置)例1を示す図である。It is a figure which shows the example 1 of a structure (arrangement | positioning) of the logic circuit of each task by a structure control program. 構成制御プログラムによる各タスクのロジック回路の構成(配置)例2を示す図である。It is a figure which shows the example 2 of a structure (arrangement | positioning) of the logic circuit of each task by a structure control program.

図1は、本実施の形態における演算処理装置の構成を示す図である。演算処理装置(CPUチップ)10は、プログラム内の命令またはタスクをフェッチし実行するプロセッサ(またはCPU)11と、外部との入出力処理を行うI/O処理回路14と、外部のメインメモリへのアクセスを制御するメモリアクセス制御回路(MAC)17と、それらを接続するバスBUSとを有する。さらに、演算処理装置10は、プロセッサ11が実行するプログラム内の複数の命令またはタスクの少なくとも一部の命令またはタスク(以下タスク等と称する。)に対応するロジック回路に再構成されるプログラマブルロジック回路(PLD)16と、PLD16を再構成する構成情報(Configuration Data)を記憶する構成情報メモリ12と、PLD16のタスク等に対応するロジック回路の構成、削除と実行を制御する構成制御プログラムを格納するメモリ15とを有する。さらに、PLD16内に構成されたロジック回路の処理時間の実績値を格納する処理時間データベースを記憶するメモリ13を有する。   FIG. 1 is a diagram illustrating a configuration of an arithmetic processing device according to the present embodiment. An arithmetic processing unit (CPU chip) 10 fetches and executes an instruction or task in a program, a processor (or CPU) 11, an I / O processing circuit 14 that performs external input / output processing, and an external main memory A memory access control circuit (MAC) 17 that controls access to the bus and a bus BUS connecting them. Further, the arithmetic processing unit 10 is a programmable logic circuit that is reconfigured into a logic circuit corresponding to at least some instructions or tasks (hereinafter referred to as “tasks”) of a plurality of instructions or tasks in a program executed by the processor 11. (PLD) 16, a configuration information memory 12 that stores configuration information (Configuration Data) for reconfiguring PLD 16, and a configuration control program that controls the configuration, deletion, and execution of the logic circuit corresponding to the tasks of PLD 16, etc. And a memory 15. Further, the PLD 16 has a memory 13 for storing a processing time database for storing actual values of processing times of logic circuits configured in the PLD 16.

図1のPLD16は、例えばフィールドプログラマブルゲートアレイ(FPGA)や再構成可能な回路であり、いずれもコンフィグレーションデータによって内部に所望のロジック回路を構成することができる。   The PLD 16 in FIG. 1 is, for example, a field programmable gate array (FPGA) or a reconfigurable circuit, and any of them can configure a desired logic circuit based on configuration data.

また、PLD16は、プロセッサからのタスク等(関数など)の処理要求に応じて、要求されたタスク等に対応するロジック回路の構成及び実行をすることなく、要求を受け付けた旨の応答をプロセッサに返信する。そして、プロセッサ10が構成制御プログラム15を実行することで構成される構成制御部が、PLD16内にロジック回路を構成し実行し、実行終了後ロジック回路を削除する。   The PLD 16 responds to the processor with a response indicating that the request has been accepted without performing the configuration and execution of the logic circuit corresponding to the requested task in response to the processing request for the task or the like (function or the like) from the processor. Send back. Then, the configuration control unit configured by the processor 10 executing the configuration control program 15 configures and executes a logic circuit in the PLD 16, and deletes the logic circuit after the execution is completed.

プログラム内のタスク等を全てプロセッサ10が実行する場合に比較すると、専用のロジック回路により実行するほうが、処理を高速化でき低消費電力化できる。   Compared with the case where the processor 10 executes all the tasks in the program, the processing can be speeded up and the power consumption can be reduced when the dedicated logic circuit is used.

以下、「命令やタスク、タスク等」を簡単化のために以下単に「タスク」と称する。   Hereinafter, “instructions, tasks, tasks, etc.” are simply referred to as “tasks” for the sake of simplicity.

PLD16は、さらに、複数のタスクを非同期に構成し実行する。すなわち、PLDは、部分的な再構成を動的に行うことができ(動的/部分的再構成)、PLD内に構成したあるタスクのロジック回路の動作を停止することなく、新たなタスクに対応するロジック回路を構成し実行する。この場合、複数のタスクは互いに依存関係はなく、複数のタスクのロジック回路による実行の順番は、互いに依存する関係を有しない。   The PLD 16 further configures and executes a plurality of tasks asynchronously. In other words, the PLD can dynamically perform partial reconfiguration (dynamic / partial reconfiguration), and without stopping the operation of the logic circuit of a certain task configured in the PLD, a new task can be created. Configure and execute the corresponding logic circuit. In this case, the plurality of tasks are not dependent on each other, and the order of execution of the plurality of tasks by the logic circuit does not have a relationship dependent on each other.

図2は、プログラマブルロジック回路(PLD)が複数のロジック回路を非同期に構成することを説明する図である。PLDのうち特にFPGAは、図示されるとおり、行列状に配置された複数の再構成可能な論理ブロックCLBと、論理ブロックCLB間に配置される配線用チャネル(図示せず)と、IOパッド(図示せず)を有する。そして、構成データ(コンフィグレーションデータ)をPLD内にダウンロードして設定することで、論理ブロックCLB内と配線用チャネルの例えば接続構成などが、構成データに対応した構成に設定される。   FIG. 2 is a diagram for explaining that a programmable logic circuit (PLD) configures a plurality of logic circuits asynchronously. Among the PLDs, the FPGA, as illustrated, includes a plurality of reconfigurable logic blocks CLB arranged in a matrix, wiring channels (not shown) arranged between the logic blocks CLB, and IO pads ( (Not shown). Then, by downloading the configuration data (configuration data) into the PLD and setting it, for example, the connection configuration between the logic block CLB and the wiring channel is set to a configuration corresponding to the configuration data.

図2に示した例では、FPGAは4行4列の論理ブロックCLBを有する。まず、初期状態S1では、構成データが設定されておらず、全ての論理ブロックが未構成状態である。そこで、タスクAの処理要求が発生すると、構成制御プログラムが、タスクAに対応するロジック回路の構成データを生成し構成情報メモリ12内に格納する。具体的には、構成制御プログラムは、タスクAの命令コードを高位合成してRTL(Register Transfer Level)などのHDL(Hardware Description Language)に変換し、さらに、HDLを論理合成してネットリストに変換し、ネットリストのロジック回路を実現する構成データを生成する。そして、構成情報メモリ12内に記憶した構成データをFPGA内のラッチ回路に書き込む(設定する)ことでFPGA内に所望のロジック回路が構成される(S2)。その結果、FPGAは、2つの論理ブロックによりタスクAに対応するロジック回路を構成する。FPGAは、プログラムのタスクAに対する入力パラメータを入力し、入力パラメータに基づいて、新たに構成されたタスクAのロジック回路に動作を開始させ、その出力データをプロセッサ11に出力する。   In the example illustrated in FIG. 2, the FPGA includes a 4 × 4 logical block CLB. First, in the initial state S1, no configuration data is set, and all logical blocks are in an unconfigured state. Therefore, when a processing request for task A occurs, the configuration control program generates configuration data of the logic circuit corresponding to task A and stores it in the configuration information memory 12. Specifically, the configuration control program performs high-level synthesis of the task A instruction code and converts it to HDL (Hardware Description Language) such as RTL (Register Transfer Level), and then synthesizes HDL into a netlist by logical synthesis. Then, configuration data for realizing a netlist logic circuit is generated. Then, by writing (setting) the configuration data stored in the configuration information memory 12 to the latch circuit in the FPGA, a desired logic circuit is configured in the FPGA (S2). As a result, the FPGA configures a logic circuit corresponding to task A by two logic blocks. The FPGA inputs an input parameter for the task A of the program, starts the operation of the newly configured logic circuit of the task A based on the input parameter, and outputs the output data to the processor 11.

図2では、次にタスクBの処理要求が発生すると、タスクAのロジック回路の動作が終了するのを待つことなく、構成制御プログラムが、タスクBの構成データをFPGA内に設定しタスクBに対応するロジック回路を構成し、動作を開始させる(S3)。図示されるとおり、工程S3では、タスクBに対応するロジック回路が、タスクAのロジック回路に隣接して6つの論理ブロックで構成されている。   In FIG. 2, when the processing request for task B is next generated, the configuration control program sets the task B configuration data in the FPGA and waits for task B without waiting for the operation of the logic circuit of task A to end. The corresponding logic circuit is configured and the operation is started (S3). As shown in the figure, in step S3, the logic circuit corresponding to task B is composed of six logic blocks adjacent to the logic circuit of task A.

そして、工程S4では、さらにタスクCの処理要求が発生し、構成制御プログラムが、タスクCの構成データをFPGA内に設定し、タスクCに対応するロジック回路を構成する。   In step S4, a processing request for task C is further generated, and the configuration control program sets configuration data for task C in the FPGA to configure a logic circuit corresponding to task C.

次に、工程S5では、タスクBのロジック回路の処理が完了し、構成制御プログラムが、タスクBのロジック回路を削除する。具体的には、構成制御プログラムは、タスクBのロジック回路の構成データの設定をクリアする。その結果、未構成の論理ブロックの面積が増加している。   Next, in step S5, the processing of the logic circuit of task B is completed, and the configuration control program deletes the logic circuit of task B. Specifically, the configuration control program clears the configuration data setting of the logic circuit of task B. As a result, the area of unconfigured logic blocks has increased.

また、工程S6では、新たにタスクDの処理要求が発生し、構成制御プログラムが、タスクDの構成データをFPGA内に設定し、タスクDのロジック回路を構成する。この段階では、タスクA,Cのロジック回路の処理は未完了であり、タスクA,C,Dそれぞれのロジック回路がFPGA内に構成され、同時に動作している。   In step S6, a task D processing request is newly generated, and the configuration control program sets the task D configuration data in the FPGA to configure the task D logic circuit. At this stage, the processing of the logic circuits of tasks A and C is incomplete, and the logic circuits of tasks A, C, and D are configured in the FPGA and operate simultaneously.

このように、FPGA内に非同期で新たな処理要求のタスクのロジック回路が構成され実行されるので、高い集積度のFPGA内の論理ブロックを有効に利用し、高速処理を可能にする。また、FPGA内の演算資源である論理ブロックの空き状況が逐一変化する。   As described above, since a logic circuit for a task of a new processing request is asynchronously configured and executed in the FPGA, a logic block in the highly integrated FPGA is effectively used to enable high-speed processing. In addition, the availability of logical blocks, which are computing resources in the FPGA, changes one by one.

図3は、FPGA内に配置(構成)するロジック回路の性能と面積について説明する図である。C言語などの高級言語によるプログラム内の命令やタスクは抽象度が高いため、同じ命令やタスクから、複数種類のロジック回路に変換可能である。例えば、低いクロック周波数で動作し処理時間が長くなる(処理速度が遅い)が回路面積が小さいロジック回路と、高いクロック周波数で動作し処理時間が短くなる(処理速度が速い)が回路面積が大きいロジック回路などである。   FIG. 3 is a diagram for explaining the performance and area of the logic circuit arranged (configured) in the FPGA. Since instructions and tasks in a program in a high-level language such as C language have a high level of abstraction, the same instructions and tasks can be converted into multiple types of logic circuits. For example, a logic circuit with a small circuit area that operates at a low clock frequency and a long processing time (low processing speed) and a circuit area that operates at a high clock frequency and a short processing time (high processing speed) have a large circuit area. For example, a logic circuit.

これらの異なるロジック回路への変換は、命令やタスクを高位合成するとき設定する制約条件(速度優先(高速処理を優先)または回路面積優先(小面積、省電力優先))に基づいて、異なるHDLに変換することで可能になる。   Conversion to these different logic circuits is based on the constraints set when high-level synthesis of instructions and tasks (speed priority (priority for high-speed processing) or circuit area priority (small area, power saving priority)). It becomes possible by converting to.

図3には、同じタスクに対応する演算Xを実行可能な3つのロジック回路CIR_1, 2, 3が示されている。ロジック回路CIR_1は、パイプライン構成されていない回路構成を有し、但し回路面積は最も小さい。ロジック回路CIR_2は、3ステージを有するパイプライン構成の回路であり、回路面積はロジック回路CIR_1よりも大きい。そして、ロジック回路CIR_3は、10ステージを有するパイプライン構成の回路であり、回路面積は最も大きい。回路面積が大きいほど回路規模が大きく、その分、単位時間当たりの消費電力も大きくなる。   FIG. 3 shows three logic circuits CIR_1, 2, 3 that can execute the operation X corresponding to the same task. The logic circuit CIR_1 has a circuit configuration that is not pipelined, but has the smallest circuit area. The logic circuit CIR_2 is a pipelined circuit having three stages, and the circuit area is larger than that of the logic circuit CIR_1. The logic circuit CIR_3 is a pipelined circuit having 10 stages and has the largest circuit area. The larger the circuit area, the larger the circuit scale, and accordingly, the power consumption per unit time also increases.

図4は、図3の3つのロジック回路の処理時間を示す図である。図4の横軸は各回路の面積を、縦軸は各回路によるタスク処理時間を示す。図示されるとおり、第1のロジック回路CIR_1は、パイプライン構成でないので並列処理を行うことができないので、複数の入力を処理する場合のタスク処理時間が長くなる。一方、第2、第3のロジック回路CIR_2, CIR_3は、パイプライン構成であるため並列処理を行うことができる。そのため、複数の入力を処理する場合、第2のロジック回路CIR_2は第1のロジック回路CIR_1よりもタスク処理時間は短くなり、第3のロジック回路CIR_3はさらに短くなる。このように、ロジック回路内のパイプラインステージ数が多いほど並列処理が可能故、並列処理により処理時間が短くなる。   FIG. 4 is a diagram illustrating processing times of the three logic circuits of FIG. The horizontal axis in FIG. 4 indicates the area of each circuit, and the vertical axis indicates the task processing time by each circuit. As shown in the drawing, the first logic circuit CIR_1 cannot perform parallel processing because it does not have a pipeline configuration, so that the task processing time for processing a plurality of inputs becomes long. On the other hand, since the second and third logic circuits CIR_2 and CIR_3 have a pipeline configuration, they can perform parallel processing. Therefore, when processing a plurality of inputs, the task processing time of the second logic circuit CIR_2 is shorter than that of the first logic circuit CIR_1, and the third logic circuit CIR_3 is further shortened. In this way, parallel processing is possible as the number of pipeline stages in the logic circuit increases, and therefore processing time is shortened by parallel processing.

以上のとおり、回路面積が大きいほど回路規模が大きく単位時間当たりの消費電力が大きくなるが、並列処理を行うことでトータルの処理時間が短くなり、その分、全処理完了までに必要な消費電力はより低くなる可能性がある。   As described above, the larger the circuit area, the larger the circuit scale and the greater the power consumption per unit time. However, the parallel processing reduces the total processing time, and the power consumption required to complete the entire process. Can be lower.

また、第2のロジック回路CIR_2よりも第3のロジック回路CIR_3のほうが、各パイプラインステージ内の回路規模が小さくその遅延時間が短い。そのため、第3のロジック回路CIR_3は第2のロジック回路CIR_2に比較すると、より高速クロックで動作可能である。この点からも単位時間当たりの消費電力が大きいのが理解できる。   In addition, the third logic circuit CIR_3 is smaller in circuit scale in each pipeline stage than the second logic circuit CIR_2, and its delay time is shorter. Therefore, the third logic circuit CIR_3 can be operated with a higher-speed clock than the second logic circuit CIR_2. It can be understood from this point that the power consumption per unit time is large.

図5は、新たなタスクのロジック回路を非同期で配置(構成)する場合の問題点について説明する図である。図3で説明したとおり、同じタスクでも複数種類のロジック回路で処理することができる。したがって、複数種類のロジック回路のうち、最適なロジック回路を選択することで、演算処理装置の処理性能を向上させることができる。   FIG. 5 is a diagram for explaining a problem when the logic circuit of a new task is asynchronously arranged (configured). As described with reference to FIG. 3, the same task can be processed by a plurality of types of logic circuits. Therefore, the processing performance of the arithmetic processing device can be improved by selecting an optimal logic circuit from among a plurality of types of logic circuits.

しかしながら、新たなタスクのロジック回路をFPGA内に配置(構成)する場合、図2で示したとおり、FPGA内の空き領域がその都度異なるので、空き領域が狭い場合は処理速度が速い高性能だが回路面積が大きいロジック回路を配置(構成)させることができない。そのため、処理速度は遅いが回路面積が小さいロジック回路を配置せざるをえない。   However, when a logic circuit for a new task is arranged (configured) in the FPGA, as shown in FIG. 2, the free area in the FPGA changes each time. Therefore, if the free area is small, the processing speed is high. A logic circuit having a large circuit area cannot be arranged (configured). Therefore, a logic circuit having a low processing speed but a small circuit area must be arranged.

図5には、新たなタスクXを処理可能な2つのロジック回路CIR_1、CIR_2のいずれかを、状態S10のFPGAに配置(構成)する処理例が示されている。図示されるとおり、ロジック回路CIR_1は処理速度は低いが回路面積は小さく、ロジック回路CIR_2は処理速度は高いが回路面積は大きい例である。そして、状態S10のFPGAは、6つのロジック回路が既に配置(構成、使用中)済みのため、空き論理ブロックは4つであり、しかも空き領域は単一の矩形形状ではない。   FIG. 5 shows a processing example in which one of two logic circuits CIR_1 and CIR_2 capable of processing a new task X is arranged (configured) in the FPGA in the state S10. As illustrated, the logic circuit CIR_1 has a low processing speed but a small circuit area, and the logic circuit CIR_2 has a high processing speed but a large circuit area. In the FPGA in the state S10, since six logic circuits have already been arranged (configured and used), there are four empty logical blocks, and the empty area is not a single rectangular shape.

そのため、状態S10のFPGAに配置(構成)可能なロジック回路は面積が小さいほうの回路CIR_1である。したがって、状態S11では、ロジック回路CIR_1が配置(構成)されてしまい、タスクXの処理時間は、ロジック回路CIR_2を配置できた場合に比較すると長くなる。   Therefore, the logic circuit that can be arranged (configured) in the FPGA in the state S10 is the circuit CIR_1 having the smaller area. Therefore, in the state S11, the logic circuit CIR_1 is arranged (configured), and the processing time of the task X becomes longer than when the logic circuit CIR_2 can be arranged.

図6は、2つのロジック回路の実行時間と処理量を示す図である。図5の例のように、状態S10で新たなタスクXのために次に配置(構成)する回路をロジック回路CIR_1に選択すると、図6中、CIR_1で示されるとおり、短時間でロジック回路CIR_1の構成データをダウンロードしてFPGA内にロジック回路CIR_1を再構成できるが、処理速度が遅いため、タスクXの処理量に達するまでの時間は長くなる。   FIG. 6 is a diagram illustrating the execution time and the processing amount of the two logic circuits. When the next circuit to be arranged (configured) for the new task X in the state S10 is selected as the logic circuit CIR_1 as in the example of FIG. 5, as shown by CIR_1 in FIG. The logic circuit CIR_1 can be reconfigured in the FPGA by downloading the configuration data, but since the processing speed is slow, the time until the processing amount of the task X is reached becomes long.

一方で、状態S10でタスクXのために配置(構成)する回路をロジック回路CIR_2に選択すると、図6中、CIR_2で示されるとおり、他のタスクのロジック回路の処理が完了してそのロジック回路が削除されるまで待つ必要があるので、ロジック回路CIR_2を配置(構成)するまでの待ち時間と再構成に要する時間の合計はロジック回路CIR_1よりも長い。しかし、ロジック回路CIR_2は処理速度が速いため、タスクXの処理量に達するまでの合計時間は、ロジック回路CIR_1よりも短くなる。   On the other hand, when the circuit to be arranged (configured) for task X in state S10 is selected as logic circuit CIR_2, as shown by CIR_2 in FIG. Therefore, the total of the waiting time until the logic circuit CIR_2 is arranged (configured) and the time required for reconfiguration is longer than that of the logic circuit CIR_1. However, since the processing speed of the logic circuit CIR_2 is high, the total time until the processing amount of the task X is reached is shorter than that of the logic circuit CIR_1.

[本実施の形態のロジック回路の選択方法]
本実施の形態における構成制御プログラムは、以下のような処理を行って、より早く処理が終了するロジック回路を選択してPLD内に配置(構成)する。
[Method for selecting logic circuit of this embodiment]
The configuration control program according to the present embodiment performs the following processing, selects a logic circuit that finishes processing earlier, and places (configures) it in the PLD.

すなわち、構成制御プログラムは、新たなタスクの処理要求に応じて、PLD内に既に構成されているまたは構成することが予約されている受付済みタスクのロジック回路の総処理終了時刻とそのロジック回路の面積とに基づいて、新たなタスクに対応する複数種類のロジック回路それぞれが構成可能となるまでの構成可能時間T#wait(#は複数種類の番号を表す。)を生成(または算出)する。つまり、受付済みタスクのロジック回路の総処理終了時刻毎にそのロジック回路が消去されて空き領域が形成されるので、新たなタスクの複数種類のロジック回路のうち総処理終了時刻それぞれの時点で配置(構成)可能なロジック回路を検出し、配置可能(構成可能)になるまでに待たされる時間、構成可能時間T#waitを求める。これは全ロジック回路それぞれについて求める。   That is, the configuration control program, in response to a new task processing request, determines the total processing end time of the logic circuit of the accepted task that has already been configured in the PLD or reserved to be configured and the logic circuit Based on the area, a configurable time T # wait (# represents a plurality of types of numbers) until each of a plurality of types of logic circuits corresponding to a new task can be generated is generated (or calculated). In other words, since the logic circuit is erased at each total processing end time of the logic circuit of the accepted task and a free area is formed, it is arranged at each time of the total processing end time among the plural types of logic circuits of the new task. A (configurable) logic circuit is detected, and a configurable time T # wait is obtained, which is waited until it can be arranged (configurable). This is obtained for each of all logic circuits.

次に、構成制御プログラムは、新たなタスクの複数種類のロジック回路それぞれの配置(構成)に要する構成時間T#confと、それぞれの処理に要する処理時間T#exeに、構成可能時間T#waitをそれぞれ加算した総処理時間T#totalを生成(または算出)する。そして、構成制御プログラムは、より短い総処理時間のロジック回路を選択し、選択したロジック回路をPLD内に配置(構成)する。望ましくは、最も短い総処理時間のロジック回路を選択する。   Next, the configuration control program adds the configurable time T # wait to the configuration time T # conf required for the placement (configuration) of each of the multiple types of logic circuits of the new task and the processing time T # exe required for each processing. Is generated (or calculated). Then, the configuration control program selects a logic circuit with a shorter total processing time and places (configures) the selected logic circuit in the PLD. Preferably, the logic circuit with the shortest total processing time is selected.

これにより、新たなタスクの処理が完了する時間が最も早くなるロジック回路を選択することができる。   Thereby, it is possible to select a logic circuit having the earliest time for completing the processing of a new task.

図7は、本実施の形態における構成制御プログラムによる新たなタスクのロジック回路を選択する例を示す図である。図7の例は、図5と同様に、状態S10のFPGAに対して新規タスクXの処理依頼があった場合を想定している。そして、構成制御プログラムが、タスクXを高位合成してHDLに変換し更に論理合成してネットリストに変換しさらにネットリストの論理回路を構成するための構成データを生成したとする。つまり、タスクXを処理する2種類のロジック回路CIR_1、CIR_2の構成データが生成されたとする。状態S10ではFPGAには既に6つのロジック回路が構成済みで実行中であり、それらのロジック回路の処理が終了する予測総処理終了時刻が図示されるとおりとする。   FIG. 7 is a diagram showing an example of selecting a logic circuit for a new task by the configuration control program in the present embodiment. The example of FIG. 7 assumes a case where a processing request for a new task X is made to the FPGA in the state S10, as in FIG. Then, it is assumed that the configuration control program performs high-level synthesis of task X, converts it into HDL, further performs logic synthesis, converts it into a net list, and further generates configuration data for configuring a logic circuit of the net list. That is, it is assumed that configuration data of two types of logic circuits CIR_1 and CIR_2 that process task X is generated. In the state S10, six logic circuits have already been configured and are being executed in the FPGA, and the predicted total processing end time at which the processing of these logic circuits ends is as illustrated.

上記の場合、構成制御プログラムは、2つの候補のロジック回路それぞれについて、配置(構成)可能になるまでに待たされる構成可能時間T#waitと、構成データをFPGAにダウンロードし設定するのに要する構成時間T#confと、それぞれの処理に要する処理時間T#exeを算出またはデータベースから抽出する。そして、構成制御プログラムは、2つの候補のロジック回路のうち、上記時間を加算した総処理時間T#totalが短いほうを選択する。   In the above case, the configuration control program configures the configurable time T # wait that is waited until placement (configuration) is possible for each of the two candidate logic circuits, and the configuration required to download and set the configuration data to the FPGA. The time T # conf and the processing time T # exe required for each process are calculated or extracted from the database. Then, the configuration control program selects one of the two candidate logic circuits having a shorter total processing time T # total obtained by adding the above times.

図8は、タスクXを2つのロジック回路で処理する場合とCPUで処理する3つの実行プランを示す図である。図8中、タスクXをロジック回路CIR_1で処理した場合Aと、ロジック回路CIR_2で処理した場合Bと、CPUで実行した場合C、それぞれの構成可能時間、構成時間、処理時間、そして総処理時間が示されている。   FIG. 8 is a diagram illustrating a case where task X is processed by two logic circuits and three execution plans processed by the CPU. In FIG. 8, when task X is processed by the logic circuit CIR_1, A is processed by the logic circuit CIR_2, B is executed by the CPU, and C is configurable time, configuration time, processing time, and total processing time. It is shown.

図7のタスクXの処理依頼が発生したときの状態S10に示されるFPGA内の配置(構成)済且つ実行中の6つのロジック回路の状態と、それぞれのロジック回路の総処理終了時刻とによれば、ロジック回路CIR_1であれば面積が小さいので、構成可能時間(構成するまでの待ち時間)は0secである。また、ロジック回路CIR_1の構成時間と処理時間と総処理時間は図8に示されるとおりである。   Depending on the state of the six logic circuits that have been arranged (configured) and are being executed in the FPGA shown in state S10 when the processing request for task X in FIG. 7 occurs, and the total processing end time of each logic circuit For example, since the area is small in the case of the logic circuit CIR_1, the configurable time (waiting time until configuration) is 0 sec. The configuration time, processing time, and total processing time of the logic circuit CIR_1 are as shown in FIG.

一方、ロジック回路CIR_2は面積が大きいので、予測総処理終了時刻が500nsのロジック回路が処理を終了するまで待てば構成可能になるので、構成可能時間は500nsである。そして、ロジック回路CIR_2の構成時間と処理時間と総処理時間は図8に示されるとおりである。ロジック回路CIR_2は、ロジック回路CIR_1よりも面積が大きいので構成時間がより長いが、処理時間はより短く、総処理時間はより短い。   On the other hand, since the logic circuit CIR_2 has a large area, the logic circuit CIR_2 has a configurable time of 500 ns because it can be configured by waiting until the logic circuit with the predicted total processing end time of 500 ns finishes the processing. The configuration time, processing time, and total processing time of the logic circuit CIR_2 are as shown in FIG. The logic circuit CIR_2 has a longer area because it has a larger area than the logic circuit CIR_1, but the processing time is shorter and the total processing time is shorter.

さらに、タスクXをFPGA内のロジック回路で処理するのではなくCPUにより実行する場合は、構成可能時間と構成時間は共に0secである。但し、CPUによる実行のため2つのロジック回路より処理時間は長く、総処理時間も長くなっている。   Further, when the task X is executed by the CPU rather than being processed by the logic circuit in the FPGA, both the configurable time and the configuration time are 0 sec. However, the processing time is longer than the two logic circuits due to execution by the CPU, and the total processing time is also longer.

そこで、構成制御プログラムは、図8の表に示されたロジック回路CIR_1, CIR_2の総処理時間に基づいて、総処理時間がより短いロジック回路CIR_2を選択し、FPGA内に配置(構成)する予約状態に登録する。   Therefore, the configuration control program selects a logic circuit CIR_2 with a shorter total processing time based on the total processing time of the logic circuits CIR_1 and CIR_2 shown in the table of FIG. 8, and places (configures) the reservation in the FPGA. Register to state.

図9は、本実施の形態における構成制御プログラムのフローチャート図である。制御構成プログラムは、CPUから新規タスクの処理依頼を受信すると(S20のYES)、新規タスク構成・実行処理を行う(S21)。   FIG. 9 is a flowchart of the configuration control program in the present embodiment. When receiving a new task processing request from the CPU (YES in S20), the control configuration program performs new task configuration / execution processing (S21).

新規タスク構成・実行処理S21は、図9の右側に示されている。構成制御プログラムは、まず、新規タスクに対し高位合成等を行い、新規タスクを処理可能な複数のロジック回路C#(#=1〜n)の構成データを生成し、構成情報メモリ12に書き込む(S30)。   The new task configuration / execution process S21 is shown on the right side of FIG. First, the configuration control program performs high-level synthesis or the like on the new task, generates configuration data of a plurality of logic circuits C # (# = 1 to n) that can process the new task, and writes the configuration data to the configuration information memory 12 (S30). ).

次に、構成制御プログラムは、各ロジック回路について、構成データをPLDに設定してロジック回路を構成するのに要する回路構成時間T#confと、ロジック回路の処理時間T#exeとを算出する(S31)。これらの時間は、過去にFPGA内に構成された回路の実績に基づいて算出される。具体的な計算例については後述する。   Next, the configuration control program calculates a circuit configuration time T # conf and a logic circuit processing time T # exe required to configure the logic circuit by setting the configuration data in the PLD for each logic circuit ( S31). These times are calculated based on the performance of circuits configured in the FPGA in the past. A specific calculation example will be described later.

さらに、構成制御プログラムは、各ロジック回路について、構成可能になるまで待たされる時間である構成可能時間T#waitを算出する(S32)。構成可能時間T#waitは、FPGA内に構成済みまたは構成予約済みのロジック回路の予測される総処理終了時刻とそれらロジック回路の面積と位置に基づいて、算出される。具体的な計算例については後述する。   Further, the configuration control program calculates a configurable time T # wait, which is a time waited until it becomes configurable for each logic circuit (S32). The configurable time T # wait is calculated based on the predicted total processing end time of the logic circuits configured or reserved for configuration in the FPGA and the areas and positions of the logic circuits. A specific calculation example will be described later.

そして、構成制御プログラムは、各ロジック回路の総処理時間T#totalを以下のとおり算出する(S33)
総処理時間T#total = T#wait + T#conf + T#exe
Then, the configuration control program calculates the total processing time T # total of each logic circuit as follows (S33)
Total processing time T # total = T # wait + T # conf + T # exe

さらに、構成制御プログラムは、上記の複数のロジック回路の総処理時間T#totalが最小のものを選択する。そして、現在時刻に、選択した最小の総処理時間T#totalを次のとおり加算して、総処理終了時刻(予測総処理終了時刻)T#total_endを算出し、メモリに記憶する(S34)。
総処理終了時刻T#total_end = 現在時刻 + T#total(最小値)
この総処理終了時刻T#total_endは、後で構成可能時間T#waitを算出する際に参照されるので、メモリに記憶しておく。
Further, the configuration control program selects the one having the minimum total processing time T # total for the plurality of logic circuits. Then, the selected minimum total processing time T # total is added to the current time as follows to calculate the total processing end time (predicted total processing end time) T # total_end and store it in the memory (S34).
Total processing end time T # total_end = current time + T # total (minimum value)
Since this total processing end time T # total_end is referred to later when the configurable time T # wait is calculated, it is stored in the memory.

以上の処理で新たなタスクを処理するロジック回路が選択され、そのロジック回路をFPGA内に配置(構成)する時刻(現在時刻+T#wait)が決定し、そのロジック回路の処理が完了する時刻(総処理終了時刻)T#total_endが算出される。   The logic circuit that processes a new task is selected by the above processing, the time (current time + T # wait) at which the logic circuit is arranged (configured) in the FPGA is determined, and the time when the processing of the logic circuit is completed ( Total processing end time) T # total_end is calculated.

次に、構成制御プログラムは、選択されたロジック回路Cxが現時点で構成(配置)可能か否か判定する(S35)。この判定では、構成可能時間Tx_wait=0の場合に構成可能と判定される。構成可能な場合(S35のYES)、ロジック回路CxをFPGA内に構成する(S37)。一方、構成可能でない場合(構成可能時間Tx_waitが0でない場合)(S35のNO)、ロジック回路Cxの構成を予約する(S36)。構成の予約では、構成する位置と面積の情報や構成する予約時刻などとともに、ロジック回路Cxが予約行列に記憶される。   Next, the configuration control program determines whether or not the selected logic circuit Cx can be configured (arranged) at the present time (S35). In this determination, it is determined that configuration is possible when the configurable time Tx_wait = 0. If configurable (YES in S35), the logic circuit Cx is configured in the FPGA (S37). On the other hand, when the configuration is not possible (when the configurable time Tx_wait is not 0) (NO in S35), the configuration of the logic circuit Cx is reserved (S36). In the configuration reservation, the logic circuit Cx is stored in the reservation matrix together with the information on the configuration position and area, the configuration reservation time, and the like.

構成制御プログラムは、構成することを予約されたロジック回路について、FPGA内のロジック回路の処理が完了するタイミング毎に構成(配置)可能な否かを判定する(S35)。この判定では、構成可能時間Tx_waitが経過しそのロジック回路をPLDに構成できるか否かが判定される。やがて予約中のロジック回路が構成可能になると(S35のYES)、構成制御プログラムは、予約されていたロジック回路CxをFPGA内の予約位置に構成する(S37)。   The configuration control program determines whether or not the logic circuit reserved to be configured can be configured (arranged) at every timing when processing of the logic circuit in the FPGA is completed (S35). In this determination, it is determined whether or not the configurable time Tx_wait has elapsed and the logic circuit can be configured as a PLD. When the reserved logic circuit becomes configurable (YES in S35), the configuration control program configures the reserved logic circuit Cx in the reserved position in the FPGA (S37).

構成制御プログラムは、ロジック回路CxをFPGA内に構成したとき、工程S34で記憶済みの総処理終了時刻Tx_total_endを、現在時刻にロジック回路の処理時間Tx_exeを加算した時刻に更新する(S37)。この更新処理は、構成予約された場合、予測した構成可能時間Tx_waitと実際に待たされた時間とが乖離している場合があるため、ロジック回路Cxの総処理終了時刻の精度を高めるために行われる。   When the logic circuit Cx is configured in the FPGA, the configuration control program updates the total processing end time Tx_total_end stored in step S34 to a time obtained by adding the logic circuit processing time Tx_exe to the current time (S37). This update process may be performed in order to improve the accuracy of the total process end time of the logic circuit Cx because the predicted configurable time Tx_wait and the actually waited time may be different when the configuration is reserved. Is called.

そして、構成制御プログラムは、構成したロジック回路Cxが処理を実行し実行が完了すると、その処理時間Tx_exeの実績値を処理時間データベースのメモリ13に記憶する(S38)。処理時間の実績値は、ロジック回路の処理時間を見積もるときに参照される。   When the configured logic circuit Cx executes the process and the execution is completed, the configuration control program stores the actual value of the processing time Tx_exe in the memory 13 of the processing time database (S38). The actual processing time value is referred to when the processing time of the logic circuit is estimated.

以上のとおり、構成制御プログラムは、新規タスクの処理要求を受け付けるたびに、その新規タスクを処理可能な複数のロジック回路のうち、総処理時間T#totalが最も短いロジック回路を選択し、その構成可能時刻(現在時刻+構成可能時間T#wait)、総処理終了時刻T#total_endをメモリに記憶しておく。また、ロジック回路が終了した時点で実際に要した処理時間T#exeの実績値も処理時間データベース内に記憶する。   As described above, every time a processing request for a new task is received, the configuration control program selects a logic circuit having the shortest total processing time T # total from among a plurality of logic circuits capable of processing the new task, The possible time (current time + configurable time T # wait) and the total processing end time T # total_end are stored in the memory. Further, the actual value of the processing time T # exe actually required when the logic circuit is completed is also stored in the processing time database.

[処理時間の計算方法]
図10は、構成制御プログラムの処理時間予測処理のフローチャート図である。構成制御プログラムは、タスクを処理するロジック回路の平均処理時間μを以下の通り計算する(S40)。
μ=Tconst+L(引数値)
ここで、Tconstは固定処理時間であり、高位合成時にタスクの内容に応じて予測される時間か、過去の同じタスクの処理時間の平均値である。また、L(x)は、タスクの引数xに応じた処理時間の変動に対応する。タスクの引数xで処理量が変動するのでその変動時間に対応する。
[Calculation method of processing time]
FIG. 10 is a flowchart of the processing time prediction process of the configuration control program. The configuration control program calculates the average processing time μ of the logic circuit that processes the task as follows (S40).
μ = Tconst + L (argument value)
Here, Tconst is a fixed processing time, which is a time predicted according to the content of the task at the time of high-level synthesis or an average value of processing times of the same task in the past. L (x) corresponds to a change in processing time according to the task argument x. Since the processing amount varies depending on the task argument x, it corresponds to the variation time.

例えば、処理量に影響する引数の例は、処理が関数F(x,y)で、繰り返し回数が引数xである一重ループと、繰り返し回数が引数xと引数yの二重ループを有する場合、以下の遅延時間が生じる。
L(x,y)=c0*x + c1*x*y
C0, C1は係数である。
For example, an example of an argument that affects the processing amount is a function F (x, y), a single loop whose number of iterations is an argument x, and a double loop whose number of iterations is an argument x and an argument y The following delay time occurs.
L (x, y) = c0 * x + c1 * x * y
C0 and C1 are coefficients.

また、上記の平均処理時間μは、処理の重要度に応じてメモリアクセスの優先順位が設定される場合には、その重要度Cimpの係数を乗じて、以下のように変形させてもよい。
μ=Cimp *{Tconst + L(引数値)}
In addition, when the memory access priority is set according to the importance of processing, the above average processing time μ may be modified as follows by multiplying by the coefficient of the importance Cimp.
μ = Cimp * {Tconst + L (argument value)}

さらに、構成制御プログラムは、過去の同じタスクの実行結果から処理時間の分散の度合いである標準偏差σを求める(S41)。   Further, the configuration control program obtains a standard deviation σ, which is a degree of dispersion of processing time, from the execution result of the same task in the past (S41).

次に、構成制御プログラムは、外乱による処理時間のブレ値Envを次のとおり計算する(S42)。
Env = T_fpga*E0 + P_fpga*E1
T_fpgaは、FPGAの温度Tに依存する処理時間のぶれ値であり、P_fpgaは、FPGAの消費電力Pに依存する処理時間のぶれ値である。FPGAの温度が高くなると処理速度が変化し、消費電力が上がると処理速度が変化するので、そのぶれ値を処理時間に反映させるのが望ましい。E0, E1は係数または重み値である。
Next, the configuration control program calculates the shake value Env of the processing time due to disturbance as follows (S42).
Env = T_fpga * E0 + P_fpga * E1
T_fpga is a fluctuation value of the processing time depending on the temperature T of the FPGA, and P_fpga is a fluctuation value of the processing time depending on the power consumption P of the FPGA. Since the processing speed changes as the FPGA temperature rises, and the processing speed changes as the power consumption increases, it is desirable to reflect the shake value in the processing time. E0 and E1 are coefficients or weight values.

上記以外にも、FPGAの動作周波数Fに依存するぶれ値F_fpgaを追加してもよい。動作周波数Fが上がれば処理時間は短くなる。さらに、回路の面積Sに依存するぶれ値S_fpgaを追加してもよい。回路の面積Sが大きいほど並列化処理による処理時間は短くなる。   In addition to the above, a shake value F_fpga depending on the operating frequency F of the FPGA may be added. If the operating frequency F is increased, the processing time is shortened. Further, a shake value S_fpga depending on the circuit area S may be added. The larger the circuit area S, the shorter the processing time for parallel processing.

例えば、FPGAの動作周波数F_fpgaが基準周波数F_refに対してどの程度高いかまたは低いかにより、処理時間を上下させて調整するのが望ましい。例えば、以下のとおりである。
Env = μ*{(F_ref-F_fpga)/F_ref}*Ct
ここで、Ctは変換係数または重み値である。F_fpga>F_refの場合はEvnが負の値になり処理時間は短くなり、逆の場合はEvnが正の値になり処理時間は長くなる。平均値μに両周波数の差の割合を乗じた分だけ、処理時間が長くなったり短くなったりする。
For example, it is desirable to adjust the processing time up and down depending on how high or low the FPGA operating frequency F_fpga is relative to the reference frequency F_ref. For example, it is as follows.
Env = μ * {(F_ref-F_fpga) / F_ref} * Ct
Here, Ct is a conversion coefficient or a weight value. When F_fpga> F_ref, Evn becomes a negative value and the processing time is shortened. In the opposite case, Evn becomes a positive value and the processing time becomes longer. The processing time becomes longer or shorter by the average value μ multiplied by the ratio of the difference between both frequencies.

そして、最後に、構成制御プログラムは、タスクの処理をするロジック回路の処理時間T#exeを以下のとおり算出する(S43)。
T#exe = μ + W0*σ*rand + W1*Env
ここで、W0,W1は重み付け係数(W0,W1=0〜1)、randは標準正規乱数である。すなわち、標準正規乱数randは分布が正規分布になる乱数であり、標準正規乱数randに過去の処理時間の分散度合いである標準偏差σを乗じることで、毎回のロジック回路の処理時間のランダムな変動を加えることができる。
Finally, the configuration control program calculates the processing time T # exe of the logic circuit that processes the task as follows (S43).
T # exe = μ + W0 * σ * rand + W1 * Env
Here, W0 and W1 are weighting coefficients (W0, W1 = 0 to 1), and rand is a standard normal random number. In other words, the standard normal random number rand is a random number whose distribution is a normal distribution. By multiplying the standard normal random number rand by the standard deviation σ, which is the degree of dispersion of the past processing time, random fluctuations in the processing time of the logic circuit each time Can be added.

[処理時間の計算例1]
第1の例は、固定パケットの送信を行う関数send()であり、過去の処理時間の履歴が以下のとおりとする。
1回目:処理時間1105 ns
2回目:処理時間1320 ns
3回目:処理時間1190 ns
[Processing time calculation example 1]
The first example is a function send () for transmitting a fixed packet, and the history of past processing times is as follows.
1st: Processing time 1105 ns
Second time: Processing time 1320 ns
3rd: Processing time 1190 ns

そこで、処理時間の導出方法は以下のとおりである。まず、過去の処理時間の履歴から処理時間がランダムであると仮定して、平均値Tconstと標準偏差σを以下のとおり算出する。
Tconst = 1205 ns
σ = 88.4 ns
Therefore, the processing time derivation method is as follows. First, assuming that the processing time is random from the history of past processing times, the average value Tconst and the standard deviation σ are calculated as follows.
Tconst = 1205 ns
σ = 88.4 ns

また、ランダム要因が支配的であるので、ランダム要因の係数をW0=1.0とする。また、引数がないのでL(引数値)=0とする。さらに、外乱による雑音Env、W1については、以下のように仮定する。
Env = Tconst * {(250MHx-F_fpga)/250MHx}
= 1205 ns * {(250MHx-F_fpga)/250MHx}
W1 = 0.7
Since random factors are dominant, the coefficient of random factors is set to W0 = 1.0. Since there is no argument, L (argument value) = 0. Further, the noises Env and W1 due to disturbance are assumed as follows.
Env = Tconst * {(250MHx-F_fpga) / 250MHx}
= 1205 ns * {(250MHx-F_fpga) / 250MHx}
W1 = 0.7

その結果、第1例の処理時間T#exeは、以下の通り算出される。
T#exe = Tconst + W0*σ*rand + W1*Env
= 1205 ns + W1*1205 ns * {(250MHx-F_fpga)/250MHx} + W0*σ*rand
= 1205 ns[1+0.7{(250-F_fpga)/250}] + 88.4 ns*rand
As a result, the processing time T # exe of the first example is calculated as follows.
T # exe = Tconst + W0 * σ * rand + W1 * Env
= 1205 ns + W1 * 1205 ns * {(250MHx-F_fpga) / 250MHx} + W0 * σ * rand
= 1205 ns [1 + 0.7 {(250-F_fpga) / 250}] + 88.4 ns * rand

[処理時間の計算例2]
第2の例は、関数var(sizex, sizey, *image)である。この関数は、画素数がsizex * sizeyの入力画像に対して、4×4画素毎の画素値の分散値をメモリRAMに出力する関数であり、処理量が引数sizex * sizeyに比例する。*imageは分散値を求める画像フィルタのポインタを意味する。
[Processing time calculation example 2]
The second example is a function var (sizex, sizey, * image). This function is a function for outputting a variance value of pixel values for every 4 × 4 pixels to the memory RAM for an input image having the number of pixels of sizex * sizey, and the processing amount is proportional to the argument sizex * sizey. * image means the pointer of the image filter for obtaining the variance value.

そこで、過去の処理の履歴が以下のとおりだったと仮定する。
1回目:引数(256, 256, *ptr)、処理時間1200 ps
2回目:引数(64, 64, *ptr)、処理時間900 ps
Therefore, it is assumed that the history of past processing is as follows.
1st: Argument (256, 256, * ptr), processing time 1200 ps
2nd: Argument (64, 64, * ptr), processing time 900 ps

上記の場合の処理時間の導出方法は、以下のとおりである。すなわち、この関数にはランダムな要因がないので、ランダムな項の係数W0をW0=0とする。   The method for deriving the processing time in the above case is as follows. That is, since this function has no random factor, the coefficient W0 of the random term is set to W0 = 0.

さらに、平均値に相当する部分μ=Tconst + L(*)を以下のような一次関数と仮定する。
μ = A * sizex * sizey + Tconst
つまり、L(*)=A * sizex * sizeyと見なしている。Aは係数である。
Further, it is assumed that a portion μ = Tconst + L (*) corresponding to the average value is a linear function as follows.
μ = A * sizex * sizey + Tconst
That is, L (*) = A * sizex * sizey is considered. A is a coefficient.

この一次関数に上記の過去の履歴の値を代入して連立方程式を解くと、AとTconstが以下のとおり求められる。
A = 0.184 [ps/pel]
Tconst = 146.2 ps
ここで、pelは画素(pixel)を意味する。
Substituting the above history values into this linear function and solving the simultaneous equations, A and Tconst are obtained as follows.
A = 0.184 [ps / pel]
Tconst = 146.2 ps
Here, pel means a pixel.

また、外乱による変動要因のEnvとその係数W1を以下のように仮定する。
Env = F(RAM使用量)
W1 = 0.1
ここで、RAM使用量が多いほどRAMの空き領域が少なくなり、処理時間は長くなるので、その変動要因が上記のEnvに反映されている。
Also, assume that the fluctuation factor Env and its coefficient W1 due to disturbance are as follows.
Env = F (RAM usage)
W1 = 0.1
Here, as the RAM usage amount increases, the RAM free space decreases and the processing time increases, and the variation factor is reflected in the above-described Env.

この結果、処理時間T#exeは、以下のとおりになる。
T#exe = (sizex * sizey * 0.184) + 146.2 + 0.1*F(RAM使用量)
As a result, the processing time T # exe is as follows.
T # exe = (sizex * sizey * 0.184) + 146.2 + 0.1 * F (RAM usage)

[構成可能時間の計算方法]
図11は、構成可能時間の計算のフローチャート図である。以下、構成可能時間T#waitの計算方法について説明する。構成可能時間T#waitは、複数のロジック回路の候補C#それぞれが、最も早くFPGA内に構成(配置)することができる時間である。また、FPGA内の空き領域は、発生済みのタスクのロジック回路が動作を終了した時刻(総処理終了時刻T#total_end)毎に変化するので、構成制御プログラムは、その変化する空き領域に基づいて候補C#を構成(配置)できるか否か判定する。
[Calculation method of configurable time]
FIG. 11 is a flowchart of the configurable time calculation. Hereinafter, a method for calculating the configurable time T # wait will be described. The configurable time T # wait is the time that each of the plurality of logic circuit candidates C # can be configured (arranged) in the FPGA earliest. In addition, since the free space in the FPGA changes every time when the logic circuit of the task that has occurred finishes the operation (total processing end time T # total_end), the configuration control program is based on the changing free space. It is determined whether or not the candidate C # can be configured (arranged).

まず、新たなタスクを処理する全てのロジック回路の候補C#それぞれについて、工程S50〜S56を繰り返す。   First, Steps S50 to S56 are repeated for each of all logic circuit candidates C # for processing a new task.

さらに、各ロジック回路の候補C#について、発生済みの全タスクのロジック回路の総処理終了時刻T#_total_endの最も早いものから順に、工程S51〜S55を繰り返す。より詳しく言うと、現在時刻(T#_total_end=0)を最初に、その次から総処理終了時刻T#_total_endの最も早いものから順に、工程S51〜S55を繰り返す(S51)。   Further, for each logic circuit candidate C #, steps S51 to S55 are repeated in order from the earliest of the total processing end time T # _total_end of the generated logic circuits of all tasks. More specifically, steps S51 to S55 are repeated starting with the current time (T # _total_end = 0) first, and starting with the earliest total processing end time T # _total_end (S51).

前述のとおり、これらの総処理終了時刻毎に、FPGA内の構成されたロジック回路の状況が変化するので、その変化する全てのタイミングで、FPGA内の実行中の全タスクのロジック回路の面積と位置に基づく空き領域に、新タスクの回路候補C#が構成(配置)可能か否かを判定する(S52)。この判定には、各総処理終了時刻でのFPGA内の空き領域と、回路候補C#が構成(配置)される期間中(T#conf+T#exe)のFPGA内の空き領域の両方が、回路候補C#の面積以上であることが必要である。   As described above, the status of the logic circuit configured in the FPGA changes at each of these total processing end times, so the area of the logic circuit of all the tasks being executed in the FPGA is changed at all timings that change. It is determined whether or not the circuit candidate C # of the new task can be configured (arranged) in the empty area based on the position (S52). For this determination, both the free space in the FPGA at each total processing end time and the free space in the FPGA during the period in which the circuit candidate C # is configured (arranged) (T # conf + T # exe) The area needs to be larger than the area of the circuit candidate C #.

そして、回路候補C#が構成(配置)可能な場合は、その回路候補C#が構成までに待たされる構成可能時間T#waitは、判定対象の総処理終了時刻と現在時刻との差であるので、以下のとおり求められる。
T#wait = 総処理終了時刻T#_total_end - 現在時刻
When the circuit candidate C # can be configured (arranged), the configurable time T # wait that the circuit candidate C # waits until the configuration is the difference between the total processing end time to be determined and the current time. It is calculated as follows.
T # wait = total processing end time T # _total_end-current time

上記の工程S51〜S55が、回路候補C#が構成可能になるまで繰り返され(S55)、さらに、全ての回路候補C#に対して繰り返される(S56)。   The above steps S51 to S55 are repeated until the circuit candidate C # can be configured (S55), and further repeated for all circuit candidates C # (S56).

図12は、図11の回路候補C#がFPGA内に構成(配置)可能か否かの判定処理のフローチャート図である。図12は、図11の工程S53を2つの工程S53_1, S53_2で示す。構成制御プログラムは、総処理終了時刻T#total_endでのFPGA内の空き領域に新規の候補C#を構成(配置)可能か否か判定する(S53_1)。この判定では、構成制御プログラムは、総処理終了時刻T#total_endで処理終了するするロジック回路の削除と、同じ総処理終了時刻T#total_endで新たに構成される予約中のロジック回路の追加を考慮して、空き領域とその形状を算出し、その空き領域に新規の候補C#を構成可能か否かを判定する。   FIG. 12 is a flowchart of a process for determining whether or not the circuit candidate C # in FIG. 11 can be configured (arranged) in the FPGA. FIG. 12 shows step S53 of FIG. 11 as two steps S53_1 and S53_2. The configuration control program determines whether or not a new candidate C # can be configured (arranged) in an empty area in the FPGA at the total processing end time T # total_end (S53_1). In this determination, the configuration control program considers the deletion of the logic circuit that ends at the total processing end time T # total_end and the addition of the reserved logic circuit that is newly configured at the same total processing end time T # total_end. Then, the empty area and its shape are calculated, and it is determined whether or not a new candidate C # can be configured in the empty area.

さらに、S53_1でYESの場合、構成制御プログラムは、新規の回路候補C#の構成時間と処理時間の合計T#cnf+T#exeの期間中、予約中の回路Cが構成(配置)されたとしても、新規の回路候補C#が構成可能か否かを判定する(S53_2)。すなわち、予約中の回路Cが今後配置されても、新規候補C#の構成状態を維持できる必要がある。   Furthermore, if YES in S53_1, the configuration control program assumes that the reserved circuit C has been configured (arranged) during the total time T # cnf + T # exe of the configuration time and processing time of the new circuit candidate C #. Also, it is determined whether or not a new circuit candidate C # can be configured (S53_2). That is, it is necessary to maintain the configuration state of the new candidate C # even if the reserved circuit C is arranged in the future.

[ロジック回路の構成(配置)例1]
図13は、前述の構成制御プログラムによる各タスクのロジック回路の構成(配置)例1を示す図である。この例1では、プロセッサから4つの新規タスクTA0-TA3が順番に要求される。図13中、横軸は時刻を示す。
[Logic circuit configuration (arrangement) example 1]
FIG. 13 is a diagram showing a configuration (arrangement) example 1 of the logic circuit of each task by the above-described configuration control program. In Example 1, four new tasks TA0 to TA3 are requested in order from the processor. In FIG. 13, the horizontal axis indicates time.

最初に時刻450nsで新規タスクTA0が要求される。構成制御プログラムは、FPGA内にはなにもロジック回路が構成されていないため、新規タスクTA0の回路候補C#のうち最適な(総処理時間T#totalが最速の)回路C0を選択し、FPGA内に構成(配置)し、その回路動作を開始させる。この回路C0の総処理時間と総処理終了時刻は以下のとおりとする。
総処理時間T0_total=1950ns
総処理終了時刻T0_total_end=2400ns
First, a new task TA0 is requested at time 450ns. Since no logic circuit is configured in the FPGA, the configuration control program selects the optimal circuit C0 (the fastest total processing time T # total) from among the circuit candidates C # for the new task TA0, and the FPGA The circuit operation is started. The total processing time and total processing end time of the circuit C0 are as follows.
Total processing time T0_total = 1950ns
Total processing end time T0_total_end = 2400ns

次に、時刻720nsで新規タスクTA1が要求される。構成制御プログラムは、FPGA内の空き領域に配置可能な新規タスクTA1の回路候補C#のうち最適な(総処理時間T#totalが最速の)回路C1を選択する。この時刻720nsでは選択した回路C1を構成可能であるので、構成制御プログラムは、FPGA内に構成(配置)し、その回路動作を開始させる。この回路C1の総処理時間と総処理終了時刻は以下のとおりとする。
総処理時間T1_total=2680ns
総処理終了時刻T1_total_end=3400ns
Next, a new task TA1 is requested at time 720ns. The configuration control program selects the optimum circuit C1 (the fastest total processing time T # total) from among the circuit candidates C # of the new task TA1 that can be placed in an empty area in the FPGA. Since the selected circuit C1 can be configured at this time 720 ns, the configuration control program configures (arranges) the FPGA and starts its circuit operation. The total processing time and total processing end time of the circuit C1 are as follows.
Total processing time T1_total = 2680ns
Total processing end time T1_total_end = 3400ns

次に、時刻1500nsで新規タスクTA2が要求される。構成制御プログラムは、FPGA内の空き領域に配置可能な新規タスクTA2の回路候補C#のうち最適な回路C2を選択したが、現時刻1500nsでは回路C2を構成(配置)できず、回路C1が処理終了後に構成可能になるため、構成予約状態にする。この回路C2の構成可能時間、総処理時間、総処理終了時刻は以下のとおりである。
構成可能時間T2wait=900ns
総処理時間t2_total=500ns
総処理終了時刻T2_total_end=2900ns
Next, a new task TA2 is requested at time 1500ns. The configuration control program selected the optimal circuit C2 from among the circuit candidates C # of the new task TA2 that can be placed in an empty area in the FPGA. Since it becomes configurable after completion, it is in a configuration reservation state. The configurable time, total processing time, and total processing end time of the circuit C2 are as follows.
Configurable time T2wait = 900ns
Total processing time t2_total = 500ns
Total processing end time T2_total_end = 2900ns

最後に、時刻2100nsで新規タスクTA3が要求される。構成制御プログラムは、FPGA内の空き領域に配置可能な新規タスクTA3の回路候補C#のうち最適な回路C3を選択したが、現時刻では回路C3を構成(配置)できず、回路C2が処理終了後に構成可能になるので、構成予約状態にする。この回路C3の構成可能時間、総処理時間、総処理終了時刻は以下のとおりである。
構成可能時間T2wait=800ns
総処理時間t2_total=1000ns
総処理終了時刻T2_total_end=3900ns
Finally, a new task TA3 is requested at time 2100ns. The configuration control program selected the optimal circuit C3 from among the circuit candidates C # for the new task TA3 that can be placed in an empty area in the FPGA. Since it becomes configurable later, the configuration reservation state is set. The configurable time, total processing time, and total processing end time of the circuit C3 are as follows.
Configurable time T2wait = 800ns
Total processing time t2_total = 1000ns
Total processing end time T2_total_end = 3900ns

上記のタスクTA2の回路C2は回路C1が終了する時刻2400nsでFPGA内に構成され、タスクTA3の回路C3は回路C2が終了する時刻2900nsでFPGA内に構成される。この例1では、タスクの発生順に回路がFPGA内に構成されている。   The circuit C2 of the task TA2 is configured in the FPGA at the time 2400ns when the circuit C1 ends, and the circuit C3 of the task TA3 is configured in the FPGA at the time 2900ns when the circuit C2 ends. In Example 1, circuits are configured in the FPGA in the order of task generation.

[ロジック回路の構成(配置)例2]
図14は、前述の構成制御プログラムによる各タスクのロジック回路の構成(配置)例2を示す図である。この例2でも、4つの新規タスクTA0-TA3が順番に要求される。そして、例2では、新規タスクT0, T1, T2の回路C0, C1, C2の構成(配置)は例1と同じであるが、新規タスクTA3の回路C3を構成(配置)するタイミングが例1と異なる。
[Logic circuit configuration (arrangement) example 2]
FIG. 14 is a diagram showing a configuration (arrangement) example 2 of the logic circuit of each task by the above-described configuration control program. Also in this example 2, four new tasks TA0-TA3 are requested in order. In Example 2, the configurations (arrangements) of the circuits C0, C1, C2 of the new tasks T0, T1, T2 are the same as in Example 1, but the timing of configuring (arranging) the circuit C3 of the new task TA3 is Example 1. And different.

新規タスクTA0, TA1, TA2については、例1と同じである。   New tasks TA0, TA1, and TA2 are the same as in Example 1.

最後に、時刻2100nsで新規タスクTA3が要求される。構成制御プログラムは、FPGA内の空き領域に配置可能な新規タスクTA3の回路候補C#のうち最適な回路C3を選択したが、例2の回路C3は、例1の回路C3より面積が小さいとする。   Finally, a new task TA3 is requested at time 2100ns. The configuration control program has selected the optimum circuit C3 from among the circuit candidates C # of the new task TA3 that can be placed in an empty area in the FPGA, but the circuit C3 of Example 2 has a smaller area than the circuit C3 of Example 1. .

構成制御プログラムは、回路C3が新規タスクTA3の要求時刻2100nsでFPGA内に配置可能であり、回路C3の総処理時間T3_totalの間、予約中の回路C2の配置が行われてもFPGA内に配置可能であることを判定する。その結果、構成制御プルグラムは、回路C3をFPGA内に配置し、実行させる。したがって、回路C3の構成可能時間、総処理時間、総処理終了時刻は以下のとおりである。
構成可能時間T2wait=0ns
総処理時間t2_total=1000ns
総処理終了時刻T2_total_end=3100ns
The configuration control program can be placed in the FPGA for the circuit C3 at the request time 2100ns of the new task TA3, and even if the reserved circuit C2 is placed during the total processing time T3_total of the circuit C3 Determine that it is possible. As a result, the configuration control program places the circuit C3 in the FPGA and executes it. Therefore, the configurable time, total processing time, and total processing end time of the circuit C3 are as follows.
Configurable time T2wait = 0ns
Total processing time t2_total = 1000ns
Total processing end time T2_total_end = 3100ns

上記のタスクTA2の回路C2は時刻2400nsでFPGA内に構成され、タスクTA3の回路C3は先に要求されたタスクTA2の回路C2よりも先に、時刻2100nsでFPGA内に構成される。例2では、タスクの発生の順番と回路がFPGA内に構成される順番とが異なっている。それぞれのタスクが互いに依存関係のない異なるプログラムから要求されているので、構成制御プログラムは、タスクに対応する回路の構成と実行の順番を独立して決定することができる。   The circuit C2 of the task TA2 is configured in the FPGA at time 2400ns, and the circuit C3 of the task TA3 is configured in the FPGA at time 2100ns before the circuit C2 of the task TA2 requested earlier. In Example 2, the order in which tasks are generated differs from the order in which circuits are configured in the FPGA. Since each task is requested from a different program that does not depend on each other, the configuration control program can independently determine the configuration of the circuit corresponding to the task and the order of execution.

以上のとおり、本実施の形態では、プログラマブルロジックデバイスPLDが複数のタスクを非同期で処理する場合、各タスクの処理を行う最適なロジック回路をPLD内に構成し、各タスクの処理効率を高めることができる。   As described above, in the present embodiment, when the programmable logic device PLD processes a plurality of tasks asynchronously, an optimal logic circuit for processing each task is configured in the PLD to increase the processing efficiency of each task. Can do.

以上の実施の形態をまとめると、次の付記のとおりである。   The above embodiment is summarized as follows.

(付記1)
複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、より短い総処理時間の第2のロジック回路を選択し前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する構成制御部とを有する、演算処理装置。
(Appendix 1)
A processor that performs multiple tasks;
A logic circuit corresponding to at least some tasks of the plurality of tasks is configured, and the configured logic circuit executes processing of the task; and
In response to the processing request of the task, the processing request is made based on the total processing end time of the first logic circuit configured or reserved in the programmable logic circuit and the area of the first logic circuit. The configurable time until each of the plurality of types of second logic circuits corresponding to the task is calculated is calculated, and the configuration time required for the configuration of each of the plurality of types of second logic circuits and each processing are calculated. A plurality of total processing times obtained by adding the configurable time to the processing time are calculated, a second logic circuit having a shorter total processing time is selected, and the selected second logic circuit is placed in the programmable logic circuit. An arithmetic processing unit having a configuration control unit configured.

(付記2)
前記構成制御部は、
前記第2のロジック回路の選択において、前記複数の総処理時間のうち最短の総処理時間に対応する第2のロジック回路を選択する、付記1に記載の演算処理装置。
(Appendix 2)
The configuration control unit
The arithmetic processing apparatus according to appendix 1, wherein in selecting the second logic circuit, the second logic circuit corresponding to the shortest total processing time among the plurality of total processing times is selected.

(付記3)
前記構成制御部は、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内に既に構成されている第1のロジック回路のタスク処理の終了と同期せずに、前記処理要求されたタスクに対応する第2のロジック回路を前記プログラマブルロジック回路に構成する、付記1または2に記載の演算処理装置。
(Appendix 3)
The configuration control unit
In response to the task processing request, the second logic circuit corresponding to the task requested to be processed without synchronizing with the end of the task processing of the first logic circuit already configured in the programmable logic circuit. The arithmetic processing unit according to appendix 1 or 2, wherein the programmable logic circuit is configured.

(付記4)
前記構成制御部は、
前記タスクの処理要求の際に、前記選択した第2のロジック回路の総処理時間と現在時刻とから前記総処理終了時刻を算出して記憶し、
さらに、前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成した際に、前記処理時間と現在時刻から前記総処理終了時刻を算出し、前記記憶済みの総処理終了時刻を更新する、付記1または2に記載の演算処理装置。
(Appendix 4)
The configuration control unit
When processing the task, the total processing end time is calculated from the total processing time and the current time of the selected second logic circuit, and stored.
Further, when the selected second logic circuit is configured in the programmable logic circuit, the total processing end time is calculated from the processing time and the current time, and the stored total processing end time is updated. The arithmetic processing apparatus according to appendix 1 or 2.

(付記5)
前記構成制御部は、
前記タスクに対応する第2のロジック回路の処理時間の実績値を記憶し、
新たなタスクの処理要求の際に、前記新たなタスクに対応するタスクの前記処理時間の実績値に基づいて、前記新たなタスクに対応する第2のロジック回路の処理時間を予測する、付記1または2に記載の演算処理装置。
(Appendix 5)
The configuration control unit
Storing the actual value of the processing time of the second logic circuit corresponding to the task;
The processing time of the second logic circuit corresponding to the new task is predicted based on the actual value of the processing time of the task corresponding to the new task when the processing request for the new task is requested Or the arithmetic processing apparatus of 2.

(付記6)
前記構成制御部は、
前記構成可能時間を算出する際に、発生済みタスクのロジック回路の前記総処理終了時刻が早い順に、前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定し、現在時刻から構成可能な前記総処理終了時刻までの時間を前記構成可能時間として算出する、付記1または2に記載の演算処理装置。
(Appendix 6)
The configuration control unit
When calculating the configurable time, it is determined whether the logic circuit corresponding to the new task can be configured in the programmable logic circuit in the order of the total processing end time of the generated task logic circuit. The arithmetic processing apparatus according to appendix 1 or 2, wherein a time from the current time to the configurable total processing end time is calculated as the configurable time.

(付記7)
前記構成制御部は、
前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かの判定を、前記ロジック回路が構成されてから実行終了までの期間において、前記ロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定する、付記6に記載の演算処理装置。
(Appendix 7)
The configuration control unit
It is determined whether or not a logic circuit corresponding to the new task can be configured in the programmable logic circuit. In a period from the configuration of the logic circuit to the end of execution, the logic circuit is stored in the programmable logic circuit. The arithmetic processing device according to attachment 6, wherein it is determined whether or not the configuration is possible.

(付記8)
前記構成制御部は、
前記新たなタスクに対応するロジック回路を、当該新たなタスクよりも先に発生したタスクに対応するロジック回路を前記プログラマブルロジック回路内に構成するよりも前に、前記プログラマブルロジック回路内に構成する、付記7に記載の演算処理装置。
(Appendix 8)
The configuration control unit
The logic circuit corresponding to the new task is configured in the programmable logic circuit before the logic circuit corresponding to the task generated prior to the new task is configured in the programmable logic circuit. The arithmetic processing apparatus according to appendix 7.

(付記9)
前記構成制御部は、
前記ロジック回路の処理終了後に、前記選択した第2のロジック回路の実績処理時間を対応するタスクと関連付けて記憶し、
前記複数種類の第2のロジック回路それぞれの処理に要する処理時間を、前記記憶した実績処理時間に基づいて予測する、付記1または2に記載の演算処理装置。
(Appendix 9)
The configuration control unit
After the processing of the logic circuit is completed, the actual processing time of the selected second logic circuit is stored in association with the corresponding task,
The arithmetic processing device according to appendix 1 or 2, wherein a processing time required for processing of each of the plurality of types of second logic circuits is predicted based on the stored actual processing time.

(付記10)
前記複数の第2のロジック回路は、少なくとも、第1の面積と第1の処理速度を有する第1の回路と、前記第1の面積より広い第2の面積と前記第1の処理速度より早い第2の処理速度を有する第2の回路とを有する、付記1に記載の演算処理装置。
(Appendix 10)
The plurality of second logic circuits include at least a first circuit having a first area and a first processing speed, a second area wider than the first area, and faster than the first processing speed. The arithmetic processing apparatus according to attachment 1, further comprising: a second circuit having a second processing speed.

(付記11)
前記プログラマブルロジック回路は、フィールドプログラマブルゲートアレイまたは再構成可能回路のいずれかである、付記1に記載の演算処理装置。
(Appendix 11)
The arithmetic processing device according to attachment 1, wherein the programmable logic circuit is either a field programmable gate array or a reconfigurable circuit.

(付記12)
複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、を有する演算処理装置の制御方法であって、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、
前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、
より短い総処理時間の第2のロジック回路を選択し、
前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する演算処理装置の制御方法。
(Appendix 12)
A processor that performs multiple tasks;
A logic circuit corresponding to at least a part of the plurality of tasks is configured, and the configured logic circuit executes a process of the task.
In response to the processing request of the task, the processing request is made based on the total processing end time of the first logic circuit configured or reserved in the programmable logic circuit and the area of the first logic circuit. The configurable time until each of a plurality of types of second logic circuits corresponding to each task becomes configurable,
A plurality of total processing times obtained by adding the configurable time to the configuration time required for the configuration of each of the plurality of types of second logic circuits and the processing time required for each processing;
Select a second logic circuit with a shorter total processing time;
A method for controlling an arithmetic processing unit, wherein the selected second logic circuit is configured in the programmable logic circuit.

CPU:プロセッサ
PLD:プログラマブルロジックデバイス
15:構成制御プログラム
C#:候補のロジック回路
T#wait:構成可能時間
T#conf:構成時間
T#exe:処理時間
T#total:総処理時間
T#total_end:総処理終了時刻
CPU: Processor
PLD: Programmable logic device 15: Configuration control program
C #: Candidate logic circuit
T # wait: Configurable time
T # conf: Configuration time
T # exe: Processing time
T # total: Total processing time
T # total_end: Total processing end time

Claims (10)

複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、より短い総処理時間の第2のロジック回路を選択し前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する構成制御部とを有する、演算処理装置。
A processor that performs multiple tasks;
A logic circuit corresponding to at least some tasks of the plurality of tasks is configured, and the configured logic circuit executes processing of the task; and
In response to the processing request of the task, the processing request is made based on the total processing end time of the first logic circuit configured or reserved in the programmable logic circuit and the area of the first logic circuit. The configurable time until each of the plurality of types of second logic circuits corresponding to the task is calculated is calculated, and the configuration time required for the configuration of each of the plurality of types of second logic circuits and each processing are calculated. A plurality of total processing times obtained by adding the configurable time to the processing time are calculated, a second logic circuit having a shorter total processing time is selected, and the selected second logic circuit is placed in the programmable logic circuit. An arithmetic processing unit having a configuration control unit configured.
前記構成制御部は、
前記第2のロジック回路の選択において、前記複数の総処理時間のうち最短の総処理時間に対応する第2のロジック回路を選択する、請求項1に記載の演算処理装置。
The configuration control unit
2. The arithmetic processing apparatus according to claim 1, wherein, in selecting the second logic circuit, a second logic circuit corresponding to a shortest total processing time is selected from the plurality of total processing times.
前記構成制御部は、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内に既に構成されている第1のロジック回路のタスク処理の終了と同期せずに、前記処理要求されたタスクに対応する第2のロジック回路を前記プログラマブルロジック回路に構成する、請求項1または2に記載の演算処理装置。
The configuration control unit
In response to the task processing request, the second logic circuit corresponding to the task requested to be processed without synchronizing with the end of the task processing of the first logic circuit already configured in the programmable logic circuit. The arithmetic processing unit according to claim 1 or 2, wherein the programmable logic circuit is configured.
前記構成制御部は、
前記タスクの処理要求の際に、前記選択した第2のロジック回路の総処理時間と現在時刻とから前記総処理終了時刻を算出して記憶し、
さらに、前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成した際に、前記処理時間と現在時刻から前記総処理終了時刻を算出し、前記記憶済みの総処理終了時刻を更新する、請求項1または2に記載の演算処理装置。
The configuration control unit
When processing the task, the total processing end time is calculated from the total processing time and the current time of the selected second logic circuit, and stored.
Further, when the selected second logic circuit is configured in the programmable logic circuit, the total processing end time is calculated from the processing time and the current time, and the stored total processing end time is updated. The arithmetic processing apparatus according to claim 1 or 2.
前記構成制御部は、
前記タスクに対応する第2のロジック回路の処理時間の実績値を記憶し、
新たなタスクの処理要求の際に、前記新たなタスクに対応するタスクの前記処理時間の実績値に基づいて、前記新たなタスクに対応する第2のロジック回路の処理時間を予測する、請求項1または2に記載の演算処理装置。
The configuration control unit
Storing the actual value of the processing time of the second logic circuit corresponding to the task;
The processing time of the second logic circuit corresponding to the new task is predicted based on the actual value of the processing time of the task corresponding to the new task when a processing request for the new task is requested. The arithmetic processing apparatus according to 1 or 2.
前記構成制御部は、
前記構成可能時間を算出する際に、発生済みタスクのロジック回路の前記総処理終了時刻が早い順に、前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定し、現在時刻から構成可能な前記総処理終了時刻までの時間を前記構成可能時間として算出する、請求項1または2に記載の演算処理装置。
The configuration control unit
When calculating the configurable time, it is determined whether the logic circuit corresponding to the new task can be configured in the programmable logic circuit in the order of the total processing end time of the generated task logic circuit. The arithmetic processing apparatus according to claim 1, wherein a time from the current time to the configurable total processing end time is calculated as the configurable time.
前記構成制御部は、
前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かの判定を、前記ロジック回路が構成されてから実行終了までの期間において、前記ロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定する、請求項6に記載の演算処理装置。
The configuration control unit
It is determined whether or not a logic circuit corresponding to the new task can be configured in the programmable logic circuit. In a period from the configuration of the logic circuit to the end of execution, the logic circuit is stored in the programmable logic circuit. The arithmetic processing device according to claim 6, wherein it is determined whether the configuration is possible.
前記構成制御部は、
前記新たなタスクに対応するロジック回路を、当該新たなタスクよりも先に発生したタスクに対応するロジック回路を前記プログラマブルロジック回路内に構成するよりも前に、前記プログラマブルロジック回路内に構成する、請求項7に記載の演算処理装置。
The configuration control unit
The logic circuit corresponding to the new task is configured in the programmable logic circuit before the logic circuit corresponding to the task generated prior to the new task is configured in the programmable logic circuit. The arithmetic processing device according to claim 7.
前記構成制御部は、
前記ロジック回路の処理終了後に、前記選択した第2のロジック回路の実績処理時間を対応するタスクと関連付けて記憶し、
前記複数種類の第2のロジック回路それぞれの処理に要する処理時間を、前記記憶した実績処理時間に基づいて予測する、請求項1または2に記載の演算処理装置。
The configuration control unit
After the processing of the logic circuit is completed, the actual processing time of the selected second logic circuit is stored in association with the corresponding task,
The arithmetic processing device according to claim 1, wherein a processing time required for processing of each of the plurality of types of second logic circuits is predicted based on the stored actual processing time.
複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、を有する演算処理装置の制御方法であって、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、
前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、
より短い総処理時間の第2のロジック回路を選択し、
前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する演算処理装置の制御方法。
A processor that performs multiple tasks;
A logic circuit corresponding to at least a part of the plurality of tasks is configured, and the configured logic circuit executes a process of the task.
In response to the processing request of the task, the processing request is made based on the total processing end time of the first logic circuit configured or reserved in the programmable logic circuit and the area of the first logic circuit. The configurable time until each of a plurality of types of second logic circuits corresponding to each task becomes configurable,
A plurality of total processing times obtained by adding the configurable time to the configuration time required for the configuration of each of the plurality of types of second logic circuits and the processing time required for each processing;
Select a second logic circuit with a shorter total processing time;
A method for controlling an arithmetic processing unit, wherein the selected second logic circuit is configured in the programmable logic circuit.
JP2015226658A 2015-11-19 2015-11-19 Arithmetic processing device and control method of arithmetic processing device Active JP6485335B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015226658A JP6485335B2 (en) 2015-11-19 2015-11-19 Arithmetic processing device and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015226658A JP6485335B2 (en) 2015-11-19 2015-11-19 Arithmetic processing device and control method of arithmetic processing device

Publications (2)

Publication Number Publication Date
JP2017097478A true JP2017097478A (en) 2017-06-01
JP6485335B2 JP6485335B2 (en) 2019-03-20

Family

ID=58803929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015226658A Active JP6485335B2 (en) 2015-11-19 2015-11-19 Arithmetic processing device and control method of arithmetic processing device

Country Status (1)

Country Link
JP (1) JP6485335B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063576A (en) * 2016-10-13 2018-04-19 富士通株式会社 Information processing device, information processing method and program
JP2021508117A (en) * 2017-12-20 2021-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Devices and methods for dynamically replacing calls to software libraries with calls to accelerators

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000252814A (en) * 1999-03-02 2000-09-14 Fuji Xerox Co Ltd Information processing system
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device
JP2009070265A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Information processor
JP2010257342A (en) * 2009-04-27 2010-11-11 Canon Inc Image processing apparatus and method for controlling the same
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000252814A (en) * 1999-03-02 2000-09-14 Fuji Xerox Co Ltd Information processing system
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device
JP2009070265A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Information processor
JP2010257342A (en) * 2009-04-27 2010-11-11 Canon Inc Image processing apparatus and method for controlling the same
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063576A (en) * 2016-10-13 2018-04-19 富士通株式会社 Information processing device, information processing method and program
JP2021508117A (en) * 2017-12-20 2021-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Devices and methods for dynamically replacing calls to software libraries with calls to accelerators
JP7252694B2 (en) 2017-12-20 2023-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Apparatus and method for dynamically replacing calls to software libraries with calls to accelerators
US11645059B2 (en) 2017-12-20 2023-05-09 International Business Machines Corporation Dynamically replacing a call to a software library with a call to an accelerator

Also Published As

Publication number Publication date
JP6485335B2 (en) 2019-03-20

Similar Documents

Publication Publication Date Title
US11171652B2 (en) Method and apparatus for implementing configurable streaming networks
US8543955B1 (en) Apparatus and methods for time-multiplex field-programmable gate arrays
JP2002123563A (en) Compiling method, composing device, and recording medium
TWI827792B (en) Multipath neural network, method to allocate resources and multipath neural network analyzer
WO2018067251A1 (en) Methods and apparatus for dynamically configuring soft processors on an integrated circuit
US10262096B2 (en) Component placement with repacking for programmable logic devices
US8522185B1 (en) Method for placement and routing of a circuit design
JP6485335B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP5798378B2 (en) Apparatus, processing method, and program
US10860775B1 (en) Clock pin to clock tap assignment based on circuit device connectivity
JP5007838B2 (en) Information processing apparatus and information processing program
US9692688B2 (en) Delay specific routings for programmable logic devices
US10671429B2 (en) Circuit assignment within reconfigurable device based on predicted shortest processing completion time
US10664561B1 (en) Automatic pipelining of memory circuits
US10606972B2 (en) Method, design program, and design apparatus of a high level synthesis process of a circuit
US11657197B2 (en) Support system and computer readable medium
US9348619B1 (en) Interactive datasheet system
US11030377B1 (en) Routing based on pin placement within routing blockage
JP5832311B2 (en) Reconfiguration device, process allocation method, and program
JP5907607B2 (en) Processing arrangement method and program
JP2008198003A (en) Array type processor
US10579767B1 (en) Systems and methods for routing a clock net with multiple layer ranges
US20150178436A1 (en) Clock assignments for programmable logic device
WO2011155622A1 (en) Circuit synthesizing device, method, and program
JP2016122299A (en) State machine division program, information processor and state machine division method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6485335

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150