JP2017123602A - Control circuit, data processing device, and logic circuit management method - Google Patents

Control circuit, data processing device, and logic circuit management method Download PDF

Info

Publication number
JP2017123602A
JP2017123602A JP2016002632A JP2016002632A JP2017123602A JP 2017123602 A JP2017123602 A JP 2017123602A JP 2016002632 A JP2016002632 A JP 2016002632A JP 2016002632 A JP2016002632 A JP 2016002632A JP 2017123602 A JP2017123602 A JP 2017123602A
Authority
JP
Japan
Prior art keywords
circuit
logic
logic circuits
combination
data transfer
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
JP2016002632A
Other languages
Japanese (ja)
Other versions
JP6610271B2 (en
Inventor
昇 米岡
Noboru Yoneoka
昇 米岡
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 JP2016002632A priority Critical patent/JP6610271B2/en
Publication of JP2017123602A publication Critical patent/JP2017123602A/en
Application granted granted Critical
Publication of JP6610271B2 publication Critical patent/JP6610271B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To efficiently allocate a logic circuit to an integrated circuit whose logic configuration is rewritable.SOLUTION: A control circuit comprises: a configuration unit that writes a writing target logic circuit and a monitoring circuit for monitoring a data transfer amount of the writing target logic circuit, in any one of a plurality of circuit regions; an acquisition unit that acquires information indicating the data transfer amount of the logic circuit from the monitoring circuit written in the circuit region together with the logic circuit; and a detector that detects a combination of logic circuits that can be allocated to one circuit region among the plurality of logic circuits, on the basis of a determination result that indicates whether or not the data transfer amounts of the plurality of logic circuits included in the combination satisfy a predetermined transfer condition, and a determination result that indicates whether or not the plurality of logic circuits included in the combination fall into one circuit region. The configuration unit, in a case where the combination is detected, writes the plurality of logic circuits included in the combination in the one circuit region to reconfigure a logic configuration of the circuit region.SELECTED DRAWING: Figure 1

Description

本発明は、制御回路、データ処理装置および論理回路管理方法に関する。   The present invention relates to a control circuit, a data processing device, and a logic circuit management method.

サーバ等のデータ処理装置は、論理構成を書き換え可能な集積回路の一種であるFPGA(Field Programmable Gate Array)を有する場合がある。例えば、FPGAには、サーバの利用者によって設計された論理回路(以下、ユーザモジュールとも称する)が書き込まれる。近年、複数の利用者が同一のFPGAを共同で使用するシステムが提案されている(例えば、特許文献1参照)。この種のシステムは、複数の利用者によってそれぞれ設計された複数のユーザモジュールを1つのFPGAに書き込む。   A data processing device such as a server may have an FPGA (Field Programmable Gate Array) which is a kind of integrated circuit whose logic configuration can be rewritten. For example, a logic circuit (hereinafter also referred to as a user module) designed by a server user is written in the FPGA. In recent years, a system in which a plurality of users jointly use the same FPGA has been proposed (see, for example, Patent Document 1). This type of system writes a plurality of user modules respectively designed by a plurality of users into one FPGA.

また、回路機能を所定の単位(以下、セルとも称する)で部分的に再構成可能なFPGAでは、FPGAの利用効率を向上するために、互いに異なる大きさの複数のセルを有する構成が提案されている(例えば、特許文献2参照)。この種のFPGAでは、書き換え対象のセル以外のセルが動作中でも、書き換え対象のセルの回路機能が再構成される。   Further, in an FPGA in which circuit functions can be partially reconfigured in a predetermined unit (hereinafter also referred to as a cell), a configuration having a plurality of cells of different sizes has been proposed in order to improve the utilization efficiency of the FPGA. (For example, refer to Patent Document 2). In this type of FPGA, even when cells other than the cell to be rewritten are operating, the circuit function of the cell to be rewritten is reconfigured.

特開2014−230174号公報JP 2014-230174 A 特開2002−16489号公報JP 2002-16489 A

論理構成を書き換え可能な複数の回路領域毎に1つのユーザモジュールが書き込まれるFPGAでは、ユーザモジュールが小さくなるほど、FPGAの利用効率は低下する。一方、1つの回路領域に書き込むユーザモジュールの数を単に増加させた場合、1つの回路領域に書き込まれた複数のユーザモジュールのデータ転送レートが回路領域のデータ転送レートによって制限され、ユーザモジュールの性能が低下するおそれがある。   In an FPGA in which one user module is written for each of a plurality of circuit areas in which the logic configuration can be rewritten, the use efficiency of the FPGA decreases as the user module becomes smaller. On the other hand, when the number of user modules written in one circuit area is simply increased, the data transfer rate of a plurality of user modules written in one circuit area is limited by the data transfer rate of the circuit area, and the performance of the user module May decrease.

1つの側面では、本発明は、論理構成を書き換え可能な集積回路に論理回路を効率よく割り当てることを目的とする。   In one aspect, an object of the present invention is to efficiently assign a logic circuit to an integrated circuit whose logic configuration can be rewritten.

一観点によれば、論理構成を書き換え可能な複数の回路領域を有する集積回路に論理回路を書き込む制御回路は、書き込み対象の論理回路と書き込み対象の論理回路のデータ転送量を監視する監視回路とを、複数の回路領域のいずれかに書き込む構成部と、論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた監視回路から取得する取得部と、複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、組み合わせに含まれる複数の論理回路が1つの回路領域に収まるかの判定結果とに基づいて検出する検出部とを有し、構成部は、組み合わせが検出された場合、組み合わせに含まれる複数の論理回路を1つの回路領域に書き込み、回路領域の論理構成を再構成する。   According to one aspect, a control circuit that writes a logic circuit to an integrated circuit having a plurality of circuit regions in which the logic configuration can be rewritten includes a monitoring circuit that monitors a data transfer amount of the writing target logic circuit and the writing target logic circuit; Among the plurality of circuit areas, an acquisition section for acquiring information indicating the data transfer amount of the logic circuit from the monitoring circuit written in the circuit area together with the logic circuit, and a plurality of logic circuits. From the combination of logic circuits that can be assigned to one circuit area, the determination result whether the data transfer amount of the plurality of logic circuits included in the combination satisfies a predetermined transfer condition, and the plurality of logic circuits included in the combination are And a detection unit that detects based on a determination result of whether or not a single circuit region fits. Writing a logic circuit into a single circuit region, to reconstruct the logical structure of the circuit region.

別の観点によれば、データ処理装置は、論理構成を書き換え可能な複数の回路領域を有する集積回路と、複数の回路領域に論理回路を書き込む制御回路とを有し、制御回路は、書き込み対象の論理回路と書き込み対象の論理回路のデータ転送量を監視する監視回路とを、複数の回路領域のいずれかに書き込む構成部と、論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた監視回路から取得する取得部と、複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、組み合わせに含まれる複数の論理回路が1つの回路領域に収まるかの判定結果とに基づいて検出する検出部とを有し、構成部は、組み合わせが検出された場合、組み合わせに含まれる複数の論理回路を1つの回路領域に書き込み、回路領域の論理構成を再構成する。   According to another aspect, the data processing apparatus includes an integrated circuit having a plurality of circuit areas in which the logic configuration can be rewritten, and a control circuit that writes the logic circuits in the plurality of circuit areas. A logic circuit and a monitoring circuit that monitors the data transfer amount of the logic circuit to be written, a configuration unit that writes the data transfer amount to one of a plurality of circuit regions, and information indicating the data transfer amount of the logic circuit together with the logic circuit The data transfer amount of a plurality of logic circuits included in the combination is a combination of an acquisition unit that acquires from the monitoring circuit written in the logic circuit and a combination of logic circuits that can be assigned to one circuit area among the plurality of logic circuits. A detection unit configured to detect based on a determination result whether the transfer condition is satisfied and a determination result whether a plurality of logic circuits included in the combination fits in one circuit area, , When combined is detected, writes the plurality of logic circuits included in the combination in a single circuit region, to reconstruct the logical structure of the circuit region.

別の観点によれば、論理構成を書き換え可能な複数の回路領域を有する集積回路に論理回路を書き込むコンピュータが回路領域への論理回路の割り当てを管理する論理回路管理方法では、コンピュータが、書き込み対象の論理回路と書き込み対象の論理回路のデータ転送量を監視する監視回路とを、複数の回路領域のいずれかに書き込み、論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた監視回路から取得し、複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、組み合わせに含まれる複数の論理回路が1つの回路領域に収まるかの判定結果とに基づいて検出し、組み合わせを検出した場合、組み合わせに含まれる複数の論理回路を1つの回路領域に書き込み、回路領域の論理構成を再構成する。   According to another aspect, in a logic circuit management method in which a computer that writes a logic circuit to an integrated circuit having a plurality of circuit areas in which the logic configuration can be rewritten manages the allocation of the logic circuit to the circuit area, the computer The logic circuit and the monitoring circuit that monitors the data transfer amount of the logic circuit to be written are written to one of a plurality of circuit areas, and information indicating the data transfer amount of the logic circuit is written to the circuit area together with the logic circuit. A combination of logic circuits that can be assigned to one circuit area from a plurality of logic circuits and whether the data transfer amount of the plurality of logic circuits included in the combination satisfies a predetermined transfer condition. Based on the determination result and the determination result of whether a plurality of logic circuits included in the combination fit in one circuit area, the combination is detected. If issued, writes a plurality of logic circuits included in the combination in a single circuit region, to reconstruct the logical structure of the circuit region.

論理構成を書き換え可能な集積回路に論理回路を効率よく割り当てることができる。   A logic circuit can be efficiently allocated to an integrated circuit whose logic configuration can be rewritten.

制御回路、データ処理装置および論理回路管理方法の一実施形態を示す図である。It is a figure which shows one Embodiment of a control circuit, a data processor, and a logic circuit management method. 制御回路、データ処理装置および論理回路管理方法の別の実施形態を示す図である。It is a figure which shows another embodiment of a control circuit, a data processor, and a logic circuit management method. 図2に示した論理回路および監視回路の一例を示す図である。FIG. 3 is a diagram illustrating an example of a logic circuit and a monitoring circuit illustrated in FIG. 2. 図2に示したデータ処理装置の動作の一例を示す図である。It is a figure which shows an example of operation | movement of the data processor shown in FIG. 図4に示した統合処理の一例を示す図である。It is a figure which shows an example of the integration process shown in FIG. 図4に示した分割候補検索処理の一例を示す図である。It is a figure which shows an example of the division candidate search process shown in FIG. 図4に示した分割処理の一例を示す図である。It is a figure which shows an example of the division | segmentation process shown in FIG. 図2に示したデータ処理装置の動作の別の例を示す図である。It is a figure which shows another example of operation | movement of the data processor shown in FIG. 図2に示したCPUによる論理回路の管理の一例を示す図である。It is a figure which shows an example of management of the logic circuit by CPU shown in FIG.

以下、実施形態について、図面を用いて説明する。   Hereinafter, embodiments will be described with reference to the drawings.

図1は、制御回路、データ処理装置および論理回路管理方法の一実施形態を示す。図1に示すデータ処理装置10は、例えば、集積回路100と制御回路200とを有するサーバ等の情報処理装置である。集積回路100は、例えば、データ処理装置10のユーザが使用する論理回路120(120A、120B)等をプログラム可能なFPGA等のプログラマブルデバイスである。例えば、集積回路100は、論理構成を書き換え可能な複数の回路領域110(110A、110B、110C、110D)と、複数の回路領域110に接続されたバスBUSとを有する。回路領域110の外部のバスBUS等の配線は、例えば、固定して配置される。   FIG. 1 shows an embodiment of a control circuit, a data processing device, and a logic circuit management method. A data processing apparatus 10 illustrated in FIG. 1 is an information processing apparatus such as a server having an integrated circuit 100 and a control circuit 200, for example. The integrated circuit 100 is a programmable device such as an FPGA that can program the logic circuit 120 (120A, 120B) used by the user of the data processing apparatus 10, for example. For example, the integrated circuit 100 includes a plurality of circuit areas 110 (110A, 110B, 110C, 110D) whose logic configuration can be rewritten, and a bus BUS connected to the plurality of circuit areas 110. The wiring such as the bus BUS outside the circuit area 110 is, for example, fixedly arranged.

回路領域110には、図1の括弧内に示すように、論理回路120および論理回路120のデータ転送量を監視する監視回路130(130A、130B)が制御回路200により書き込まれる。論理回路120は、例えば、図示されないブロックとの間でデータ転送を実行する。なお、図1に示す括弧内には、第1段階および第2段階の回路領域110A、110Bの状態の一例を示している。図1に示す括弧内の第1段階および第2段階については、制御回路200による再構成の動作を説明する際に説明する。   As shown in parentheses in FIG. 1, the control circuit 200 writes the logic circuit 120 and a monitoring circuit 130 (130A, 130B) that monitors the data transfer amount of the logic circuit 120 in the circuit area 110. For example, the logic circuit 120 executes data transfer with a block (not shown). An example of the state of the circuit areas 110A and 110B in the first stage and the second stage is shown in parentheses shown in FIG. The first stage and the second stage in parentheses shown in FIG. 1 will be described when the reconfiguration operation by the control circuit 200 is described.

制御回路200は、回路領域110を書き込み単位として、論理回路120等を集積回路100に書き込む。例えば、制御回路200は、構成部210、取得部220および検出部230を有する。構成部210、取得部220および検出部230は、ハードウェアのみで実現されてもよく、ソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、制御回路200は、CPU(Central Processing Unit)等のプロセッサがソフトウェアを実行することにより実現されてもよい。プロセッサを含むコンピュータがソフトウェアを実行することにより制御回路200が実現される場合、コンピュータの動作は、回路領域110への論理回路120の割り当てを管理する論理回路管理方法の一態様である。   The control circuit 200 writes the logic circuit 120 and the like to the integrated circuit 100 using the circuit area 110 as a writing unit. For example, the control circuit 200 includes a configuration unit 210, an acquisition unit 220, and a detection unit 230. The configuration unit 210, the acquisition unit 220, and the detection unit 230 may be realized only by hardware, or may be realized by controlling the hardware by software. For example, the control circuit 200 may be realized by a processor such as a CPU (Central Processing Unit) executing software. When the control circuit 200 is realized by executing software by a computer including a processor, the operation of the computer is an aspect of a logic circuit management method for managing allocation of the logic circuit 120 to the circuit area 110.

構成部210は、書き込み対象の論理回路120と書き込み対象の論理回路120のデータ転送量を監視する監視回路130とを、複数の回路領域110のいずれかに書き込む。また、構成部210は、1つの回路領域110に割り当て可能な論理回路120の組み合わせを検出部230が検出した場合、回路領域110の論理構成を再構成する。再構成の動作については、検出部230の動作を説明した後に説明する。   The configuration unit 210 writes the write target logic circuit 120 and the monitoring circuit 130 that monitors the data transfer amount of the write target logic circuit 120 in any of the plurality of circuit areas 110. Further, the configuration unit 210 reconfigures the logical configuration of the circuit region 110 when the detection unit 230 detects a combination of the logic circuits 120 that can be assigned to one circuit region 110. The reconfiguration operation will be described after the operation of the detection unit 230 is described.

取得部220は、回路領域110に書き込まれた論理回路120のデータ転送量を示す情報を監視回路130から取得し、監視回路130から取得した情報を検出部230に通知する。   The acquisition unit 220 acquires information indicating the data transfer amount of the logic circuit 120 written in the circuit area 110 from the monitoring circuit 130 and notifies the detection unit 230 of the information acquired from the monitoring circuit 130.

検出部230は、例えば、論理回路120を実現するための回路情報から論理回路120の規模を示す情報を取得し、論理回路120のデータ転送量を示す情報を監視回路130から取得部220を介して取得する。そして、検出部230は、複数の論理回路120の中から、1つの回路領域110に割り当て可能な論理回路120の組み合わせを、論理回路120のデータ転送量、論理回路120の規模および回路領域110の規模等に基づいて検出する。   For example, the detection unit 230 acquires information indicating the scale of the logic circuit 120 from circuit information for realizing the logic circuit 120, and acquires information indicating the data transfer amount of the logic circuit 120 from the monitoring circuit 130 via the acquisition unit 220. Get. The detection unit 230 then selects a combination of the logic circuits 120 that can be assigned to one circuit area 110 from among the plurality of logic circuits 120, the data transfer amount of the logic circuit 120, the scale of the logic circuit 120, and the circuit area 110. Detect based on scale.

例えば、検出部230は、複数の論理回路120の中から、判定対象とする論理回路120の組み合わせを選択する。そして、検出部230は、判定対象として選択した論理回路120の組み合わせに含まれる複数の論理回路120(以下、判定対象の複数の論理回路120とも称する)が1つの回路領域110に収まるか否かを判定する。さらに、検出部230は、判定対象の複数の論理回路120のデータ転送量が所定の転送条件を満たすか否かを判定する。そして、検出部230は、1つの回路領域110に収まり、かつ、所定の転送条件を満たす判定対象の複数の論理回路120を、1つの回路領域110に割り当て可能な論理回路120の組み合わせとして検出する。   For example, the detection unit 230 selects a combination of the logic circuits 120 to be determined from the plurality of logic circuits 120. Then, the detection unit 230 determines whether or not a plurality of logic circuits 120 included in the combination of the logic circuits 120 selected as the determination target (hereinafter also referred to as a plurality of determination target logic circuits 120) fits in one circuit area 110. Determine. Further, the detection unit 230 determines whether the data transfer amount of the plurality of logic circuits 120 to be determined satisfies a predetermined transfer condition. Then, the detection unit 230 detects a plurality of determination target logic circuits 120 that fit in one circuit area 110 and satisfy a predetermined transfer condition as combinations of logic circuits 120 that can be assigned to one circuit area 110. .

ここで、判定対象の複数の論理回路120が1つの回路領域110に収まるか否かの判定では、例えば、検出部230は、判定対象の複数の論理回路120および監視回路130の規模の合計が1つの回路領域110の規模以下であるか否かを判定する。判定対象の複数の論理回路120および監視回路130の規模の合計が1つの回路領域110の規模以下である場合、検出部230は、判定対象の複数の論理回路120が1つの回路領域110に収まると判定する。なお、検出部230は、判定対象の複数の論理回路120の規模の合計が1つの回路領域110の規模以下であるか否かを判定してもよい。すなわち、検出部230は、判定対象の複数の論理回路120の規模の合計が1つの回路領域110の規模以下である場合、判定対象の複数の論理回路120が1つの回路領域110に収まると判定してもよい。   Here, in determining whether or not the plurality of logic circuits 120 to be determined fit within one circuit area 110, for example, the detection unit 230 determines that the sum of the scales of the plurality of logic circuits 120 and the monitoring circuit 130 to be determined is. It is determined whether or not the size of one circuit area 110 is less than or equal to. When the sum of the scales of the plurality of logic circuits 120 and the monitoring circuit 130 to be determined is equal to or smaller than the scale of one circuit area 110, the detection unit 230 allows the plurality of logic circuits 120 to be determined to fit in one circuit area 110. Is determined. Note that the detection unit 230 may determine whether the total size of the plurality of logic circuits 120 to be determined is equal to or less than the size of one circuit area 110. That is, the detection unit 230 determines that the plurality of determination target logic circuits 120 can be accommodated in one circuit area 110 when the total size of the determination target logic circuits 120 is equal to or less than the size of one circuit area 110. May be.

また、判定対象の複数の論理回路120のデータ転送量が所定の転送条件を満たすか否かの判定では、例えば、検出部230は、判定対象の複数の論理回路120のデータ転送量の合計の平均が第1閾値以下である場合、所定の転送条件を満たすと判定する。第1閾値は、回路領域110とバスBUSとの間のバス帯域に対応する回路領域110のデータ転送レート以下の値に設定される。例えば、第1閾値は、回路領域110のデータ転送レートの7割程度の値に設定される。なお、検出部230は、判定対象の複数の論理回路120のデータ転送量の合計の平均が第1閾値以下で、かつ、判定対象の複数の論理回路120の各々のデータ転送量のピークの合計が第2閾値以下である場合、所定の転送条件を満たすと判定してもよい。この場合、第2閾値は、第1閾値より大きい値に設定される。例えば、第2閾値は、回路領域110のデータ転送レートの数倍の値に設定される。   In determining whether the data transfer amount of the plurality of logic circuits 120 to be determined satisfies a predetermined transfer condition, for example, the detection unit 230 calculates the sum of the data transfer amounts of the plurality of logic circuits 120 to be determined. When the average is equal to or less than the first threshold, it is determined that a predetermined transfer condition is satisfied. The first threshold value is set to a value equal to or lower than the data transfer rate of the circuit area 110 corresponding to the bus band between the circuit area 110 and the bus BUS. For example, the first threshold value is set to a value that is about 70% of the data transfer rate of the circuit area 110. Note that the detection unit 230 has an average sum of data transfer amounts of the plurality of logic circuits 120 to be determined that is equal to or less than a first threshold value and a sum of peaks of data transfer amounts of the plurality of logic circuits 120 to be determined. May be determined to satisfy a predetermined transfer condition. In this case, the second threshold value is set to a value larger than the first threshold value. For example, the second threshold value is set to a value that is several times the data transfer rate of the circuit area 110.

なお、1つの回路領域110に収まらない論理回路120の組み合わせに対しては、所定の転送条件を満たすか否かの判定が省かれてもよい。すなわち、検出部230は、1つの回路領域110に収まる論理回路120の組み合わせに含まれる複数の論理回路120のデータ転送量が所定の転送条件を満たすか否かを判定してもよい。この場合、検出部230は、1つの回路領域110に収まる論理回路120の組み合わせのうち、所定の転送条件を満たす組み合わせを、1つの回路領域110に割り当て可能な論理回路120の組み合わせとして検出する。   Note that for combinations of logic circuits 120 that do not fit in one circuit area 110, determination as to whether or not a predetermined transfer condition is satisfied may be omitted. In other words, the detection unit 230 may determine whether or not the data transfer amount of the plurality of logic circuits 120 included in the combination of the logic circuits 120 that fits in one circuit region 110 satisfies a predetermined transfer condition. In this case, the detection unit 230 detects a combination satisfying a predetermined transfer condition among combinations of the logic circuits 120 that can be accommodated in one circuit area 110 as a combination of the logic circuits 120 that can be assigned to the one circuit area 110.

1つの回路領域110に割り当て可能な論理回路120の組み合わせが検出された場合、構成部210は、検出された組み合わせに含まれる複数の論理回路120を1つの回路領域110に書き込む。これにより、検出部230で検出された組み合わせに含まれる複数の論理回路120が書き込まれた回路領域110の論理構成は、再構成される。   When a combination of logic circuits 120 that can be assigned to one circuit area 110 is detected, the configuration unit 210 writes a plurality of logic circuits 120 included in the detected combination to one circuit area 110. As a result, the logic configuration of the circuit area 110 in which the plurality of logic circuits 120 included in the combination detected by the detection unit 230 is written is reconfigured.

集積回路100を再構成する際の制御回路200の動作を図1の括弧内に示した回路領域110A、110Bを用いて説明する。なお、集積回路100では、書き換え対象の回路領域110A、110B以外の回路領域110C、110Dが動作中でも、回路領域110A、110Bの論理構成を再構成することができる。   The operation of the control circuit 200 when reconfiguring the integrated circuit 100 will be described using circuit regions 110A and 110B shown in parentheses in FIG. In the integrated circuit 100, the logic configuration of the circuit areas 110A and 110B can be reconfigured even when the circuit areas 110C and 110D other than the circuit areas 110A and 110B to be rewritten are operating.

先ず、第1段階では、制御回路200は、回路領域110毎に、論理回路120および論理回路120のデータ転送量を監視する監視回路130を集積回路100に書き込む。これにより、論理回路120Aおよび監視回路130Aが回路領域110Aに書き込まれ、論理回路120Bおよび監視回路130Bが回路領域110Bに書き込まれる。   First, in the first stage, the control circuit 200 writes the monitoring circuit 130 that monitors the data transfer amount of the logic circuit 120 and the logic circuit 120 in the integrated circuit 100 for each circuit area 110. As a result, the logic circuit 120A and the monitoring circuit 130A are written in the circuit area 110A, and the logic circuit 120B and the monitoring circuit 130B are written in the circuit area 110B.

そして、制御回路200は、互いに異なる回路領域110に書き込まれた複数の論理回路120を1つの回路領域110に書き込む再構成を実行するか否かの判定を所定の時間間隔で繰り返し実行する。例えば、制御回路200は、論理回路120A、120Bの動作時のデータ転送量を示す情報を監視回路130A、130Bからそれぞれ取得する。   Then, the control circuit 200 repeatedly executes a determination as to whether or not to perform reconfiguration of writing a plurality of logic circuits 120 written in different circuit areas 110 in one circuit area 110 at a predetermined time interval. For example, the control circuit 200 acquires information indicating the data transfer amount during the operation of the logic circuits 120A and 120B from the monitoring circuits 130A and 130B, respectively.

図1に示す例では、論理回路120A、120Bのデータ転送量は、上述した所定の転送条件を満たす。例えば、論理回路120A、120Bのデータ転送量の合計の平均は、第1閾値以下である。また、論理回路120A、120Bおよび監視回路130A、130Bの規模の合計は、回路領域110Aの規模より小さい。すなわち、論理回路120A、120Bおよび監視回路130A、130Bは、1つの回路領域110にプログラム可能(書き込み可能)である。このため、制御回路200は、論理回路120A、120Bを1つの回路領域110Aに書き込む再構成を実行すると判定する。   In the example shown in FIG. 1, the data transfer amount of the logic circuits 120A and 120B satisfies the predetermined transfer condition described above. For example, the average of the total data transfer amounts of the logic circuits 120A and 120B is equal to or less than the first threshold value. The total scale of the logic circuits 120A and 120B and the monitoring circuits 130A and 130B is smaller than the scale of the circuit area 110A. That is, the logic circuits 120A and 120B and the monitoring circuits 130A and 130B are programmable (writable) in one circuit area 110. For this reason, the control circuit 200 determines to execute the reconfiguration of writing the logic circuits 120A and 120B into one circuit area 110A.

したがって、第2段階では、制御回路200は、論理回路120A、120Bを回路領域110Aに書き込み、回路領域110A、110Bの論理構成を再構成する。なお、制御回路200は、監視回路130A、130Bを論理回路120A、120Bとともに回路領域110Aに書き込む。論理回路120A、120Bおよび監視回路130A、130Bは、回路領域110Aに含まれる内部バスIBUSに接続される。例えば、内部バスIBUSとして、回路領域110A内の配線の一部が使用される。なお、第2段階では、制御回路200は、論理回路120A、120Bの両方のデータ転送量を監視する1つの監視回路を、論理回路120A、120Bに共有させてもよい。   Therefore, in the second stage, the control circuit 200 writes the logic circuits 120A and 120B to the circuit area 110A, and reconfigures the logic configuration of the circuit areas 110A and 110B. The control circuit 200 writes the monitoring circuits 130A and 130B in the circuit area 110A together with the logic circuits 120A and 120B. The logic circuits 120A and 120B and the monitoring circuits 130A and 130B are connected to an internal bus IBUS included in the circuit area 110A. For example, a part of the wiring in the circuit area 110A is used as the internal bus IBUS. In the second stage, the control circuit 200 may cause the logic circuits 120A and 120B to share one monitoring circuit that monitors the data transfer amounts of both the logic circuits 120A and 120B.

回路領域110A、110Bの論理構成を再構成することにより、論理回路120A、120Bおよび監視回路130A、130Bが回路領域110Aに書き込まれ、回路領域110Bは、未使用の状態になる。この結果、回路領域110Bを新規の論理回路120に割り当てることが可能になり、集積回路100の利用効率を向上することができる。すなわち、論理回路120の搭載効率を向上することができる。   By reconfiguring the logic configuration of the circuit areas 110A and 110B, the logic circuits 120A and 120B and the monitoring circuits 130A and 130B are written into the circuit area 110A, and the circuit area 110B becomes unused. As a result, the circuit area 110B can be assigned to the new logic circuit 120, and the utilization efficiency of the integrated circuit 100 can be improved. That is, the mounting efficiency of the logic circuit 120 can be improved.

また、上述したように、第1閾値が回路領域110のデータ転送レート以下の値であるため、論理回路120A、120Bのデータ転送量の合計の平均は、回路領域110のデータ転送レート以下である。このため、回路領域110の外部のバスBUSと論理回路120A、120Bとの間のデータ転送量が回路領域110とバスBUSとの間のバス帯域によって制限されることを抑制できる。この結果、論理回路120A、120Bの性能が低下することを抑制できる。   Further, as described above, since the first threshold is a value less than or equal to the data transfer rate of the circuit area 110, the average of the total data transfer amounts of the logic circuits 120A and 120B is less than or equal to the data transfer rate of the circuit area 110. . For this reason, it is possible to suppress the amount of data transfer between the bus BUS outside the circuit area 110 and the logic circuits 120A and 120B from being limited by the bus band between the circuit area 110 and the bus BUS. As a result, it is possible to suppress the performance of the logic circuits 120A and 120B from being degraded.

なお、データ処理装置10の構成および集積回路100の構成は、図1に示す例に限定されない。例えば、データ処理装置10は、複数の集積回路100を有してもよい。また、例えば、回路領域110の数は、2つ以上であればよく、4つに限定されない。また、データ処理装置10は、複数のFPGAチップを含むパッケージを集積回路100として有してもよい。この場合、データ処理装置10は、1つのFPGAチップを1つの回路領域110に割り当ててもよい。   The configuration of the data processing device 10 and the configuration of the integrated circuit 100 are not limited to the example shown in FIG. For example, the data processing device 10 may include a plurality of integrated circuits 100. Further, for example, the number of circuit regions 110 may be two or more, and is not limited to four. Further, the data processing apparatus 10 may have a package including a plurality of FPGA chips as the integrated circuit 100. In this case, the data processing apparatus 10 may assign one FPGA chip to one circuit area 110.

以上、図1に示す実施形態では、データ処理装置10は、1つの回路領域110に割り当て可能な論理回路120の組み合わせを、論理回路120のデータ転送量に関する所定の転送条件、論理回路120の規模および回路領域110の規模等に基づいて検出する。1つの回路領域110に複数の論理回路120を割り当てることにより、集積回路100の利用効率を向上させることができる。また、所定の転送条件を満たした組み合わせでは、組み合わせに含まれる複数の論理回路120のデータ転送レートが回路領域110のデータ転送レートによって制限されることを抑制できる。この結果、論理回路120の性能が低下することを抑制できる。このように、図1に示す実施形態では、論理構成を書き換え可能な集積回路100に論理回路120を効率よく割り当てることができる。   As described above, in the embodiment illustrated in FIG. 1, the data processing apparatus 10 uses combinations of logic circuits 120 that can be assigned to one circuit area 110 as predetermined transfer conditions regarding the data transfer amount of the logic circuit 120, and the scale of the logic circuit 120. And it detects based on the scale of the circuit area 110, etc. By assigning a plurality of logic circuits 120 to one circuit area 110, the utilization efficiency of the integrated circuit 100 can be improved. Further, in a combination that satisfies a predetermined transfer condition, it is possible to prevent the data transfer rate of the plurality of logic circuits 120 included in the combination from being limited by the data transfer rate of the circuit area 110. As a result, it is possible to prevent the performance of the logic circuit 120 from deteriorating. As described above, in the embodiment shown in FIG. 1, the logic circuit 120 can be efficiently allocated to the integrated circuit 100 whose logic configuration can be rewritten.

図2は、集積回路、データ処理装置および論理回路管理方法の別の実施形態を示す。図1で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図2に示すデータ処理装置12は、図1に示した制御回路200の代わりにCPU202を有する。また、データ処理装置12では、メモリ300および入出力インタフェース320が図1に示したデータ処理装置10に追加されている。データ処理装置12のその他の構成は、データ処理装置10と同一または同様である。例えば、データ処理装置12は、集積回路100とCPU202とメモリ300と入出力インタフェース320とを有するサーバ等の情報処理装置である。   FIG. 2 shows another embodiment of an integrated circuit, data processing apparatus, and logic circuit management method. The same or similar elements as those described in FIG. 1 are denoted by the same or similar reference numerals, and detailed description thereof will be omitted. The data processing device 12 illustrated in FIG. 2 includes a CPU 202 instead of the control circuit 200 illustrated in FIG. In the data processing device 12, a memory 300 and an input / output interface 320 are added to the data processing device 10 shown in FIG. Other configurations of the data processing device 12 are the same as or similar to those of the data processing device 10. For example, the data processing device 12 is an information processing device such as a server having the integrated circuit 100, the CPU 202, the memory 300, and the input / output interface 320.

集積回路100、CPU202、メモリ300および入出力インタフェース320は、バスBUS2に接続される。集積回路100は、図1に示した集積回路100と同一または同様である。例えば、集積回路100の回路領域110には、論理回路120および監視回路130が書き込まれる。論理回路120および監視回路130は、回路領域110内の配線の一部である内部バスIBUSに接続される。また、内部バスIBUSは、回路領域110の外部に配置されたバスBUSに接続され、バスBUSは、集積回路100の外部に配置されたバスBUS2に接続される。これにより、論理回路120および監視回路130は、CPU202等と通信可能に接続される。回路領域110に書き込まれる論理回路120および監視回路130の詳細は、図3で説明する。   The integrated circuit 100, the CPU 202, the memory 300, and the input / output interface 320 are connected to the bus BUS2. The integrated circuit 100 is the same as or similar to the integrated circuit 100 shown in FIG. For example, the logic circuit 120 and the monitoring circuit 130 are written in the circuit area 110 of the integrated circuit 100. The logic circuit 120 and the monitoring circuit 130 are connected to an internal bus IBUS that is a part of wiring in the circuit area 110. The internal bus IBUS is connected to a bus BUS arranged outside the circuit area 110, and the bus BUS is connected to a bus BUS2 arranged outside the integrated circuit 100. As a result, the logic circuit 120 and the monitoring circuit 130 are communicably connected to the CPU 202 and the like. Details of the logic circuit 120 and the monitoring circuit 130 written in the circuit area 110 will be described with reference to FIG.

CPU202は、論理回路120等を集積回路100に書き込む制御回路の一例である。以下、CPU202は、制御回路202とも称される。CPU202は、例えば、メモリ300等に保持されたソフトウェアを実行することにより、構成部212、取得部220および検出部232の機能を実現する。すなわち、制御回路202は、構成部212、取得部220および検出部232を有する。取得部220は、図1に示した取得部220と同一または同様である。   The CPU 202 is an example of a control circuit that writes the logic circuit 120 or the like into the integrated circuit 100. Hereinafter, the CPU 202 is also referred to as a control circuit 202. The CPU 202 implements the functions of the configuration unit 212, the acquisition unit 220, and the detection unit 232 by executing software stored in the memory 300 or the like, for example. That is, the control circuit 202 includes a configuration unit 212, an acquisition unit 220, and a detection unit 232. The acquisition unit 220 is the same as or similar to the acquisition unit 220 illustrated in FIG.

構成部212は、図1に示した構成部210の機能の他に、分割処理を実行する機能を有する。分割処理は、例えば、1つの回路領域110に書き込まれた複数の論理回路120を複数の回路領域110に分けて書き込む処理である。例えば、構成部212は、分割処理対象の回路領域110が検出部232により検出された場合、分割処理対象の回路領域110に書き込まれた複数の論理回路120を複数の回路領域110に分けて書き込み、分割処理対象の回路領域の論理構成を再構成する。   The configuration unit 212 has a function of executing division processing in addition to the function of the configuration unit 210 illustrated in FIG. 1. The division process is, for example, a process in which a plurality of logic circuits 120 written in one circuit area 110 are written in a plurality of circuit areas 110. For example, when the circuit area 110 to be divided is detected by the detection unit 232, the configuration unit 212 writes the plurality of logic circuits 120 written in the circuit area 110 to be divided into the plurality of circuit areas 110. Then, the logical configuration of the circuit area to be divided is reconfigured.

検出部232は、図1に示した検出部230の機能の他に、分割処理対象の回路領域110を検出する機能を有する。例えば、検出部232は、複数の論理回路120が書き込まれた回路領域110のうち、複数の論理回路120のデータ転送量が所定の転送条件から外れた回路領域110を、分割処理対象の回路領域110として検出する。   The detection unit 232 has a function of detecting the circuit area 110 to be divided in addition to the function of the detection unit 230 shown in FIG. For example, the detection unit 232 divides the circuit area 110 in which the data transfer amount of the plurality of logic circuits 120 is out of a predetermined transfer condition, among the circuit areas 110 in which the plurality of logic circuits 120 are written, into the circuit area to be divided. 110 is detected.

メモリ300は、例えば、構成部212、取得部220および検出部232の動作をCPU202が実行するためのプログラム等を格納する。また、メモリ300は、論理回路120を実現するための回路情報を格納する。また、メモリ300は、例えば、論理回路120が処理を実行する際の一時記憶領域として使用される。なお、データ処理装置12は、論理回路120が処理を実行する際の一時記憶領域を含むメモリを、メモリ300とは別に有してもよい。   The memory 300 stores, for example, programs for the CPU 202 to execute the operations of the configuration unit 212, the acquisition unit 220, and the detection unit 232. The memory 300 stores circuit information for realizing the logic circuit 120. The memory 300 is used as a temporary storage area when the logic circuit 120 executes processing, for example. Note that the data processing device 12 may have a memory including a temporary storage area when the logic circuit 120 executes processing separately from the memory 300.

入出力インタフェース320は、データ処理装置12の外部と通信する。例えば、入出力インタフェース320は、論理回路120を実現するための回路情報等の各種情報をデータ処理装置12の外部から受け、受けた情報をCPU202、メモリ300等に転送する。   The input / output interface 320 communicates with the outside of the data processing device 12. For example, the input / output interface 320 receives various types of information such as circuit information for realizing the logic circuit 120 from the outside of the data processing device 12 and transfers the received information to the CPU 202, the memory 300, and the like.

なお、データ処理装置12の構成は、図2に示す例に限定されない。例えば、データ処理装置12は、複数の集積回路100を有してもよい。また、データ処理装置12は、複数のFPGAチップを含むパッケージを集積回路100として有してもよい。この場合、データ処理装置12は、1つのFPGAチップを1つの回路領域110に割り当ててもよい。また、構成部212、取得部220および検出部232を含む制御回路202は、ハードウェアのみで実現されてもよい。   The configuration of the data processing device 12 is not limited to the example shown in FIG. For example, the data processing device 12 may include a plurality of integrated circuits 100. Further, the data processing device 12 may have a package including a plurality of FPGA chips as the integrated circuit 100. In this case, the data processing device 12 may assign one FPGA chip to one circuit area 110. In addition, the control circuit 202 including the configuration unit 212, the acquisition unit 220, and the detection unit 232 may be realized only by hardware.

図3は、図2に示した論理回路120および監視回路130の一例を示す図である。論理回路120は、内部バスIBUSに接続されるバスインタフェース121を有する。バスインタフェース121は、バスBUS2に接続されたCPU202等の装置との通信を実行する。例えば、バスインタフェース121は、制御信号BCNT(BCNTi、BCNTo)を用いて、CPU202との間でデータDATA(DATAi、DATAo)の転送を実行する。   FIG. 3 is a diagram illustrating an example of the logic circuit 120 and the monitoring circuit 130 illustrated in FIG. The logic circuit 120 has a bus interface 121 connected to the internal bus IBUS. The bus interface 121 executes communication with a device such as the CPU 202 connected to the bus BUS2. For example, the bus interface 121 transfers data DATA (DATAi, DATAo) to and from the CPU 202 using the control signal BCNT (BCNTi, BCNTo).

なお、図3に示すデータDATAoは、論理回路120から内部バスIBUSに出力されるデータDATAを示し、データDATAiは、論理回路120が内部バスIBUSを介して受けるデータDATAを示す。また、制御信号BCNToは、論理回路120から内部バスIBUSに出力される制御信号BCNTを示し、制御信号BCNTiは、論理回路120が内部バスIBUSを介して受ける制御信号BCNTを示す。制御信号BCNTには、リクエストを通知する信号、アドレス、バースト長等のデータサイズを示す情報等が含まれる。このため、監視回路130は、バスインタフェース121と内部バスIBUSとの間で転送される制御信号BCNTを監視することにより、論理回路120のデータ転送量を監視できる。図3に示す例では、監視回路130は、論理回路120毎に設けられる。   3 indicates data DATA output from the logic circuit 120 to the internal bus IBUS, and data DATAi indicates data DATA received by the logic circuit 120 via the internal bus IBUS. The control signal BCNTo indicates the control signal BCNT output from the logic circuit 120 to the internal bus IBUS, and the control signal BCNTi indicates the control signal BCNT that the logic circuit 120 receives via the internal bus IBUS. The control signal BCNT includes a signal notifying a request, information indicating a data size such as an address and a burst length. Therefore, the monitoring circuit 130 can monitor the data transfer amount of the logic circuit 120 by monitoring the control signal BCNT transferred between the bus interface 121 and the internal bus IBUS. In the example illustrated in FIG. 3, the monitoring circuit 130 is provided for each logic circuit 120.

監視回路130は、内部バスIBUSに接続されるバスインタフェース131と、監視制御部132と、データ転送量算出部133と、カウンタ134、135と、平均算出部136と、ピーク算出部137と、保持部138、139とを有する。   The monitoring circuit 130 includes a bus interface 131 connected to the internal bus IBUS, a monitoring control unit 132, a data transfer amount calculation unit 133, counters 134 and 135, an average calculation unit 136, a peak calculation unit 137, and a storage Parts 138 and 139.

バスインタフェース131は、バスBUS2に接続されたCPU202等の装置との通信を実行する。例えば、CPU202は、制御信号CINFを用いて、論理回路120のデータ転送量の平均およびピークをそれぞれ示すデータADATA、PDATAを、監視回路130の監視結果として取得する。以下、データADATAは、平均データ転送量ADATAとも称され、データPDATAは、ピークデータ転送量PDATAとも称される。   The bus interface 131 executes communication with a device such as the CPU 202 connected to the bus BUS2. For example, the CPU 202 uses the control signal CINF to acquire data ADATA and PDATA indicating the average and peak of the data transfer amount of the logic circuit 120 as monitoring results of the monitoring circuit 130, respectively. Hereinafter, the data ADATA is also referred to as an average data transfer amount ADATA, and the data PDATA is also referred to as a peak data transfer amount PDATA.

監視制御部132は、監視回路130の動作を制御する。例えば、監視制御部132は、タイマTM1、TM2を有する。タイマTM1、TM2で計測する時間(以下、タイマ値とも称する)の設定は、例えば、CPU202からバスインタフェース131を通して実行される。例えば、CPU202は、論理回路120のデータ転送量の平均およびピークを算出する際に使用する第1期間および第2期間をそれぞれ示すタイマ値を、制御信号CINFを用いて、タイマTM1、TM2にそれぞれ設定する。第1期間は、例えば、数秒から数分程度の期間である。また、第2期間は、例えば、第1期間より短い期間であり、数ミリ秒から数秒程度の期間である。   The monitoring control unit 132 controls the operation of the monitoring circuit 130. For example, the monitoring control unit 132 includes timers TM1 and TM2. Setting of the time (hereinafter also referred to as timer value) measured by the timers TM1 and TM2 is executed from the CPU 202 through the bus interface 131, for example. For example, the CPU 202 uses the control signal CINF to set timer values indicating the first period and the second period used when calculating the average and peak of the data transfer amount of the logic circuit 120 to the timers TM1 and TM2, respectively. Set. The first period is, for example, a period of several seconds to several minutes. Further, the second period is, for example, a period shorter than the first period, and is a period of about several milliseconds to several seconds.

そして、監視制御部132は、タイマTM1に設定された第1期間が経過する度に、タイマTM1に設定された第1期間が経過したことをカウンタ134および平均算出部136に通知する。また、監視制御部132は、タイマTM2に設定された第2期間が経過する度に、タイマTM2に設定された第2期間が経過したことをカウンタ135およびピーク算出部137に通知する。   Then, every time the first period set in the timer TM1 elapses, the monitoring control unit 132 notifies the counter 134 and the average calculation unit 136 that the first period set in the timer TM1 has elapsed. In addition, every time the second period set in the timer TM2 elapses, the monitoring control unit 132 notifies the counter 135 and the peak calculation unit 137 that the second period set in the timer TM2 has elapsed.

データ転送量算出部133は、論理回路120内のバスインタフェース121と内部バスIBUSとの間で転送される制御信号BCNTを取得する。そして、データ転送量算出部133は、制御信号BCNTに含まれるデータサイズを示す情報に基づいて、論理回路120のデータ転送量を算出する。そして、データ転送量算出部133は、制御信号BCNTに基づいて算出した論理回路120のデータ転送量を示す情報を、カウンタ134、135に転送する。   The data transfer amount calculation unit 133 acquires a control signal BCNT transferred between the bus interface 121 in the logic circuit 120 and the internal bus IBUS. Then, the data transfer amount calculation unit 133 calculates the data transfer amount of the logic circuit 120 based on information indicating the data size included in the control signal BCNT. Then, the data transfer amount calculation unit 133 transfers information indicating the data transfer amount of the logic circuit 120 calculated based on the control signal BCNT to the counters 134 and 135.

カウンタ134は、論理回路120のデータ転送量の平均を算出するためのカウンタである。例えば、カウンタ134は、第1期間が経過したことを示す信号を監視制御部132から受ける度に、カウンタ値を0にリセットする。そして、カウンタ134は、論理回路120のデータ転送量を示す情報をデータ転送量算出部133から受ける度に、データ転送量算出部133から受けた情報が示すデータ転送量をカウンタ値に加算する。これにより、カウンタ134のカウンタ値は、第1期間当たりの論理回路120のデータ転送量を示す。カウンタ134のカウンタ値は、平均算出部136に通知される。   The counter 134 is a counter for calculating the average data transfer amount of the logic circuit 120. For example, the counter 134 resets the counter value to 0 each time a signal indicating that the first period has elapsed is received from the monitoring control unit 132. Each time the counter 134 receives information indicating the data transfer amount of the logic circuit 120 from the data transfer amount calculation unit 133, the counter 134 adds the data transfer amount indicated by the information received from the data transfer amount calculation unit 133 to the counter value. Accordingly, the counter value of the counter 134 indicates the data transfer amount of the logic circuit 120 per first period. The counter value of the counter 134 is notified to the average calculation unit 136.

カウンタ135は、論理回路120のデータ転送量のピークを算出するためのカウンタである。例えば、カウンタ135は、第2期間が経過したことを示す信号を監視制御部132から受ける度に、カウンタ値を0にリセットする。そして、カウンタ135は、論理回路120のデータ転送量を示す情報をデータ転送量算出部133から受ける度に、データ転送量算出部133から受けた情報が示すデータ転送量をカウンタ値に加算する。これにより、カウンタ135のカウンタ値は、第1期間より短い第2期間当たり論理回路120のデータ転送量を示す。カウンタ135のカウンタ値は、ピーク算出部137に通知される。   The counter 135 is a counter for calculating the peak of the data transfer amount of the logic circuit 120. For example, the counter 135 resets the counter value to 0 every time a signal indicating that the second period has elapsed is received from the monitoring control unit 132. Each time the counter 135 receives information indicating the data transfer amount of the logic circuit 120 from the data transfer amount calculation unit 133, the counter 135 adds the data transfer amount indicated by the information received from the data transfer amount calculation unit 133 to the counter value. Thereby, the counter value of the counter 135 indicates the data transfer amount of the logic circuit 120 per second period shorter than the first period. The counter value of the counter 135 is notified to the peak calculation unit 137.

平均算出部136は、カウンタ134がリセットされる前のカウンタ値を第1期間当たりのデータ転送量として繰り返し取得し、第1期間当たりのデータ転送量を1秒間当たりのデータ転送量(バイト/秒)に換算する。これにより、1秒間当たりのデータ転送量が第1期間毎に繰り返し算出される。そして、平均算出部136は、繰り返し算出した1秒間当たりのデータ転送量のうち、最大値を平均データ転送量ADATAとして、保持部138に格納する。すなわち、平均算出部136は、カウンタ134のカウンタ値から算出した1秒間当たりのデータ転送量が最大値を更新する度に、保持部138に保持されている平均データ転送量ADATAを更新する。なお、最大値のリセットは、例えば、CPU202からバスインタフェース131を通して実行される。   The average calculation unit 136 repeatedly acquires the counter value before the counter 134 is reset as the data transfer amount per first period, and the data transfer amount per first period is the data transfer amount (bytes / second) per second. ). Thereby, the data transfer amount per second is repeatedly calculated every first period. Then, the average calculation unit 136 stores the maximum value in the holding unit 138 as the average data transfer amount ADATA among the repeatedly calculated data transfer amounts per second. That is, the average calculation unit 136 updates the average data transfer amount ADATA held in the holding unit 138 every time the data transfer amount per second calculated from the counter value of the counter 134 updates the maximum value. The resetting of the maximum value is executed from the CPU 202 through the bus interface 131, for example.

ピーク算出部137は、カウンタ135がリセットされる前のカウンタ値を第2期間当たりのデータ転送量として繰り返し取得し、第2期間当たりのデータ転送量を1秒間当たりのデータ転送量(バイト/秒)に換算する。これにより、1秒間当たりのデータ転送量が第2期間毎に繰り返し算出される。そして、ピーク算出部137は、繰り返し算出した1秒間当たりのデータ転送量のうち、最大値をピークデータ転送量PDATAとして、保持部139に格納する。すなわち、ピーク算出部137は、カウンタ135のカウンタ値から算出した1秒間当たりのデータ転送量が最大値を更新する度に、保持部139に保持されているピークデータ転送量PDATAを更新する。なお、最大値のリセットは、例えば、CPU202からバスインタフェース131を通して実行される。   The peak calculation unit 137 repeatedly obtains the counter value before the counter 135 is reset as the data transfer amount per second period, and calculates the data transfer amount per second period as the data transfer amount per second (byte / second). ). Thereby, the data transfer amount per second is repeatedly calculated every second period. Then, the peak calculation unit 137 stores the maximum value among the repeatedly calculated data transfer amount per second as the peak data transfer amount PDATA in the holding unit 139. That is, the peak calculation unit 137 updates the peak data transfer amount PDATA held in the holding unit 139 every time the data transfer amount per second calculated from the counter value of the counter 135 updates the maximum value. The resetting of the maximum value is executed from the CPU 202 through the bus interface 131, for example.

保持部138は、平均算出部136により算出された平均データ転送量ADATAを保持する。保持部138に保持された平均データ転送量ADATAは、例えば、バスインタフェース131を介してCPU202に転送される。   The holding unit 138 holds the average data transfer amount ADATA calculated by the average calculation unit 136. The average data transfer amount ADATA held in the holding unit 138 is transferred to the CPU 202 via the bus interface 131, for example.

保持部139は、ピーク算出部137により算出されたピークデータ転送量PDATAを保持する。保持部139に保持されたピークデータ転送量PDATAは、例えば、バスインタフェース131を介してCPU202に転送される。   The holding unit 139 holds the peak data transfer amount PDATA calculated by the peak calculation unit 137. The peak data transfer amount PDATA held in the holding unit 139 is transferred to the CPU 202 via the bus interface 131, for example.

ここで、監視回路130のカウンタ134、135のビット幅等の一例を以下に示す。回路領域110とバスBUSとの間のバス幅が128ビット(16バイト)で、データ転送に用いるクロックの周波数が1GHz(ギガヘルツ)である場合、1秒間当たりのデータ転送量の上限は、16ギガバイトである。この場合、数秒から数分の間のデータ転送量の累積値は、符号無しの64ビット以下の値である。また、1秒間当たりのデータ転送量(バイト/秒)に換算した平均データ転送量ADATAおよびピークデータ転送量PDATAも、符号無しの64ビット以下の値である。したがって、2個のカウンタ134、135と2個の保持部138、139のビット数の合計は、64ビットの4倍であり、32バイト以下である。このように、監視回路130の回路規模を回路領域110の規模に対して小さくすることができるため、監視回路130を回路領域110内に設けたことが原因で論理回路120が回路領域110に収まらなくなることの発生頻度を低減することができる。   Here, an example of the bit widths of the counters 134 and 135 of the monitoring circuit 130 is shown below. When the bus width between the circuit area 110 and the bus BUS is 128 bits (16 bytes) and the clock frequency used for data transfer is 1 GHz (gigahertz), the upper limit of the data transfer amount per second is 16 gigabytes. It is. In this case, the cumulative value of the data transfer amount between several seconds to several minutes is a value of 64 bits or less without a sign. The average data transfer amount ADATA and the peak data transfer amount PDATA converted to the data transfer amount per second (bytes / second) are also 64 bits or less with no sign. Therefore, the total number of bits of the two counters 134 and 135 and the two holding units 138 and 139 is four times 64 bits and is 32 bytes or less. As described above, since the circuit scale of the monitoring circuit 130 can be reduced with respect to the scale of the circuit area 110, the logic circuit 120 is not accommodated in the circuit area 110 because the monitoring circuit 130 is provided in the circuit area 110. The occurrence frequency of disappearance can be reduced.

なお、論理回路120および監視回路130の構成は、図3に示す例に限定されない。例えば、第1期間当たりのデータ転送量および第2期間当たりのデータ転送量を1秒間当たりのデータ転送量にそれぞれ換算する処理は、CPU202で実行されてもよい。この場合、保持部138に保持されるデータADATAが示すデータ転送量は、第1期間当たりのデータ転送量であり、保持部139に保持されるデータPDATAが示すデータ転送量は、第2期間当たりのデータ転送量である。   Note that the configurations of the logic circuit 120 and the monitoring circuit 130 are not limited to the example shown in FIG. For example, the CPU 202 may execute the process of converting the data transfer amount per first period and the data transfer amount per second period into the data transfer amount per second. In this case, the data transfer amount indicated by the data ADATA held in the holding unit 138 is the data transfer amount per first period, and the data transfer amount indicated by the data PDATA held in the holding unit 139 is per second period. Data transfer amount.

また、回路領域110内に複数の論理回路120が書き込まれる場合、監視回路130は、複数の論理回路120で共有されてもよい。この場合、データ転送量算出部133は、複数の論理回路120の各々と内部バスIBUSとの間で転送される制御信号BCNTを取得する。すなわち、データ転送量算出部133は、自身を含む回路領域110と図2に示したバスBUSとの間で転送される制御信号BCNTを取得する。さらに、この場合、監視回路130は、回路領域110の外部に固定して設けられてもよい。   When a plurality of logic circuits 120 are written in the circuit area 110, the monitoring circuit 130 may be shared by the plurality of logic circuits 120. In this case, the data transfer amount calculation unit 133 acquires the control signal BCNT transferred between each of the plurality of logic circuits 120 and the internal bus IBUS. That is, the data transfer amount calculation unit 133 acquires the control signal BCNT transferred between the circuit area 110 including itself and the bus BUS shown in FIG. Further, in this case, the monitoring circuit 130 may be fixedly provided outside the circuit area 110.

図4は、図2に示したデータ処理装置12の動作の一例を示す。図4に示す論理回路追加処理および再構成処理は、例えば、ソフトウェアでCPU202を制御することにより実現される。なお、図4に示す論理回路追加処理および再構成処理は、コンピュータが回路領域110への論理回路120の割り当てを管理する論理回路管理方法の一態様である。再構成処理は、例えば、所定の時間間隔で繰り返し実行され、論理回路追加処理と並列に実行可能である。先ず、論理回路追加処理について説明する。   FIG. 4 shows an example of the operation of the data processing device 12 shown in FIG. The logic circuit addition process and the reconfiguration process shown in FIG. 4 are realized by controlling the CPU 202 with software, for example. Note that the logic circuit addition process and the reconfiguration process illustrated in FIG. 4 are an aspect of a logic circuit management method in which the computer manages the allocation of the logic circuit 120 to the circuit area 110. For example, the reconfiguration process is repeatedly executed at predetermined time intervals and can be executed in parallel with the logic circuit addition process. First, the logic circuit addition process will be described.

ステップS100では、CPU202は、論理回路120に監視回路130を付加する。例えば、CPU202は、論理回路120を実現するための回路情報に、監視回路130を実現するための回路情報を付加する。   In step S <b> 100, the CPU 202 adds the monitoring circuit 130 to the logic circuit 120. For example, the CPU 202 adds circuit information for realizing the monitoring circuit 130 to circuit information for realizing the logic circuit 120.

次に、ステップS110では、CPU202は、空きの回路領域110を検索する。   Next, in step S110, the CPU 202 searches for an empty circuit area 110.

次に、ステップS120では、CPU202は、空きの回路領域110が存在するか否かを判定する。空きの回路領域110が存在する場合、CPU202の動作は、ステップS130に移る。すなわち、ステップS110で空きの回路領域110が検出された場合、CPU202の動作は、ステップS130に移る。一方、空きの回路領域110が存在しない場合、CPU202の動作は、ステップS110に戻る。すなわち、ステップS110で空きの回路領域110が検出されない場合、CPU202の動作は、ステップS110に戻る。この場合、再構成処理のうちの統合処理または論理回路120の消去等により空きの回路領域110が確保されるまで、ステップS130の処理は、待機される。   Next, in step S120, the CPU 202 determines whether there is an empty circuit area 110 or not. If there is a free circuit area 110, the operation of the CPU 202 proceeds to step S130. That is, when an empty circuit area 110 is detected in step S110, the operation of the CPU 202 moves to step S130. On the other hand, if there is no free circuit area 110, the operation of the CPU 202 returns to step S110. That is, when the empty circuit area 110 is not detected in step S110, the operation of the CPU 202 returns to step S110. In this case, the process of step S130 is on standby until an empty circuit area 110 is secured by the integration process of the reconfiguration process or by erasing the logic circuit 120.

ステップS130では、CPU202は、論理回路120および監視回路130を、空きの回路領域110に書き込む。例えば、CPU202は、監視回路130を付加した論理回路120を実現するための回路情報、すなわち、ステップS100の処理で生成した回路情報に基づいて、論理回路120および監視回路130を空きの回路領域110に書き込む。これにより、論理回路追加処理は、終了する。次に、再構成処理について説明する。   In step S <b> 130, the CPU 202 writes the logic circuit 120 and the monitoring circuit 130 in the empty circuit area 110. For example, the CPU 202 divides the logic circuit 120 and the monitoring circuit 130 into an empty circuit area 110 based on circuit information for realizing the logic circuit 120 to which the monitoring circuit 130 is added, that is, circuit information generated in the process of step S100. Write to. Thereby, the logic circuit addition process is completed. Next, the reconstruction process will be described.

ステップS200では、CPU202は、各回路領域110に書き込まれた論理回路120のデータ転送量を取得する。例えば、CPU202は、各回路領域110に書き込まれた監視回路130から平均データ転送量ADATAおよびピークデータ転送量PDATAを取得する。   In step S200, the CPU 202 acquires the data transfer amount of the logic circuit 120 written in each circuit area 110. For example, the CPU 202 acquires the average data transfer amount ADATA and the peak data transfer amount PDATA from the monitoring circuit 130 written in each circuit area 110.

次に、ステップS300では、CPU202は、統合処理を実行する。統合処理では、CPU202は、1つの回路領域110に割り当て可能な複数の論理回路120を検出した場合、検出した複数の論理回路120を1つの回路領域110に書き込む。なお、統合処理の詳細は、図5で説明する。   Next, in step S300, the CPU 202 executes integration processing. In the integration process, when the CPU 202 detects a plurality of logic circuits 120 that can be assigned to one circuit area 110, the CPU 202 writes the detected plurality of logic circuits 120 in one circuit area 110. Details of the integration process will be described with reference to FIG.

次に、ステップS400では、CPU202は、分割処理対象の回路領域110の候補(以下、分割候補とも称する)を検索する分割候補検索処理を実行する。なお、分割処理対象の回路領域110は、ステップS600の分割処理の対象となる回路領域110である。分割候補検索処理の詳細は、図6で説明する。   Next, in step S400, the CPU 202 executes a division candidate search process for searching for candidates for the circuit area 110 to be divided (hereinafter also referred to as division candidates). Note that the circuit area 110 to be divided is the circuit area 110 to be divided in step S600. Details of the division candidate search processing will be described with reference to FIG.

次に、ステップS500では、CPU202は、分割候補が存在するか否かを判定する。分割候補が存在する場合、CPU202の動作は、ステップS600に移る。すなわち、ステップS400の分割候補検索処理で分割候補が検出された場合、CPU202の動作は、ステップS600に移る。一方、分割候補が存在しない場合、今回の再構成処理は終了する。すなわち、ステップS400の分割候補検索処理で分割候補が検出されない場合、今回の再構成処理は終了する。   Next, in step S500, the CPU 202 determines whether there is a division candidate. When there is a division candidate, the operation of the CPU 202 moves to step S600. That is, when a division candidate is detected in the division candidate search process in step S400, the operation of the CPU 202 moves to step S600. On the other hand, when there is no division candidate, the current reconstruction process ends. That is, when no division candidate is detected in the division candidate search process in step S400, the current reconstruction process ends.

次に、ステップS600では、CPU202は、1つの回路領域110に書き込まれた複数の論理回路120を複数の回路領域110に分けて書き込む分割処理を実行する。分割処理の詳細は、図7で説明する。分割処理の終了に伴い、今回の再構成処理は終了する。   Next, in step S <b> 600, the CPU 202 executes a dividing process in which a plurality of logic circuits 120 written in one circuit area 110 are written in a plurality of circuit areas 110. Details of the division processing will be described with reference to FIG. With the end of the division process, the current reconstruction process ends.

なお、再構成処理が所定の時間間隔で繰り返し実行されるため、分割処理対象の回路領域110を検出する処理および統合処理も所定の時間間隔で繰り返し実行される。また、データ処理装置12の動作は、図4に示す例に限定されない。例えば、データ処理装置12は、図8に示すように、分割処理と統合処理とのいずれかを実行してもよい。   Since the reconfiguration process is repeatedly executed at a predetermined time interval, the process for detecting the circuit area 110 to be divided and the integration process are also repeatedly executed at a predetermined time interval. Further, the operation of the data processing device 12 is not limited to the example shown in FIG. For example, the data processing device 12 may execute either a division process or an integration process as shown in FIG.

図5は、図4に示した統合処理の一例を示す。すなわち、図5は、図4に示したステップS300の一例を示す。例えば、ステップS310の処理は、図4に示したステップS200の処理が終了した後、実行される。なお、ステップS310からステップS314までの処理は、図4に示したステップS200の処理と並列に実行されてもよい。   FIG. 5 shows an example of the integration process shown in FIG. That is, FIG. 5 shows an example of step S300 shown in FIG. For example, the process of step S310 is executed after the process of step S200 illustrated in FIG. In addition, the process from step S310 to step S314 may be performed in parallel with the process of step S200 shown in FIG.

ステップS310では、CPU202は、論理回路120が書き込まれた回路領域110の中から、2つの回路領域110を選択する。   In step S310, the CPU 202 selects two circuit areas 110 from the circuit area 110 in which the logic circuit 120 is written.

次に、ステップS312では、CPU202は、ステップS310で選択した2つの回路領域110内の論理回路120の規模の合計SZを算出する。例えば、2つの回路領域110の一方に2つの論理回路120が書き込まれ、2つの回路領域110の他方に1つの論理回路120が書き込まれていた場合、CPU202は、3つの論理回路120の規模を合計した値を合計SZとして算出する。   Next, in step S312, the CPU 202 calculates the total size SZ of the logic circuits 120 in the two circuit areas 110 selected in step S310. For example, when two logic circuits 120 are written in one of the two circuit areas 110 and one logic circuit 120 is written in the other of the two circuit areas 110, the CPU 202 increases the scale of the three logic circuits 120. The total value is calculated as the total SZ.

次に、ステップS314では、CPU202は、2つの回路領域110内の複数の論理回路120の規模の合計SZが1つの回路領域110の規模以下か否かを判定する。このように、図5に示す例では、CPU202は、監視回路130の規模が回路領域110の規模に対して無視できる大きさとして、2つの回路領域110内の複数の論理回路120が1つの回路領域110に収まるか否かを判定する。   Next, in step S <b> 314, the CPU 202 determines whether the total size SZ of the plurality of logic circuits 120 in the two circuit areas 110 is less than or equal to the scale of one circuit area 110. As described above, in the example illustrated in FIG. 5, the CPU 202 determines that the size of the monitoring circuit 130 is negligible with respect to the size of the circuit region 110, and the plurality of logic circuits 120 in the two circuit regions 110 are one circuit. It is determined whether or not it fits in the area 110.

合計SZが1つの回路領域110の規模以下である場合、CPU202の動作は、ステップS316に移る。すなわち、CPU202は、2つの回路領域110内の複数の論理回路120が1つの回路領域110に収まると判定した場合、動作をステップS316に移す。一方、合計SZが1つの回路領域110の規模を越える場合、CPU202の動作は、ステップS326に移る。すなわち、CPU202は、2つの回路領域110内の複数の論理回路120が1つの回路領域110に収まらないと判定した場合、動作をステップS326に移す。   If the total SZ is less than or equal to the scale of one circuit area 110, the operation of the CPU 202 moves to step S316. In other words, when the CPU 202 determines that the plurality of logic circuits 120 in the two circuit areas 110 can be accommodated in one circuit area 110, the CPU 202 moves the operation to step S316. On the other hand, when the total SZ exceeds the scale of one circuit area 110, the operation of the CPU 202 proceeds to step S326. In other words, when the CPU 202 determines that the plurality of logic circuits 120 in the two circuit areas 110 do not fit in one circuit area 110, the CPU 202 moves the operation to step S326.

ステップS316では、CPU202は、2つの回路領域110内の複数の論理回路120の全体の平均データ量ADyを算出する。例えば、CPU202は、図4に示したステップS200で取得した平均データ転送量ADATAのうち、2つの回路領域110内の複数の論理回路120の各々の平均データ転送量ADATAを選択する。そして、CPU202は、2つの回路領域110内の複数の論理回路120の各々の平均データ転送量ADATAの合計を、平均データ量ADyとして算出する。   In step S <b> 316, the CPU 202 calculates the total average data amount ADy of the plurality of logic circuits 120 in the two circuit areas 110. For example, the CPU 202 selects the average data transfer amount ADATA of each of the plurality of logic circuits 120 in the two circuit areas 110 from the average data transfer amount ADATA acquired in step S200 illustrated in FIG. Then, the CPU 202 calculates the total of the average data transfer amount ADATA of each of the plurality of logic circuits 120 in the two circuit areas 110 as the average data amount ADy.

次に、ステップS318では、CPU202は、平均データ量ADyが第1閾値以下か否かを判定する。第1閾値は、回路領域110とバスBUSとの間のバス帯域(回路領域110のデータ転送レート)以下の値に予め設定される。例えば、第1閾値は、回路領域110とバスBUSとの間のバス帯域の7割程度の値に予め設定される。   Next, in step S318, the CPU 202 determines whether or not the average data amount ADy is equal to or less than the first threshold value. The first threshold value is set in advance to a value equal to or less than the bus bandwidth between the circuit area 110 and the bus BUS (data transfer rate of the circuit area 110). For example, the first threshold is set in advance to a value of about 70% of the bus band between the circuit area 110 and the bus BUS.

平均データ量ADyが第1閾値以下である場合、CPU202の動作は、ステップS320に移る。一方、平均データ量ADyが第1閾値を越える場合、CPU202の動作は、ステップS326に移る。   When the average data amount ADy is less than or equal to the first threshold value, the operation of the CPU 202 moves to step S320. On the other hand, when the average data amount ADy exceeds the first threshold, the operation of the CPU 202 proceeds to step S326.

ステップS320では、CPU202は、2つの回路領域110内の複数の論理回路120の合計ピークデータ量PDyを算出する。例えば、CPU202は、図4に示したステップS200で取得したピークデータ転送量PDATAのうち、2つの回路領域110内の複数の論理回路120の各々のピークデータ転送量PDATAを選択する。そして、CPU202は、2つの回路領域110内の複数の論理回路120の各々のピークデータ転送量PDATAの合計を、合計ピークデータ量PDyとして算出する。   In step S320, the CPU 202 calculates the total peak data amount PDy of the plurality of logic circuits 120 in the two circuit areas 110. For example, the CPU 202 selects the peak data transfer amount PDATA of each of the plurality of logic circuits 120 in the two circuit areas 110 from the peak data transfer amount PDATA acquired in step S200 illustrated in FIG. Then, the CPU 202 calculates the total peak data transfer amount PDATA of each of the plurality of logic circuits 120 in the two circuit areas 110 as the total peak data amount PDy.

次に、ステップS322では、CPU202は、合計ピークデータ量PDyが第2閾値以下か否かを判定する。第2閾値は、第1閾値より大きい値に予め設定される。例えば、第2閾値は、回路領域110とバスBUSとの間のバス帯域の数倍の値に予め設定される。   Next, in step S322, the CPU 202 determines whether or not the total peak data amount PDy is equal to or smaller than a second threshold value. The second threshold is set in advance to a value greater than the first threshold. For example, the second threshold value is set in advance to a value that is several times the bus bandwidth between the circuit area 110 and the bus BUS.

合計ピークデータ量PDyが第2閾値以下である場合、CPU202の動作は、ステップS324に移る。一方、合計ピークデータ量PDyが第2閾値を越える場合、CPU202の動作は、ステップS326に移る。   When the total peak data amount PDy is equal to or smaller than the second threshold value, the operation of the CPU 202 moves to step S324. On the other hand, when the total peak data amount PDy exceeds the second threshold, the operation of the CPU 202 moves to step S326.

次に、ステップS324では、CPU202は、ステップS310で選択した2つの回路領域110を、統合候補の回路領域110の組み合わせとして、統合候補Yに登録する。統合候補Yは、例えば、図5に示す動作を実現するためのプログラムで使用される配列またはテーブル等である。   Next, in step S324, the CPU 202 registers the two circuit areas 110 selected in step S310 in the integration candidate Y as a combination of the integration candidate circuit areas 110. The integration candidate Y is, for example, an array or table used in a program for realizing the operation shown in FIG.

次に、ステップS326では、CPU202は、論理回路120が書き込まれた回路領域110の中から、2つの回路領域110の全ての組み合わせを選択したか否かを判定する。例えば、図2に示した回路領域110A、110B、110C、110Dの全てに論理回路120が書き込まれている場合、全ての組み合わせは、以下に示す6通りである。
6通りの組み合わせの内訳は、回路領域110A、110Bの組、回路領域110A、110Cの組、回路領域110A、110Dの組、回路領域110B、110Cの組、回路領域110B、110Dの組、回路領域110C、110Dの組である。
Next, in step S326, the CPU 202 determines whether all combinations of the two circuit areas 110 have been selected from the circuit area 110 in which the logic circuit 120 is written. For example, when the logic circuit 120 is written in all of the circuit areas 110A, 110B, 110C, and 110D shown in FIG. 2, there are six combinations shown below.
The breakdown of the six combinations includes the circuit areas 110A and 110B, the circuit areas 110A and 110C, the circuit areas 110A and 110D, the circuit areas 110B and 110C, the circuit areas 110B and 110D, and the circuit area. 110C and 110D.

全ての組み合わせを選択した場合、CPU202の動作は、ステップS328に移る。一方、選択していない組み合わせが存在する場合、CPU202の動作は、ステップS310に戻る。なお、2回目以降のステップS310では、CPU202は、既に選択した組み合わせと重複しないように、2つの回路領域110を選択する。   When all the combinations are selected, the operation of the CPU 202 moves to step S328. On the other hand, when there is an unselected combination, the operation of the CPU 202 returns to step S310. In the second and subsequent steps S310, the CPU 202 selects the two circuit areas 110 so as not to overlap with the already selected combination.

ステップS328では、CPU202は、統合候補Yに登録された組み合わせが存在するか否かを判定する。すなわち、CPU202は、ステップS310で選択した回路領域110の組み合わせの少なくとも1つの組み合わせを統合候補Yに登録したか否かを判定する。統合候補Yに回路領域110の組み合わせが登録されている場合、CPU202の動作は、ステップS330に移る。一方、統合候補Yに回路領域110の組み合わせが登録されていない場合、統合処理は終了し、CPU202の動作は、図4に示したステップS400に移る。   In step S328, the CPU 202 determines whether there is a combination registered in the integration candidate Y. In other words, the CPU 202 determines whether or not at least one combination of the circuit areas 110 selected in step S310 is registered in the integration candidate Y. When the combination of the circuit areas 110 is registered in the integration candidate Y, the operation of the CPU 202 moves to step S330. On the other hand, when the combination of the circuit areas 110 is not registered in the integration candidate Y, the integration process ends, and the operation of the CPU 202 moves to step S400 shown in FIG.

ステップS330では、CPU202は、統合候補Yに登録した組み合わせのうち、ステップS316で算出した平均データ量ADyが最小な組み合わせを選択する。平均データ量ADyが最小な組み合わせの回路領域110に含まれる論理回路120は、1つの回路領域110に割り当てられる論理回路120の組み合わせである。すなわち、CPU202は、ステップS310からステップS324までの処理を実行することにより、1つの回路領域110に割り当て可能な論理回路120の組み合わせを検出する。そして、CPU202は、ステップS330の処理を実行することにより、1つの回路領域110に割り当てる論理回路120の組み合わせを決定する。   In step S330, the CPU 202 selects a combination having the smallest average data amount ADy calculated in step S316 from the combinations registered in the integration candidate Y. The logic circuit 120 included in the circuit area 110 having the smallest average data amount ADy is a combination of the logic circuits 120 assigned to one circuit area 110. That is, the CPU 202 detects combinations of logic circuits 120 that can be assigned to one circuit area 110 by executing the processing from step S310 to step S324. Then, the CPU 202 determines the combination of the logic circuits 120 to be assigned to one circuit area 110 by executing the process of step S330.

平均データ量ADyが最小な組み合わせを選択することにより、1つの回路領域110に割り当てた複数の論理回路120のデータ転送量が所定の転送条件から外れる頻度を低減することができる。   By selecting a combination having the smallest average data amount ADy, it is possible to reduce the frequency at which the data transfer amounts of the plurality of logic circuits 120 assigned to one circuit area 110 deviate from predetermined transfer conditions.

次に、ステップS332では、CPU202は、ステップS330で選択した平均データ量ADyが最小な組み合わせの回路領域110に含まれる論理回路120を、1つの回路領域110に書き込む。   Next, in step S <b> 332, the CPU 202 writes the logic circuit 120 included in the combination of circuit areas 110 having the smallest average data amount ADy selected in step S <b> 330 in one circuit area 110.

例えば、CPU202は、ステップS330で選択した組み合わせが回路領域110A、110Cの組である場合、回路領域110Aに含まれる論理回路120と回路領域110Cに含まれる論理回路120とを、回路領域110Aに書き込む。これにより、回路領域110Cは、空きの回路領域110となる。この結果、回路領域110Cを新規の論理回路120に割り当てることが可能になり、集積回路100の利用効率を向上することができる。すなわち、論理回路120の搭載効率を向上することができる。   For example, when the combination selected in step S330 is a combination of the circuit areas 110A and 110C, the CPU 202 writes the logic circuit 120 included in the circuit area 110A and the logic circuit 120 included in the circuit area 110C into the circuit area 110A. . As a result, the circuit area 110 </ b> C becomes an empty circuit area 110. As a result, the circuit area 110C can be allocated to the new logic circuit 120, and the utilization efficiency of the integrated circuit 100 can be improved. That is, the mounting efficiency of the logic circuit 120 can be improved.

ステップS332の処理が実行されることにより、統合処理は終了し、CPU202の動作は、図4に示したステップS400に移る。   By executing the process of step S332, the integration process is completed, and the operation of the CPU 202 moves to step S400 shown in FIG.

なお、統合処理の例は、図5に示す例に限定されない。例えば、ステップS320、S322は、省かれてもよい。また、CPU202は、ステップS312において、2つの回路領域110内の論理回路120および監視回路130の規模の合計を、合計SZとして算出してもよい。すなわち、CPU202は、ステップS314において、2つの回路領域110内の論理回路120および監視回路130の規模の合計が1つの回路領域110の規模以下か否かを判定してもよい。   Note that the example of the integration process is not limited to the example illustrated in FIG. For example, steps S320 and S322 may be omitted. In step S312, the CPU 202 may calculate the sum of the scales of the logic circuit 120 and the monitoring circuit 130 in the two circuit areas 110 as the total SZ. That is, the CPU 202 may determine whether or not the total scale of the logic circuit 120 and the monitoring circuit 130 in the two circuit areas 110 is less than or equal to the scale of one circuit area 110 in step S314.

また、CPU202は、ステップS332の処理を、図4に示したステップS500の判定より後に実行してもよい。例えば、CPU202は、図4に示したステップS500で分割候補が存在すると判定した場合、ステップS332の処理を図7に示す分割処理のステップS616の処理と一緒に実行してもよい。また、CPU202は、図4に示したステップS500で分割候補が存在しないと判定した場合、ステップS332の処理を実行して再構成処理を終了してもよい。ステップS332の処理が図4に示したステップS500の判定より後に実行される場合、図4に示すステップS400以降の処理は、ステップS332の処理が実行されたと仮定した状態に基づいて実行される。例えば、ステップS332の処理が実行されたと仮定した場合、図7に示すステップS610で使用される空きの回路領域110の数は、現状の空きの回路領域110の数に1を加算した数である。   In addition, the CPU 202 may execute the process in step S332 after the determination in step S500 illustrated in FIG. For example, if it is determined in step S500 illustrated in FIG. 4 that there is a division candidate, the CPU 202 may execute the process in step S332 together with the process in step S616 of the division process illustrated in FIG. Further, when it is determined in step S500 illustrated in FIG. 4 that there is no division candidate, the CPU 202 may execute the process of step S332 and end the reconstruction process. When the process of step S332 is executed after the determination of step S500 shown in FIG. 4, the processes after step S400 shown in FIG. 4 are executed based on the state assumed that the process of step S332 is executed. For example, assuming that the process of step S332 is executed, the number of free circuit areas 110 used in step S610 shown in FIG. 7 is a number obtained by adding 1 to the current number of free circuit areas 110. .

図6は、図4に示した分割候補検索処理の一例を示す。すなわち、図6は、図4に示したステップS400の一例を示す。例えば、ステップS410の処理は、図4に示したステップS300の統合処理が終了した後、実行される。   FIG. 6 shows an example of the division candidate search process shown in FIG. That is, FIG. 6 shows an example of step S400 shown in FIG. For example, the process of step S410 is executed after the integration process of step S300 illustrated in FIG.

ステップS410では、CPU202は、複数の論理回路120が書き込まれた回路領域110が存在するか否かを判定する。複数の論理回路120が書き込まれた回路領域110が存在する場合、CPU202の動作は、ステップS412に移る。一方、複数の論理回路120が書き込まれた回路領域110が存在しない場合、分割候補検索処理は終了し、CPU202の動作は、図4に示したステップS500に移る。   In step S410, the CPU 202 determines whether or not the circuit area 110 in which the plurality of logic circuits 120 are written exists. If there is a circuit area 110 in which a plurality of logic circuits 120 are written, the operation of the CPU 202 proceeds to step S412. On the other hand, if there is no circuit area 110 in which a plurality of logic circuits 120 are written, the division candidate search process ends, and the operation of the CPU 202 moves to step S500 shown in FIG.

ステップS412では、CPU202は、複数の論理回路120が書き込まれた回路領域110の中から、1つの回路領域110を選択する。   In step S412, the CPU 202 selects one circuit area 110 from the circuit area 110 in which the plurality of logic circuits 120 are written.

次に、ステップS414では、CPU202は、ステップS412で選択した1つの回路領域110内の複数の論理回路120の全体の平均データ量ADzを算出する。例えば、CPU202は、図4に示したステップS200で取得した平均データ転送量ADATAのうち、ステップS412で選択した1つの回路領域110内の複数の論理回路120の各々の平均データ転送量ADATAを選択する。そして、CPU202は、ステップS412で選択した1つの回路領域110内の複数の論理回路120の各々の平均データ転送量ADATAの合計を、平均データ量ADzとして算出する。   Next, in step S414, the CPU 202 calculates the entire average data amount ADz of the plurality of logic circuits 120 in the one circuit area 110 selected in step S412. For example, the CPU 202 selects the average data transfer amount ADATA of each of the plurality of logic circuits 120 in one circuit area 110 selected in step S412 from the average data transfer amount ADATA acquired in step S200 shown in FIG. To do. Then, the CPU 202 calculates the total of the average data transfer amount ADATA of each of the plurality of logic circuits 120 in one circuit area 110 selected in step S412 as the average data amount ADz.

次に、ステップS416では、CPU202は、平均データ量ADzが第1閾値を越えるか否かを判定する。第1閾値は、例えば、図5に示した統合処理で使用される第1閾値と同じである。平均データ量ADzが第1閾値を越える場合、CPU202の動作は、ステップS422に移る。一方、平均データ量ADzが第1閾値以下である場合、CPU202の動作は、ステップS418に移る。   Next, in step S416, the CPU 202 determines whether or not the average data amount ADz exceeds the first threshold value. For example, the first threshold is the same as the first threshold used in the integration process illustrated in FIG. When the average data amount ADz exceeds the first threshold value, the operation of the CPU 202 moves to step S422. On the other hand, when the average data amount ADz is less than or equal to the first threshold value, the operation of the CPU 202 moves to step S418.

ステップS418では、CPU202は、ステップS412で選択した1つの回路領域110内の複数の論理回路120の合計ピークデータ量PDzを算出する。例えば、CPU202は、図4に示したステップS200で取得したピークデータ転送量PDATAのうち、ステップS412で選択した1つの回路領域110内の複数の論理回路120の各々のピークデータ転送量PDATAを選択する。そして、CPU202は、ステップS412で選択した1つの回路領域110内の複数の論理回路120の各々のピークデータ転送量PDATAの合計を、合計ピークデータ量PDzとして算出する。   In step S418, the CPU 202 calculates the total peak data amount PDz of the plurality of logic circuits 120 in one circuit area 110 selected in step S412. For example, the CPU 202 selects the peak data transfer amount PDATA of each of the plurality of logic circuits 120 in the one circuit area 110 selected in step S412 from the peak data transfer amount PDATA acquired in step S200 illustrated in FIG. To do. Then, the CPU 202 calculates the total peak data transfer amount PDATA of each of the plurality of logic circuits 120 in one circuit area 110 selected in step S412 as the total peak data amount PDz.

次に、ステップS420では、CPU202は、合計ピークデータ量PDzが第2閾値を越えるか否かを判定する。第2閾値は、例えば、図5に示した統合処理で使用される第2閾値と同じである。合計ピークデータ量PDzが第2閾値を越える場合、CPU202の動作は、ステップS422に移る。一方、合計ピークデータ量PDzが第2閾値以下である場合、CPU202の動作は、ステップS424に移る。   Next, in step S420, the CPU 202 determines whether or not the total peak data amount PDz exceeds the second threshold value. For example, the second threshold is the same as the second threshold used in the integration process illustrated in FIG. If the total peak data amount PDz exceeds the second threshold, the operation of the CPU 202 moves to step S422. On the other hand, when the total peak data amount PDz is equal to or smaller than the second threshold value, the operation of the CPU 202 moves to step S424.

ステップS422では、CPU202は、ステップS412で選択した1つの回路領域110を、分割候補の回路領域110として、分割候補Zに登録する。分割候補Zは、例えば、図6に示す動作を実現するためのプログラムで使用される配列またはテーブル等である。すなわち、CPU202は、ステップS412からステップS422までの処理を実行することにより、複数の論理回路120が書き込まれた回路領域110の中から、複数の論理回路120のデータ転送量が所定の転送条件から外れた回路領域110を検出する。   In step S422, the CPU 202 registers one circuit area 110 selected in step S412 as a division candidate circuit area 110 in the division candidate Z. The division candidate Z is, for example, an array or a table used in a program for realizing the operation shown in FIG. That is, the CPU 202 executes the processing from step S412 to step S422, so that the data transfer amount of the plurality of logic circuits 120 is determined from the predetermined transfer condition in the circuit area 110 in which the plurality of logic circuits 120 are written. The detached circuit area 110 is detected.

次に、ステップS424では、CPU202は、検索対象の全ての回路領域110を選択したか否かを判定する。すなわち、CPU202は、複数の論理回路120が書き込まれた回路領域110を全て選択したか否かを判定する。検索対象の中に、選択していない回路領域110が存在する場合、CPU202の動作は、ステップS412に戻る。すなわち、ステップS412からステップS422までの処理は、複数の論理回路120が書き込まれた全ての回路領域110に対して実行される。   Next, in step S424, the CPU 202 determines whether or not all circuit areas 110 to be searched have been selected. That is, the CPU 202 determines whether or not all the circuit areas 110 in which the plurality of logic circuits 120 are written are selected. When there is an unselected circuit area 110 in the search target, the operation of the CPU 202 returns to step S412. That is, the processing from step S412 to step S422 is executed for all circuit regions 110 in which a plurality of logic circuits 120 are written.

一方、検索対象の全ての回路領域110を選択した場合、分割候補検索処理は終了し、CPU202の動作は、図4に示したステップS500に移る。例えば、図4に示したステップS500では、CPU202は、分割候補Zに登録された回路領域110が存在するか否かを判定することにより、分割候補が存在するか否かを判定する。すなわち、CPU202は、分割候補Zに回路領域110を登録した場合、図4に示したステップS500において、分割候補が存在すると判定する。なお、分割候補検索処理の例は、図6に示す例に限定されない。例えば、ステップS418、S420は、省かれてもよい。   On the other hand, when all the circuit areas 110 to be searched are selected, the division candidate search process ends, and the operation of the CPU 202 moves to step S500 shown in FIG. For example, in step S500 illustrated in FIG. 4, the CPU 202 determines whether there is a division candidate by determining whether the circuit area 110 registered in the division candidate Z exists. That is, when registering the circuit area 110 in the division candidate Z, the CPU 202 determines that there is a division candidate in step S500 shown in FIG. Note that the example of the division candidate search process is not limited to the example shown in FIG. For example, steps S418 and S420 may be omitted.

図7は、図4に示した分割処理の一例を示す。すなわち、図7は、図4に示したステップS600の一例を示す。例えば、ステップS610の処理は、図4に示したステップS500で分割候補が存在すると判定された場合、実行される。   FIG. 7 shows an example of the dividing process shown in FIG. That is, FIG. 7 shows an example of step S600 shown in FIG. For example, the process of step S610 is executed when it is determined in step S500 shown in FIG.

ステップS610では、CPU202は、空きの回路領域110の数がリザーブ数R(Rは、0以上の整数)より多いか否かを判定する。リザーブ数Rは、新規の論理回路120の追加用に予め予約された数である。CPU202は、リザーブ数Rを参照することにより、新規に追加可能な論理回路120の数を容易に検出できる。なお、新規の論理回路120の追加用に回路領域110を確保しなくてもよい場合は、リザーブ数Rは0に設定される。   In step S610, the CPU 202 determines whether or not the number of free circuit areas 110 is greater than the reserve number R (R is an integer equal to or greater than 0). The reserve number R is a number reserved in advance for adding a new logic circuit 120. The CPU 202 can easily detect the number of logic circuits 120 that can be newly added by referring to the reserve number R. If the circuit area 110 does not have to be reserved for adding a new logic circuit 120, the reserve number R is set to zero.

空きの回路領域110の数がリザーブ数Rより多い場合、CPU202の動作は、ステップS612に移る。一方、空きの回路領域110の数がリザーブ数R以下である場合、分割処理は、終了する。このように、図7に示す分割処理では、新規の論理回路120の追加用に確保していた空きの回路領域110が分割処理で使用されることを防止することができる。   If the number of free circuit areas 110 is greater than the reserve number R, the operation of the CPU 202 moves to step S612. On the other hand, when the number of free circuit areas 110 is equal to or less than the reserve number R, the division process ends. As described above, in the dividing process shown in FIG. 7, it is possible to prevent the empty circuit area 110 reserved for adding the new logic circuit 120 from being used in the dividing process.

ステップS612では、CPU202は、分割候補Zに登録した回路領域110のうち、図6に示したステップS414で算出した平均データ量ADzが最大な回路領域110を、分割処理対象の回路領域110として選択する。平均データ量ADzが最大な回路領域110に含まれる複数の論理回路120は、2つの回路領域110に分けて割り当てられる論理回路120である。すなわち、CPU202は、ステップS612の処理を実行することにより、2つの回路領域110に分けて割り当てる複数の論理回路120を決定する。平均データ量ADzが最大な回路領域110を選択することにより、性能が最も低下していたと予想される論理回路120の性能を向上させることができる。   In step S612, the CPU 202 selects the circuit area 110 having the maximum average data amount ADz calculated in step S414 shown in FIG. 6 as the circuit area 110 to be divided among the circuit areas 110 registered in the division candidate Z. To do. The plurality of logic circuits 120 included in the circuit area 110 having the maximum average data amount ADz are logic circuits 120 that are allocated to the two circuit areas 110 separately. That is, the CPU 202 determines a plurality of logic circuits 120 to be allocated to the two circuit areas 110 by executing the process of step S612. By selecting the circuit area 110 having the maximum average data amount ADz, it is possible to improve the performance of the logic circuit 120 that is expected to have the lowest performance.

次に、ステップS614では、CPU202は、平均データ量ADzが最大な回路領域110に含まれる複数の論理回路120を、2つのグループに分ける。例えば、CPU202は、2つのグループのそれぞれの平均データ量ADが第1閾値以下になるように、複数の論理回路120を2つのグループに分ける。なお、CPU202は、平均データ量ADzが最大な回路領域110に3つ以上の論理回路120が含まれる場合、2つのグループのそれぞれの平均データ量ADがなるべく等しくなるように、複数の論理回路120を2つのグループに分けてもよい。   Next, in step S614, the CPU 202 divides the plurality of logic circuits 120 included in the circuit area 110 having the maximum average data amount ADz into two groups. For example, the CPU 202 divides the plurality of logic circuits 120 into two groups so that the average data amount AD of each of the two groups is equal to or less than the first threshold value. Note that when the circuit area 110 having the maximum average data amount ADz includes three or more logic circuits 120, the CPU 202 includes a plurality of logic circuits 120 so that the average data amounts AD of the two groups are as equal as possible. May be divided into two groups.

次に、ステップS616では、CPU202は、ステップS614で2つのグループに分けた論理回路120を、2つの回路領域110にそれぞれ書き込む。すなわち、CPU202は、2つのグループの一方に含まれる論理回路120を2つの回路領域110の一方に書き込み、2つのグループの他方に含まれる論理回路120を2つの回路領域110の他方に書き込む。これにより、分割処理は、終了する。   Next, in step S616, the CPU 202 writes the logic circuits 120 divided into two groups in step S614 in the two circuit areas 110, respectively. That is, the CPU 202 writes the logic circuit 120 included in one of the two groups into one of the two circuit areas 110 and writes the logic circuit 120 included in the other of the two groups into the other of the two circuit areas 110. Thereby, the division process ends.

なお、分割処理の例は、図6に示す例に限定されない。例えば、空きの回路領域110の数がリザーブ数Rに1を加算した値より多い場合、CPU202は、ステップS612において、2つの回路領域110を選択してもよい。この場合、CPU202は、ステップS614において、2つの回路領域110に含まれる複数の論理回路120を4つのグループに分けてもよい。そして、CPU202は、ステップS616において、4つのグループに分けた論理回路120を4つの回路領域110にそれぞれ書き込みしてもよい。   Note that the example of the dividing process is not limited to the example shown in FIG. For example, when the number of empty circuit areas 110 is larger than the value obtained by adding 1 to the reserve number R, the CPU 202 may select two circuit areas 110 in step S612. In this case, the CPU 202 may divide the plurality of logic circuits 120 included in the two circuit areas 110 into four groups in step S614. Then, in step S616, the CPU 202 may write the logic circuits 120 divided into four groups into the four circuit areas 110, respectively.

図8は、図2に示したデータ処理装置12の動作の別の例を示す。図8に示す論理回路追加処理および再構成処理は、例えば、ソフトウェアでCPU202を制御することにより実現される。なお、図8に示す論理回路追加処理および再構成処理は、コンピュータが回路領域110への論理回路120の割り当てを管理する論理回路管理方法の一態様である。   FIG. 8 shows another example of the operation of the data processing device 12 shown in FIG. The logic circuit addition process and the reconfiguration process shown in FIG. 8 are realized by controlling the CPU 202 with software, for example. Note that the logic circuit addition process and the reconfiguration process illustrated in FIG. 8 are one mode of a logic circuit management method in which the computer manages the allocation of the logic circuit 120 to the circuit area 110.

図8に示す論理回路追加処理は、図4に示した論理回路追加処理と同一である。図8に示す再構成処理は、ステップS300の統合処理が実行されるタイミングを除いて、図4に示した再構成処理と同一または同様である。図4で説明したステップSと同一または同様のステップSについては、同一または同様の符号を付し、これ等については、詳細な説明を省略する。例えば、図8に示す再構成処理は、所定の時間間隔で繰り返し実行され、論理回路追加処理と並列に実行可能である。   The logic circuit addition process shown in FIG. 8 is the same as the logic circuit addition process shown in FIG. The reconstruction process shown in FIG. 8 is the same as or similar to the reconstruction process shown in FIG. 4 except for the timing at which the integration process of step S300 is executed. Step S that is the same as or similar to step S described in FIG. 4 is assigned the same or similar reference numeral, and detailed description thereof is omitted. For example, the reconfiguration process shown in FIG. 8 is repeatedly executed at predetermined time intervals, and can be executed in parallel with the logic circuit addition process.

CPU202は、ステップS200の処理を実行した後、ステップS400の分割候補検索処理を実行する。ステップS400の分割候補検索処理は、図6に示した分割候補検索処理と同一である。例えば、図6に示したステップS410の処理は、ステップS200の処理が終了した後、実行される。   After executing the process of step S200, the CPU 202 executes the division candidate search process of step S400. The division candidate search process in step S400 is the same as the division candidate search process shown in FIG. For example, the process of step S410 illustrated in FIG. 6 is executed after the process of step S200 is completed.

そして、CPU202は、ステップS400の分割候補検索処理が終了した後、ステップS500の判定を実行し、分割候補が存在しないと判定した場合、ステップS300の統合処理を実行する。ステップS300の統合処理は、図5に示した統合処理と同一である。例えば、図5に示したステップS310の処理は、ステップS500で分割候補が存在しないと判定された場合、実行される。そして、ステップS300の統合処理の終了により、今回の再構成処理は終了する。   Then, after the division candidate search process in step S400 is completed, the CPU 202 executes the determination in step S500, and when determining that there is no division candidate, executes the integration process in step S300. The integration process in step S300 is the same as the integration process shown in FIG. For example, the process of step S310 illustrated in FIG. 5 is executed when it is determined in step S500 that there is no division candidate. Then, upon completion of the integration process in step S300, the current reconstruction process ends.

なお、ステップS500で分割候補が存在すると判定された場合、ステップS600の分割処理が実行される。ステップS600の分割処理は、図7に示した分割処理と同一である。ステップS600の分割処理の終了により、今回の再構成処理は終了する。   If it is determined in step S500 that there is a division candidate, the division process in step S600 is executed. The dividing process in step S600 is the same as the dividing process shown in FIG. The current reconstruction process ends when the division process in step S600 ends.

図9は、図2に示したCPU202による論理回路120の管理の一例を示す。図9では、図を見やすくするために、監視回路130等の記載を省略している。なお、図9に示す例では、リザーブ数Rは0に設定されている。また、図9に示す例では、論理回路120qのデータ転送量は、他の論理回路120より大きく、回路領域110とバスBUSとの間のバス帯域とほぼ同じ大きさである。したがって、論理回路120qと論理回路120p等の他の論理回路120とを統合した場合のデータ転送量は、所定の転送条件を満たさない。このため、論理回路120qは、他の論理回路120と統合されない。   FIG. 9 shows an example of management of the logic circuit 120 by the CPU 202 shown in FIG. In FIG. 9, the monitoring circuit 130 and the like are not shown for easy understanding of the drawing. In the example shown in FIG. 9, the reserve number R is set to zero. In the example shown in FIG. 9, the data transfer amount of the logic circuit 120q is larger than that of the other logic circuits 120, and is almost the same as the bus bandwidth between the circuit area 110 and the bus BUS. Therefore, the data transfer amount when the logic circuit 120q and another logic circuit 120 such as the logic circuit 120p are integrated does not satisfy a predetermined transfer condition. For this reason, the logic circuit 120q is not integrated with other logic circuits 120.

論理回路120m、120nが回路領域110Aに書き込まれ、論理回路120o、120p、120qが回路領域110B、110C、110Dにそれぞれ書き込まれた状態では、空きの回路領域110は存在しない(図9(a))。この場合、新規の論理回路120の追加は、統合処理または論理回路120の消去等により空きの回路領域110が確保されるまで、待機される。   In the state where the logic circuits 120m and 120n are written in the circuit area 110A and the logic circuits 120o, 120p and 120q are written in the circuit areas 110B, 110C and 110D, respectively, there is no empty circuit area 110 (FIG. 9A). ). In this case, addition of a new logic circuit 120 is put on standby until an empty circuit area 110 is secured by integration processing or erasure of the logic circuit 120.

例えば、CPU202は、論理回路120oを消去する指示を、図2に示した入出力インターフェース320を介してデータ処理装置12の外部から受けた場合、回路領域110Bに書き込まれた論理回路120oを消去する(図9(b))。これにより、空きの回路領域110Bが確保される。   For example, when the CPU 202 receives an instruction to erase the logic circuit 120o from the outside of the data processing device 12 via the input / output interface 320 shown in FIG. 2, the CPU 202 erases the logic circuit 120o written in the circuit area 110B. (FIG. 9B). Thereby, an empty circuit area 110B is secured.

そして、CPU202は、論理回路120rを追加する指示を、入出力インターフェース320を介してデータ処理装置12の外部から受けた場合、論理回路120rを回路領域110Bに書き込む(図9(c))。   When the CPU 202 receives an instruction to add the logic circuit 120r from the outside of the data processing device 12 via the input / output interface 320, the CPU 202 writes the logic circuit 120r in the circuit area 110B (FIG. 9C).

また、CPU202は、所定の時間間隔で繰り返し実行する再構成処理(図4または図8に示した再構成処理)により、1つの回路領域110に割り当て可能な論理回路120の組み合わせとして、論理回路120r、120pを検出する。そして、CPU202は、論理回路120r、120pを1つの回路領域110Bに書き込む。これにより、論理回路120r、120pが1つの回路領域110Bに統合され、空きの回路領域110Cが確保される(図9(d))。   Further, the CPU 202 reconstructs the logic circuit 120r as a combination of the logic circuits 120 that can be assigned to one circuit area 110 by reconfiguration processing (reconfiguration processing shown in FIG. 4 or FIG. 8) that is repeatedly executed at predetermined time intervals. , 120p is detected. Then, the CPU 202 writes the logic circuits 120r and 120p in one circuit area 110B. As a result, the logic circuits 120r and 120p are integrated into one circuit area 110B, and an empty circuit area 110C is secured (FIG. 9D).

また、CPU202は、所定の時間間隔で繰り返し実行する再構成処理により、1つの回路領域110Aに書き込まれた論理回路120m、120nのデータ転送量が論理回路120mのデータ転送量の増加に伴い所定の転送条件から外れたことを検出する(図9(e)の破線の×印)。すなわち、CPU202は、回路領域110Aを分割候補として検出する。   In addition, the CPU 202 reconfigures the data transfer amount of the logic circuits 120m and 120n written in one circuit area 110A to a predetermined value as the data transfer amount of the logic circuit 120m increases. It is detected that the transfer condition is not met (dotted line x in FIG. 9E). That is, the CPU 202 detects the circuit area 110A as a division candidate.

そして、CPU202は、論理回路120m、120nを2つの回路領域110A、110Cに分けて書き込む(図9(f))。このように、CPU202による論理回路120の管理により、論理回路120の性能低下を抑制しつつ、論理回路120の搭載効率を向上することができる。   Then, the CPU 202 writes the logic circuits 120m and 120n in two circuit areas 110A and 110C (FIG. 9F). As described above, the management of the logic circuit 120 by the CPU 202 can improve the mounting efficiency of the logic circuit 120 while suppressing the performance degradation of the logic circuit 120.

ここで、例えば、論理回路120のデータ転送量を考慮しない管理方法では、論理回路120qと論理回路120pとが1つの回路領域110に書き込まれるおそれがある。この場合、1つの回路領域110に書き込まれた論理回路120q、120pのデータ転送レートが回路領域110のデータ転送レートによって制限され、論理回路120q、120pの性能が低下するおそれがある。また、論理回路120mのデータ転送量が増加して、回路領域110Aに書き込まれた論理回路120m、120nのデータ転送レートが回路領域110Aのデータ転送レートによって制限される場合でも、回路領域110Aの論理構成は、再構成されない。この場合、論理回路120q、120pの性能は低下する。   Here, for example, in a management method that does not consider the data transfer amount of the logic circuit 120, the logic circuit 120 q and the logic circuit 120 p may be written in one circuit area 110. In this case, the data transfer rate of the logic circuits 120q and 120p written in one circuit area 110 is limited by the data transfer rate of the circuit area 110, and the performance of the logic circuits 120q and 120p may be degraded. Even when the data transfer amount of the logic circuit 120m increases and the data transfer rate of the logic circuits 120m and 120n written in the circuit area 110A is limited by the data transfer rate of the circuit area 110A, the logic of the circuit area 110A The configuration is not reconfigured. In this case, the performance of the logic circuits 120q and 120p deteriorates.

これに対し、CPU202は、論理回路120qと論理回路120q等の他の論理回路120とを統合した場合にデータ転送量が所定の転送条件を満たさないため、論理回路120qを他の論理回路120と統合しない。したがって、論理回路120q等の性能が低下することを抑制できる。また、CPU202は、上述したように、回路領域110Aに書き込まれた論理回路120m、120nのデータ転送レートが回路領域110Aのデータ転送レートによって制限される状態に変化した場合、回路領域110Aの論理構成を再構成する。論理回路120m、120nが2つの回路領域110A、110Cに分割されるため、各回路領域110A、110Cのデータ転送量は、所定の転送条件を満たす。これにより、各論理回路120の性能が低下することを抑制できる。   On the other hand, when the CPU 202 integrates the logic circuit 120q and another logic circuit 120 such as the logic circuit 120q, the data transfer amount does not satisfy a predetermined transfer condition. Do not merge. Therefore, it is possible to suppress the performance of the logic circuit 120q and the like from being degraded. Further, as described above, when the data transfer rate of the logic circuits 120m and 120n written in the circuit area 110A changes to a state limited by the data transfer rate of the circuit area 110A, the CPU 202 determines the logical configuration of the circuit area 110A. Reconfigure. Since the logic circuits 120m and 120n are divided into two circuit areas 110A and 110C, the data transfer amount of each circuit area 110A and 110C satisfies a predetermined transfer condition. Thereby, it can suppress that the performance of each logic circuit 120 falls.

以上、図2から図9に示す実施形態においても、図1に示した実施形態と同様の効果を得ることができる。例えば、CPU202は、1つの回路領域110に収まる論理回路120の組み合わせのうち、所定の転送条件を満たす組み合わせの論理回路120を、1つの回路領域110に書き込む。これにより、論理回路120の性能が低下することを抑制しつつ、集積回路100の利用効率を向上させることができる。   As described above, also in the embodiment shown in FIG. 2 to FIG. 9, the same effect as that of the embodiment shown in FIG. 1 can be obtained. For example, the CPU 202 writes the combination of the logic circuits 120 satisfying a predetermined transfer condition among the combinations of the logic circuits 120 that can be accommodated in the one circuit area 110 into the one circuit area 110. Thereby, the utilization efficiency of the integrated circuit 100 can be improved while suppressing the performance of the logic circuit 120 from being deteriorated.

さらに、CPU202は、複数の論理回路120が書き込まれた回路領域110のうち、複数の論理回路120のデータ転送量が所定の転送条件から外れた回路領域110を検出して、回路領域110の論理構成を再構成する。例えば、データ転送量が所定の転送条件から外れた回路領域110に書き込まれた複数の論理回路120を複数の回路領域110に分けて書き込む。これにより、論理回路120の性能が低下することを抑制できる。このように、CPU202は、論理構成を書き換え可能な集積回路100に論理回路120を効率よく割り当てることができる。   Further, the CPU 202 detects a circuit area 110 in which the data transfer amount of the plurality of logic circuits 120 is out of a predetermined transfer condition from among the circuit areas 110 in which the plurality of logic circuits 120 are written. Reconfigure the configuration. For example, a plurality of logic circuits 120 written in the circuit area 110 whose data transfer amount deviates from a predetermined transfer condition are divided and written in the plurality of circuit areas 110. Thereby, it can suppress that the performance of the logic circuit 120 falls. As described above, the CPU 202 can efficiently assign the logic circuit 120 to the integrated circuit 100 whose logic configuration can be rewritten.

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。   From the above detailed description, features and advantages of the embodiments will become apparent. This is intended to cover the features and advantages of the embodiments described above without departing from the spirit and scope of the claims. Also, any improvement and modification should be readily conceivable by those having ordinary knowledge in the art. Therefore, there is no intention to limit the scope of the inventive embodiments to those described above, and appropriate modifications and equivalents included in the scope disclosed in the embodiments can be used.

10、12‥データ処理装置;100‥集積回路;110‥回路領域;120‥論理回路;121、131‥バスインターフェース;130‥監視回路;132‥監視制御部;133‥データ転送量算出部;134、135‥カウンタ;136‥平均算出部;137‥ピーク算出部;138、139‥保持部;200‥制御回路;202‥CPU;210、212‥構成部;220‥取得部;230、232‥検出部;300‥メモリ;320‥入出力インタフェース;BUS、BUS2‥バス;IBUS‥内部バス;TM1、TM2‥タイマ   DESCRIPTION OF SYMBOLS 10, 12 ... Data processing apparatus; 100 ... Integrated circuit; 110 ... Circuit area | region; 120 ... Logic circuit; 121, 131 ... Bus interface; 130 ... Monitoring circuit; 132 ... Monitoring control part; 135, counter, 136, average calculation unit, 137, peak calculation unit, 138, 139, holding unit, 200, control circuit, 202, CPU, 210, 212, component unit, 220, acquisition unit, 230, 232, detection 300; Memory; 320 ... I / O interface; BUS, BUS2 ... Bus; IBUS ... Internal bus; TM1, TM2 ... Timer

Claims (9)

論理構成を書き換え可能な複数の回路領域を有する集積回路に論理回路を書き込む制御回路において、
書き込み対象の論理回路と前記書き込み対象の論理回路のデータ転送量を監視する監視回路とを、前記複数の回路領域のいずれかに書き込む構成部と、
論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた前記監視回路から取得する取得部と、
複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、前記組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、前記組み合わせに含まれる複数の論理回路が前記1つの回路領域に収まるかの判定結果とに基づいて検出する検出部とを有し、
前記構成部は、前記組み合わせが検出された場合、前記組み合わせに含まれる複数の論理回路を前記1つの回路領域に書き込み、回路領域の論理構成を再構成する
ことを特徴とする制御回路。
In a control circuit for writing a logic circuit to an integrated circuit having a plurality of circuit regions in which the logic configuration can be rewritten,
A writing unit and a monitoring circuit for monitoring a data transfer amount of the writing target logic circuit, the writing unit in any of the plurality of circuit areas,
An acquisition unit for acquiring information indicating the data transfer amount of the logic circuit from the monitoring circuit written in the circuit area together with the logic circuit;
A combination of logic circuits that can be assigned to one circuit area from among a plurality of logic circuits, a determination result of whether the data transfer amount of the plurality of logic circuits included in the combination satisfies a predetermined transfer condition, and the combination And a detection unit that detects based on a determination result of whether or not a plurality of logic circuits included in the one circuit area fits,
When the combination is detected, the configuration unit writes a plurality of logic circuits included in the combination to the one circuit area, and reconfigures the logic configuration of the circuit area.
請求項1に記載の制御回路において、
前記検出部は、前記組み合わせに含まれる複数の論理回路が書き込まれた回路領域のうち、前記組み合わせに含まれる複数の論理回路のデータ転送量が前記転送条件から外れた第1の回路領域を検出し、
前記構成部は、前記第1の回路領域が検出された場合、前記第1の回路領域に書き込まれた複数の論理回路を複数の回路領域に分けて書き込み、前記第1の回路領域の論理構成を再構成する
ことを特徴とする制御回路。
The control circuit according to claim 1,
The detection unit detects a first circuit area in which a data transfer amount of the plurality of logic circuits included in the combination is out of the transfer condition among circuit areas in which the plurality of logic circuits included in the combination is written. And
When the first circuit region is detected, the configuration unit writes the plurality of logic circuits written in the first circuit region into a plurality of circuit regions, and the logical configuration of the first circuit region A control circuit characterized by reconfiguring.
請求項2に記載の制御回路において、
前記検出部は、前記第1の回路領域を検出する処理を、所定の時間間隔で繰り返し実行する
ことを特徴とする制御回路。
The control circuit according to claim 2,
The detection unit repeatedly executes a process of detecting the first circuit area at a predetermined time interval.
請求項1ないし請求項3のいずれか1項に記載の制御回路において、
前記検出部は、前記組み合わせを検出する処理を、所定の時間間隔で繰り返し実行する
ことを特徴とする制御回路。
The control circuit according to any one of claims 1 to 3,
The control unit, wherein the detection unit repeatedly executes a process of detecting the combination at a predetermined time interval.
請求項1ないし請求項4のいずれか1項に記載の制御回路において、
前記転送条件は、前記組み合わせに含まれる複数の論理回路のデータ転送量の合計の平均が第1閾値以下である
ことを特徴とする制御回路。
The control circuit according to any one of claims 1 to 4,
The transfer circuit is characterized in that the average of the total data transfer amounts of a plurality of logic circuits included in the combination is equal to or less than a first threshold value.
請求項1ないし請求項4のいずれか1項に記載の制御回路において、
前記転送条件は、前記組み合わせに含まれる複数の論理回路のデータ転送量の合計の平均が第1閾値以下で、かつ、前記組み合わせに含まれる複数の論理回路の各々のデータ転送量のピークの合計が前記第1閾値より大きい第2閾値以下である
ことを特徴とする制御回路。
The control circuit according to any one of claims 1 to 4,
The transfer condition is that a sum of data transfer amounts of a plurality of logic circuits included in the combination is equal to or less than a first threshold value, and a sum of peaks of data transfer amounts of the plurality of logic circuits included in the combination. Is less than or equal to a second threshold value greater than the first threshold value.
請求項1ないし請求項6のいずれか1項に記載の制御回路において、
前記組み合わせに含まれる複数の論理回路とともに前記1つの回路領域に書き込まれる前記監視回路は、前記組み合わせに含まれる複数の論理回路で共有される
ことを特徴とする制御回路。
The control circuit according to any one of claims 1 to 6,
The control circuit written to the one circuit area together with the plurality of logic circuits included in the combination is shared by the plurality of logic circuits included in the combination.
論理構成を書き換え可能な複数の回路領域を有する集積回路と、前記複数の回路領域に論理回路を書き込む制御回路とを含むデータ処理装置において、
前記制御回路は、
書き込み対象の論理回路と前記書き込み対象の論理回路のデータ転送量を監視する監視回路とを、前記複数の回路領域のいずれかに書き込む構成部と、
論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた前記監視回路から取得する取得部と、
複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、前記組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、前記組み合わせに含まれる複数の論理回路が前記1つの回路領域に収まるかの判定結果とに基づいて検出する検出部とを有し、
前記構成部は、前記組み合わせが検出された場合、前記組み合わせに含まれる複数の論理回路を前記1つの回路領域に書き込み、回路領域の論理構成を再構成する
ことを特徴とするデータ処理装置。
In a data processing apparatus including an integrated circuit having a plurality of circuit areas in which a logic configuration can be rewritten, and a control circuit for writing logic circuits in the plurality of circuit areas,
The control circuit includes:
A writing unit and a monitoring circuit for monitoring a data transfer amount of the writing target logic circuit, the writing unit in any of the plurality of circuit areas,
An acquisition unit for acquiring information indicating the data transfer amount of the logic circuit from the monitoring circuit written in the circuit area together with the logic circuit;
A combination of logic circuits that can be assigned to one circuit area from among a plurality of logic circuits, a determination result of whether the data transfer amount of the plurality of logic circuits included in the combination satisfies a predetermined transfer condition, and the combination And a detection unit that detects based on a determination result of whether or not a plurality of logic circuits included in the one circuit area fits,
When the combination is detected, the configuration unit writes a plurality of logic circuits included in the combination into the one circuit area, and reconfigures the logic configuration of the circuit area.
論理構成を書き換え可能な複数の回路領域を有する集積回路に論理回路を書き込むコンピュータが回路領域への論理回路の割り当てを管理する論理回路管理方法において、
前記コンピュータが、
書き込み対象の論理回路と前記書き込み対象の論理回路のデータ転送量を監視する監視回路とを、前記複数の回路領域のいずれかに書き込み、
論理回路のデータ転送量を示す情報を、論理回路とともに回路領域に書き込まれた前記監視回路から取得し、
複数の論理回路の中から、1つの回路領域に割り当て可能な論理回路の組み合わせを、前記組み合わせに含まれる複数の論理回路のデータ転送量が所定の転送条件を満たすかの判定結果と、前記組み合わせに含まれる複数の論理回路が前記1つの回路領域に収まるかの判定結果とに基づいて検出し、
前記組み合わせを検出した場合、前記組み合わせに含まれる複数の論理回路を前記1つの回路領域に書き込み、回路領域の論理構成を再構成する
ことを特徴とする論理回路管理方法。
In a logic circuit management method in which a computer that writes a logic circuit to an integrated circuit having a plurality of circuit areas in which the logic configuration can be rewritten manages allocation of the logic circuit to the circuit area.
The computer is
Writing a logic circuit to be written and a monitoring circuit for monitoring a data transfer amount of the logic circuit to be written into any of the plurality of circuit areas;
Information indicating the data transfer amount of the logic circuit is acquired from the monitoring circuit written in the circuit area together with the logic circuit,
A combination of logic circuits that can be assigned to one circuit area from among a plurality of logic circuits, a determination result of whether the data transfer amount of the plurality of logic circuits included in the combination satisfies a predetermined transfer condition, and the combination And a plurality of logic circuits included in the one circuit area is detected based on the determination result,
When the combination is detected, a plurality of logic circuits included in the combination are written in the one circuit area, and the logic configuration of the circuit area is reconfigured.
JP2016002632A 2016-01-08 2016-01-08 Control circuit, data processing apparatus, and logic circuit management method Active JP6610271B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016002632A JP6610271B2 (en) 2016-01-08 2016-01-08 Control circuit, data processing apparatus, and logic circuit management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016002632A JP6610271B2 (en) 2016-01-08 2016-01-08 Control circuit, data processing apparatus, and logic circuit management method

Publications (2)

Publication Number Publication Date
JP2017123602A true JP2017123602A (en) 2017-07-13
JP6610271B2 JP6610271B2 (en) 2019-11-27

Family

ID=59305851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016002632A Active JP6610271B2 (en) 2016-01-08 2016-01-08 Control circuit, data processing apparatus, and logic circuit management method

Country Status (1)

Country Link
JP (1) JP6610271B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021426A (en) * 2002-06-13 2004-01-22 Konica Minolta Holdings Inc Computer system and hardware/software logic suitable thereto and caching method
JP2005136956A (en) * 2003-10-08 2005-05-26 Toshiba Corp Logic circuit device, and operating voltage change method
US20050242836A1 (en) * 2004-04-30 2005-11-03 Xilinx, Inc. System monitor in a programmable logic device
JP2007042876A (en) * 2005-08-03 2007-02-15 Nec Corp Semiconductor integrated circuit and method for monitoring internal signal for it
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus
JP2013105463A (en) * 2011-11-16 2013-05-30 Fujitsu Ltd Plug-in card storage device and plug-in card control method
JP2014230174A (en) * 2013-05-23 2014-12-08 富士通株式会社 Integrated circuit, control apparatus, control method and control program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021426A (en) * 2002-06-13 2004-01-22 Konica Minolta Holdings Inc Computer system and hardware/software logic suitable thereto and caching method
JP2005136956A (en) * 2003-10-08 2005-05-26 Toshiba Corp Logic circuit device, and operating voltage change method
US20050242836A1 (en) * 2004-04-30 2005-11-03 Xilinx, Inc. System monitor in a programmable logic device
JP2007042876A (en) * 2005-08-03 2007-02-15 Nec Corp Semiconductor integrated circuit and method for monitoring internal signal for it
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus
JP2013105463A (en) * 2011-11-16 2013-05-30 Fujitsu Ltd Plug-in card storage device and plug-in card control method
JP2014230174A (en) * 2013-05-23 2014-12-08 富士通株式会社 Integrated circuit, control apparatus, control method and control program

Also Published As

Publication number Publication date
JP6610271B2 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
JP4702127B2 (en) Virtual computer system, physical resource reconfiguration method and program thereof
JP6447329B2 (en) Parallel computing controller, parallel computing system, and migration time estimation program
CN102081574B (en) Method and system for accelerating wake-up time
JP6201242B2 (en) Architecture that enables efficient storage of data in NAND flash memory
US8479205B2 (en) Schedule control program and schedule control method
JP5585655B2 (en) System control apparatus, log control method, and information processing apparatus
US10528468B2 (en) Storage controlling apparatus, computer-readable recording medium having storage controlling program stored therein, and storage controlling method
CN108959526B (en) Log management method and log management device
US20120030430A1 (en) Cache control apparatus, and cache control method
JP6446125B2 (en) Resource leak detection method, apparatus and system
CN109933430B (en) Method and apparatus for distributing graphics processor
US11960396B2 (en) Method and computer program product for performing data writes into a flash memory
JP2018503888A (en) Providing shared cache memory allocation control in shared cache memory systems
US20210125102A1 (en) Information processing system, information processing apparatus, and information processing program
US7631125B2 (en) Dynamically migrating channels
KR20150135966A (en) Virtual desktop service system and virtual desktop service providing method thereof
CN114282661A (en) Method for operating neural network model, readable medium and electronic device
JP6610271B2 (en) Control circuit, data processing apparatus, and logic circuit management method
KR20190057558A (en) Multi core control system
JP2008516320A (en) Method and apparatus for determining the size of a memory frame
JP6383340B2 (en) Cache contention management system, resource allocation server, and resource allocation method
CN116401043A (en) Execution method of computing task and related equipment
US10789012B2 (en) Write method and write apparatus for storage device
CN110737618A (en) Method, device and storage medium for embedded processor to carry out rapid data communication
US10049074B2 (en) PCI-E real-time flow control optimization

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190620

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191014

R150 Certificate of patent or registration of utility model

Ref document number: 6610271

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150