[go: up one dir, main page]

JP2015185129A - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP2015185129A
JP2015185129A JP2014063763A JP2014063763A JP2015185129A JP 2015185129 A JP2015185129 A JP 2015185129A JP 2014063763 A JP2014063763 A JP 2014063763A JP 2014063763 A JP2014063763 A JP 2014063763A JP 2015185129 A JP2015185129 A JP 2015185129A
Authority
JP
Japan
Prior art keywords
circuit
data processing
synchronization
stage
register
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.)
Pending
Application number
JP2014063763A
Other languages
Japanese (ja)
Inventor
浩幸 山元
Hiroyuki Yamamoto
浩幸 山元
渡邉 聡
Satoshi Watanabe
聡 渡邉
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014063763A priority Critical patent/JP2015185129A/en
Publication of JP2015185129A publication Critical patent/JP2015185129A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To achieve execution of subsequent stage data processing according to completion of plural pieces of data processing.SOLUTION: A first CPU core 110A executes first data processing, and when the first data processing is completed, writes a bit value 1 in a first barrier synchronous register 111A. A second CPU core 110B executes second data processing, and when the second data processing is completed, writes the bit value 1 in a second barrier synchronous register 111B. A synchronous circuit 120 writes the bit value 1 in a subsequent stage barrier synchronous register 131 when bit values of both of the first barrier synchronous register 111A and second barrier synchronous register 111B become 1. A hardware block 130 executes subsequent data processing when the bit value 1 of the barrier synchronous register 131 becomes 1.

Description

本発明は、同期をとってデータ処理を行うデータ処理装置に関するものである。   The present invention relates to a data processing apparatus that performs data processing in synchronization.

並列処理装置は、複数の処理装置が処理を分担して実行することによって、処理速度を向上させる。また、並列処理装置は、各処理装置の処理の完了を条件にして、次の処理装置に処理を移行する。これを実現するためには、処理装置間で同期を取る必要がある。同期を取る代表的な手法として、各処理装置の処理の実行状況を監視して各処理装置の処理の完了を待ち合わせるバリア同期という技術がある。   The parallel processing device improves the processing speed by a plurality of processing devices sharing and executing the processing. Further, the parallel processing device shifts the processing to the next processing device on condition that the processing of each processing device is completed. In order to realize this, it is necessary to synchronize between the processing apparatuses. As a typical technique for obtaining synchronization, there is a technique called barrier synchronization that monitors the execution status of the processing of each processing apparatus and waits for the completion of the processing of each processing apparatus.

バリア同期を行うため、処理装置の処理の実行状態を示すレジスタが用いられる。但し、このレジスタは、一般的に、処理装置内においてCPU(Central Processing Unit)からバスを介して遠い位置に配置される。そのため、バスアクセスがボトルネックになり、同期処理に時間を要していた。   In order to perform barrier synchronization, a register indicating an execution state of processing of the processing device is used. However, this register is generally arranged at a position far from a CPU (Central Processing Unit) via a bus in the processing apparatus. As a result, bus access has become a bottleneck, and time is required for synchronization processing.

この課題を解決するため、特許文献1は、CPUコアの内部にバリアライトレジスタとバリアリードレジスタとを配置することによって、バスボトルネックによる性能劣化に対処している。
しかし、バリアライトレジスタおよびバリアリードレジスタは同期対象のCPUコアの個数分のビットを備える必要がある。また、同期対象のCPUコアの個数が増えると、各CPUコアのバリアライトレジスタおよびバリアリードレジスタを他のCPUコアに接続するための相互配線が増えて、配線領域が増えてしまう。そして、配線時に配線の引き回しが発生し、動作速度の低下を招く可能性がある。
In order to solve this problem, Patent Document 1 addresses performance degradation due to a bus bottleneck by disposing a barrier write register and a barrier read register inside a CPU core.
However, the barrier write register and the barrier read register need to have as many bits as the number of CPU cores to be synchronized. Further, when the number of CPU cores to be synchronized increases, the mutual wiring for connecting the barrier write register and barrier read register of each CPU core to another CPU core increases, and the wiring area increases. In addition, wiring may occur during wiring, which may cause a reduction in operation speed.

特許文献2および特許文献3は、並列処理における同期方式に関する技術を開示している。しかし、いずれもソフトウェア処理によって同期処理の完了判定を行うものであり、同期処理に時間を要してしまう。   Patent Document 2 and Patent Document 3 disclose techniques related to a synchronization method in parallel processing. However, in any case, the completion of synchronization processing is determined by software processing, and time is required for the synchronization processing.

国際公開第2009/093680号International Publication No. 2009/093680 特開平09−081525号公報JP 09-081525 A 特開2005−316679号公報JP 2005-316679 A

本発明は、複数のデータ処理の完了に合わせて後段のデータ処理を実行できるようにすることを目的とする。   An object of the present invention is to enable subsequent data processing to be executed in accordance with completion of a plurality of data processing.

本発明のデータ処理装置は、
前段のデータ処理が実行される前に初期値が書き込まれる前段レジスタを備え、前記前段のデータ処理を実行し、前記前段のデータ処理が完了した後に前記前段レジスタに完了値を上書きする複数の前段回路と、
前記初期値と前記完了値とのいずれかの値が書き込まれる後段レジスタを備え、前記後段レジスタに前記完了値が書き込まれた後に後段のデータ処理を実行する後段回路と、
前記複数の前段回路のそれぞれの前記前段レジスタに書き込まれた値に基づいて前記初期値と前記完了値とのいずれかの値を前記後段回路の前記後段レジスタに書き込む同期回路と
を備える。
The data processing apparatus of the present invention
A plurality of front-stage registers, each of which includes a front-stage register to which an initial value is written before the data processing of the front-stage is executed, executes the data processing of the front-stage, and overwrites a completion value in the front-stage register after the data processing of the front stage is completed; Circuit,
A post-stage register in which any one of the initial value and the completion value is written; a post-stage circuit that executes data processing in the post-stage after the completion value is written in the post-stage register;
A synchronization circuit that writes one of the initial value and the completion value to the subsequent stage register of the subsequent stage based on the value written to the previous stage register of each of the plurality of previous stage circuits.

本発明によれば、複数のデータ処理の完了に合わせて後段のデータ処理を実行することができる。   According to the present invention, subsequent data processing can be executed in accordance with completion of a plurality of data processing.

実施の形態1におけるデータ処理装置200の構成図である。1 is a configuration diagram of a data processing device 200 according to Embodiment 1. FIG. 実施の形態1におけるデータ処理回路100のデータ処理を示すフローチャートである。3 is a flowchart illustrating data processing of the data processing circuit 100 according to the first embodiment. 実施の形態1におけるデータ処理回路100のデータ処理を示すフローチャートである。3 is a flowchart illustrating data processing of the data processing circuit 100 according to the first embodiment. 実施の形態1におけるデータ処理回路100のデータ処理を示すフローチャートである。3 is a flowchart illustrating data processing of the data processing circuit 100 according to the first embodiment. 実施の形態2におけるデータ処理装置200の構成図である。6 is a configuration diagram of a data processing device 200 according to Embodiment 2. FIG. 実施の形態2におけるデータ処理回路100のデータ処理を示すフローチャートである。6 is a flowchart illustrating data processing of the data processing circuit 100 according to the second embodiment. 実施の形態3におけるデータ処理装置200の構成図である。FIG. 10 is a configuration diagram of a data processing device 200 in a third embodiment. 実施の形態3におけるデータ処理回路100のデータ処理を示すフローチャートである。14 is a flowchart illustrating data processing of the data processing circuit 100 according to the third embodiment. 実施の形態3における同期回路120の再構成の一例を示す図である。FIG. 10 is a diagram illustrating an example of reconfiguration of a synchronization circuit 120 in a third embodiment. 実施の形態4におけるデータ処理装置200の構成図である。FIG. 10 is a configuration diagram of a data processing device 200 in a fourth embodiment. 実施の形態4におけるデータ処理回路100のデータ処理を示すフローチャートである。14 is a flowchart illustrating data processing of the data processing circuit 100 according to the fourth embodiment. 実施の形態4におけるデータ処理回路100の動作例を示す図である。FIG. 10 is a diagram illustrating an operation example of the data processing circuit 100 according to the fourth embodiment.

実施の形態1.
複数のデータ処理の完了に合わせて後段のデータ処理を実行する形態について説明する。
Embodiment 1 FIG.
A mode in which subsequent data processing is executed in accordance with completion of a plurality of data processing will be described.

図1は、実施の形態1におけるデータ処理装置200の構成図である。
実施の形態1におけるデータ処理装置200の構成について、図1に基づいて説明する。但し、データ処理装置200の構成は、図1に示す構成と異なる構成であっても構わない。
FIG. 1 is a configuration diagram of a data processing device 200 according to the first embodiment.
The configuration of the data processing apparatus 200 in the first embodiment will be described with reference to FIG. However, the configuration of the data processing device 200 may be different from the configuration shown in FIG.

データ処理装置200は、データ処理を実行するコンピュータである。
データ処理装置200は、データ処理回路100を備える。
The data processing device 200 is a computer that executes data processing.
The data processing device 200 includes a data processing circuit 100.

データ処理回路100は、第一のデータ処理と第二のデータ処理とを実行した後に、後段のデータ処理を実行する回路である。
データ処理回路100は、第一のCPUコア110A(前段回路の一例)と、第二のCPUコア110B(後段回路の一例)と、同期回路120と、ハードウェアブロック130(後段回路の一例)とを備える。
但し、データ処理回路100は3つ以上のCPUコア110を備えても構わない。データ処理回路100はCPUコア110の代わりにハードウェアブロック130を備えても構わない。データ処理回路100はハードウェアブロック130の代わりにCPUコア110を備えても構わない。
CPUはCentral Processing Unitの略称である。CPUコア110はプロセッサまたはプロセッサコアともいう。
The data processing circuit 100 is a circuit that executes subsequent data processing after executing the first data processing and the second data processing.
The data processing circuit 100 includes a first CPU core 110A (an example of a preceding circuit), a second CPU core 110B (an example of a subsequent circuit), a synchronization circuit 120, and a hardware block 130 (an example of a subsequent circuit). Is provided.
However, the data processing circuit 100 may include three or more CPU cores 110. The data processing circuit 100 may include a hardware block 130 instead of the CPU core 110. The data processing circuit 100 may include a CPU core 110 instead of the hardware block 130.
CPU is an abbreviation for Central Processing Unit. The CPU core 110 is also called a processor or a processor core.

第一のCPUコア110Aは第一のデータ処理を実行する回路である。図中のBRはバリア同期レジスタを意味する。バリア同期レジスタはレジスタアクセス命令によって更新及び参照が可能である。
第一のCPUコア110Aは第一のバリア同期レジスタ111A(前段レジスタの一例)を備える。
第一のCPUコア110Aは、第一のデータ処理を開始するとき(開始前の一例)に、第一のバリア同期レジスタ111Aにビット値0(初期値の一例)を書き込む。
第一のCPUコア110Aは、第一のデータ処理が完了したとき(完了後の一例)に、第一のバリア同期レジスタ111Aにビット値1(完了値の一例)を書き込む。
The first CPU core 110A is a circuit that executes first data processing. BR in the figure means a barrier synchronization register. The barrier synchronization register can be updated and referred to by a register access instruction.
The first CPU core 110A includes a first barrier synchronization register 111A (an example of a pre-stage register).
When starting the first data processing (an example before the start), the first CPU core 110A writes a bit value 0 (an example of an initial value) in the first barrier synchronization register 111A.
When the first data processing is completed (an example after completion), the first CPU core 110A writes a bit value 1 (an example of a completion value) to the first barrier synchronization register 111A.

第二のCPUコア110Bは第二のデータ処理を実行する回路である。
第二のCPUコア110Bは第二のバリア同期レジスタ111B(前段レジスタの一例)を備える。
第二のCPUコア110Bは、第一のCPUコア110Aと同様に、第二のデータ処理を開始する前に、第二のバリア同期レジスタ111Bにビット値0を書き込む。そして、第二のCPUコア110Bは、第二のデータ処理が完了したときに、第二のバリア同期レジスタ111Bにビット値1を書き込む。
The second CPU core 110B is a circuit that executes second data processing.
The second CPU core 110B includes a second barrier synchronization register 111B (an example of a previous stage register).
Like the first CPU core 110A, the second CPU core 110B writes the bit value 0 to the second barrier synchronization register 111B before starting the second data processing. Then, the second CPU core 110B writes the bit value 1 to the second barrier synchronization register 111B when the second data processing is completed.

同期回路120は、第一のデータ処理の完了と第二のデータ処理の完了との同期をとる回路である。
同期回路120は論理積回路121(演算回路の一例)を備える。
論理積回路121は、第一のバリア同期レジスタ111Aに書き込まれた値と第二のバリア同期レジスタ111Bに書き込まれた値との論理積をとった値を、ハードウェアブロック130のバリア同期レジスタ131に書き込む。以下、ハードウェアブロック130のバリア同期レジスタ131を後段のバリア同期レジスタ131という。
つまり、第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの両方の値がビット値1である場合、論理積回路121は、後段のバリア同期レジスタ131にビット値1を書き込む。
また、論理積回路121は、第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの少なくとも一方の値がビット値0である場合、論理積回路121は、後段のバリア同期レジスタ131にビット値0を書き込む。
The synchronization circuit 120 is a circuit that synchronizes the completion of the first data processing and the completion of the second data processing.
The synchronization circuit 120 includes a logical product circuit 121 (an example of an arithmetic circuit).
The logical product circuit 121 obtains a logical product of the value written in the first barrier synchronization register 111A and the value written in the second barrier synchronization register 111B, and the barrier synchronization register 131 of the hardware block 130. Write to. Hereinafter, the barrier synchronization register 131 of the hardware block 130 is referred to as a subsequent-stage barrier synchronization register 131.
That is, when the values of both the first barrier synchronization register 111A and the second barrier synchronization register 111B are the bit value 1, the AND circuit 121 writes the bit value 1 to the barrier synchronization register 131 at the subsequent stage.
In addition, when the value of at least one of the first barrier synchronization register 111A and the second barrier synchronization register 111B has a bit value 0, the AND circuit 121 sets the AND circuit 121 to the barrier synchronization register 131 at the subsequent stage. Write a bit value of 0.

ハードウェアブロック130は、後段のデータ処理を実行する回路である。
ハードウェアブロック130は後段のバリア同期レジスタ131(後段レジスタの一例)を備える。ハードウェアブロック130はバリア同期レジスタ131の状態を監視する。
ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたとき(書き込まれた後の一例)に、後段のデータ処理を実行する。
The hardware block 130 is a circuit that executes subsequent data processing.
The hardware block 130 includes a post-stage barrier synchronization register 131 (an example of a post-stage register). The hardware block 130 monitors the state of the barrier synchronization register 131.
The hardware block 130 executes subsequent data processing when the bit value 1 is written in the subsequent barrier synchronization register 131 (an example after the writing).

バリア同期レジスタ111はCPUコア110に備わるため、CPUコア110はバリア同期レジスタ111に高速にアクセスすることができる。また、バリア同期レジスタ131はハードウェアブロック130に備わるため、ハードウェアブロック130はバリア同期レジスタ131に高速にアクセスすることができる。   Since the barrier synchronization register 111 is provided in the CPU core 110, the CPU core 110 can access the barrier synchronization register 111 at high speed. Further, since the barrier synchronization register 131 is provided in the hardware block 130, the hardware block 130 can access the barrier synchronization register 131 at high speed.

図2、図3および図4は、実施の形態1におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態1におけるデータ処理回路100のデータ処理について、図2から図4に基づいて説明する。但し、データ処理回路100のデータ処理は図2から図4に示す処理と異なる処理であっても構わない。
2, 3 and 4 are flowcharts showing the data processing of the data processing circuit 100 according to the first embodiment.
Data processing of the data processing circuit 100 according to the first embodiment will be described with reference to FIGS. However, the data processing of the data processing circuit 100 may be processing different from the processing shown in FIGS.

S101(図2参照)において、第一のCPUコア110Aは、第一のバリア同期レジスタ111Aにビット値0を書き込む。
また、第二のCPUコア110Bは、第二のバリア同期レジスタ111Bにビット値0を書き込む。
3つ以上のCPUコア110がある場合、各CPUコア110がバリア同期レジスタ111にビット値0を書き込む。
In S101 (see FIG. 2), the first CPU core 110A writes a bit value 0 to the first barrier synchronization register 111A.
The second CPU core 110B writes a bit value 0 in the second barrier synchronization register 111B.
When there are three or more CPU cores 110, each CPU core 110 writes a bit value 0 to the barrier synchronization register 111.

S101の後、第一のCPUコア110AはS111およびS112を実行し、第二のCPUコア110BはS121およびS122を実行する(図2参照)。
また、同期回路120はS210とS211とS212とを実行する(図3参照)。
さらに、ハードウェアブロック130はS310とS320とを実行する(図4参照)。
After S101, the first CPU core 110A executes S111 and S112, and the second CPU core 110B executes S121 and S122 (see FIG. 2).
Further, the synchronization circuit 120 executes S210, S211 and S212 (see FIG. 3).
Further, the hardware block 130 executes S310 and S320 (see FIG. 4).

S111において、第一のCPUコア110Aは第一のデータ処理を実行する。例えば、CPUコア110Aは第一のデータ処理が記述された第一のプログラムを実行する。例えば、第一のプログラムを含めて各プログラムはデータ処理装置200のメモリ(図示省略)に記憶される。
S111の後、処理はS112に進む。
In S111, the first CPU core 110A executes the first data processing. For example, the CPU core 110A executes a first program in which first data processing is described. For example, each program including the first program is stored in a memory (not shown) of the data processing device 200.
After S111, the process proceeds to S112.

S112において、第一のCPUコア110Aは第一のバリア同期レジスタ111Aにビット値1を書き込む。つまり、第一のCPUコア110Aは第一のデータ処理を完了したときに、第一のバリア同期レジスタ111Aにビット値1を書き込む。
S112の後、第一のCPUコア110Aの処理は終了する。
In S112, the first CPU core 110A writes the bit value 1 to the first barrier synchronization register 111A. That is, the first CPU core 110A writes the bit value 1 to the first barrier synchronization register 111A when the first data processing is completed.
After S112, the processing of the first CPU core 110A ends.

S121およびS122(図2参照)において、第二のCPUコア110Bは第一のCPUコア110Aと同様に動作する。
つまり、第二のCPUコア110Bは第二のデータ処理を完了したときに、第二のバリア同期レジスタ111Bにビット値1を書き込む。
S122の後、第二のCPUコア110Bの処理は終了する。
In S121 and S122 (see FIG. 2), the second CPU core 110B operates in the same manner as the first CPU core 110A.
That is, the second CPU core 110B writes the bit value 1 to the second barrier synchronization register 111B when the second data processing is completed.
After S122, the processing of the second CPU core 110B ends.

3つ以上のCPUコア110がある場合、各CPUコア110が、第一のCPUコア110Aと第二のCPUコア110Bと同様に、データ処理を並列に実行する。   When there are three or more CPU cores 110, each CPU core 110 executes data processing in parallel, like the first CPU core 110A and the second CPU core 110B.

S210(図3参照)において、同期回路120は、第一のデータ処理と第二のデータ処理との同期の完了を判定する。
第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの両方の値がビット値1である場合、同期が完了している。つまり、第一のデータ処理と第二のデータ処理との両方が完了したときに、同期が完了する。
第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの少なくとも一方の値がビット値0である場合、同期が完了していない。つまり、第一のデータ処理と第二のデータ処理との少なくとも一方が完了していない場合、同期が完了していない。
第一のデータ処理と第二のデータ処理との同期が完了した場合(YES)、処理はS211に進む。
第一のデータ処理と第二のデータ処理との同期が完了していない場合(NO)、処理はS212に進む。
In S210 (see FIG. 3), the synchronization circuit 120 determines completion of synchronization between the first data processing and the second data processing.
When both the first barrier synchronization register 111A and the second barrier synchronization register 111B have the bit value 1, the synchronization is completed. That is, the synchronization is completed when both the first data processing and the second data processing are completed.
When at least one of the first barrier synchronization register 111A and the second barrier synchronization register 111B has a bit value 0, the synchronization is not completed. That is, when at least one of the first data processing and the second data processing is not completed, the synchronization is not completed.
When the synchronization between the first data process and the second data process is completed (YES), the process proceeds to S211.
When synchronization between the first data process and the second data process is not completed (NO), the process proceeds to S212.

3つ以上のCPUコア110がある場合、同期回路120は、各CPUコア110が実行した各データ処理の同期の完了を判定する。   When there are three or more CPU cores 110, the synchronization circuit 120 determines completion of synchronization of each data process executed by each CPU core 110.

S211において、同期回路120は、後段のバリア同期レジスタ131にビット値1を書き込む。
S211の後、処理はS210に戻る。
In S211, the synchronization circuit 120 writes the bit value 1 to the barrier synchronization register 131 at the subsequent stage.
After S211, the process returns to S210.

S212において、同期回路120は、後段のバリア同期レジスタ131にビット値0を書き込む。
S212の後、処理はS210に戻る。
In S212, the synchronization circuit 120 writes the bit value 0 to the barrier synchronization register 131 at the subsequent stage.
After S212, the process returns to S210.

S210からS212は、同期回路120が論理積回路121を備えることによって、実現できる(図1参照)。   S210 to S212 can be realized by the synchronization circuit 120 including the AND circuit 121 (see FIG. 1).

S310(図4参照)において、ハードウェアブロック130は、後段のバリア同期レジスタ131に書き込まれている値がビット値1であるか判定する。
後段のバリア同期レジスタ131に書き込まれている値がビット値1である場合(YES)、処理はS320に進む。
後段のバリア同期レジスタ131に書き込まれている値がビット値0である場合(NO)、処理はS310に戻る。
In S310 (see FIG. 4), the hardware block 130 determines whether the value written in the barrier synchronization register 131 at the subsequent stage is the bit value 1 or not.
When the value written in the barrier synchronization register 131 at the subsequent stage is the bit value 1 (YES), the process proceeds to S320.
When the value written in the barrier synchronization register 131 at the subsequent stage is the bit value 0 (NO), the process returns to S310.

S320において、ハードウェアブロック130は後段のデータ処理を実行する。
つまり、ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたときに、後段のデータ処理を実行する。したがって、ハードウェアブロック130は、第一のデータ処理の完了と第二のデータ処理の完了との同期がとられたときに、後段のデータ処理を実行する。
In S320, the hardware block 130 executes subsequent data processing.
That is, the hardware block 130 executes subsequent data processing when the bit value 1 is written in the subsequent barrier synchronization register 131. Therefore, the hardware block 130 executes the subsequent data processing when the completion of the first data processing and the completion of the second data processing are synchronized.

実施の形態1において、同期回路120は論理積回路121以外の論理回路を備えても構わない。
例えば、同期回路120は論理積回路121の代わりに論理和回路を備えても構わない。同期回路120は、論理和回路を備えることにより、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込むことができる。この場合、ハードウェアブロック130は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のデータ処理を実行する。
In the first embodiment, the synchronization circuit 120 may include a logic circuit other than the AND circuit 121.
For example, the synchronization circuit 120 may include an OR circuit instead of the AND circuit 121. The synchronization circuit 120 includes an OR circuit, and can write a bit value 1 to the barrier synchronization register 131 at the subsequent stage when at least one of the first data processing and the second data processing is completed. In this case, the hardware block 130 executes the subsequent data processing when at least one of the first data processing and the second data processing is completed.

実施の形態2.
同期回路120が複数の論理回路を備える形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
Embodiment 2. FIG.
A mode in which the synchronization circuit 120 includes a plurality of logic circuits will be described.
Hereinafter, items different from the first embodiment will be mainly described. Matters whose description is omitted are the same as those in the first embodiment.

図5は、実施の形態2におけるデータ処理装置200の構成図である。
実施の形態2におけるデータ処理装置200の構成について、図2に基づいて説明する。但し、データ処理装置200の構成は、図5に示す構成と異なる構成であっても構わない。
FIG. 5 is a configuration diagram of the data processing apparatus 200 according to the second embodiment.
The configuration of the data processing apparatus 200 in the second embodiment will be described with reference to FIG. However, the configuration of the data processing device 200 may be different from the configuration shown in FIG.

データ処理装置200は、データ処理回路100と、データ処理制御回路210と、同期制御回路220とを備える。
データ処理回路100の同期回路120は、論理積回路121と、論理和回路122と、選択回路123とを備える。
The data processing device 200 includes a data processing circuit 100, a data processing control circuit 210, and a synchronization control circuit 220.
The synchronization circuit 120 of the data processing circuit 100 includes an AND circuit 121, an OR circuit 122, and a selection circuit 123.

データ処理制御回路210は、同期制御の実行を同期制御回路220に指示する。
データ処理制御回路210は、第一のデータ処理の実行を第一のCPUコア110Aに指示し、第二のデータ処理の実行を第二のCPUコア110Bに指示する。
The data processing control circuit 210 instructs the synchronization control circuit 220 to execute the synchronization control.
The data processing control circuit 210 instructs the first CPU core 110A to execute the first data processing, and instructs the second CPU core 110B to execute the second data processing.

同期制御回路220は、論理積回路121と論理和回路122とのいずれかを選択回路123に指定する。
例えば、同期制御回路220は、スイッチまたは同期制御データに従って、選択回路123に同期制御信号を出力する。同期制御信号は、論理積回路121と論理和回路122とのいずれかを指定する信号である。この場合、データ処理装置200は、論理積回路121と論理和回路122とのいずれかを指定するスイッチ、または、同期制御データが記憶されるメモリを備える。同期制御データは論理積回路121と論理和回路122とのいずれかの回路の識別子を含む。
The synchronization control circuit 220 designates either the logical product circuit 121 or the logical sum circuit 122 as the selection circuit 123.
For example, the synchronization control circuit 220 outputs a synchronization control signal to the selection circuit 123 according to the switch or the synchronization control data. The synchronization control signal is a signal that designates either the logical product circuit 121 or the logical sum circuit 122. In this case, the data processing device 200 includes a switch that specifies one of the logical product circuit 121 and the logical sum circuit 122 or a memory that stores synchronization control data. The synchronization control data includes an identifier of one of the logical product circuit 121 and the logical sum circuit 122.

論理積回路121は、第一のバリア同期レジスタ111Aの値と第二のバリア同期レジスタ111Bの値との論理積を表す値を、選択回路123に出力する。つまり、論理積回路121は、第一のデータ処理と第二のデータ処理との両方が完了したときに、ビット値1を選択回路123に出力する。
論理和回路122は、第一のバリア同期レジスタ111Aの値と第二のバリア同期レジスタ111Bの値との論理和を表す値を、選択回路123に出力する。つまり、論理和回路122は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、ビット値1を選択回路123に出力する。
The logical product circuit 121 outputs a value representing the logical product of the value of the first barrier synchronization register 111A and the value of the second barrier synchronization register 111B to the selection circuit 123. That is, the AND circuit 121 outputs the bit value 1 to the selection circuit 123 when both the first data processing and the second data processing are completed.
The OR circuit 122 outputs a value representing the logical sum of the value of the first barrier synchronization register 111A and the value of the second barrier synchronization register 111B to the selection circuit 123. That is, the OR circuit 122 outputs the bit value 1 to the selection circuit 123 when at least one of the first data processing and the second data processing is completed.

選択回路123は、論理積回路121と論理和回路122とのうちの同期制御回路220に指定された回路から出力された値を、後段のバリア同期レジスタ131に書き込む。
つまり、論理積回路121が指定された場合、選択回路123は、第一のデータ処理と第二のデータ処理との両方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込む。
また、論理和回路122が指定された場合、選択回路123は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込む。
The selection circuit 123 writes the value output from the circuit designated by the synchronization control circuit 220 of the AND circuit 121 and the OR circuit 122 to the barrier synchronization register 131 at the subsequent stage.
That is, when the logical product circuit 121 is designated, the selection circuit 123 writes the bit value 1 to the barrier synchronization register 131 at the subsequent stage when both the first data processing and the second data processing are completed.
When the OR circuit 122 is designated, the selection circuit 123 writes the bit value 1 to the barrier synchronization register 131 at the subsequent stage when at least one of the first data processing and the second data processing is completed. .

ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたときに、後段のデータ処理を実行する。   The hardware block 130 executes subsequent data processing when the bit value 1 is written in the subsequent barrier synchronization register 131.

図6は、実施の形態2におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態2におけるデータ処理回路100のデータ処理について、図6、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図6、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 6 is a flowchart showing data processing of the data processing circuit 100 according to the second embodiment.
Data processing of the data processing circuit 100 in the second embodiment will be described with reference to FIGS. 6, 3, and 4. FIG. However, the data processing of the data processing circuit 100 may be processing different from the processing shown in FIG. 6, FIG. 3, and FIG.

S101において、データ処理制御回路210は、バリア同期レジスタ111の初期化を指示する初期化信号を第一のCPUコア110Aと第二のCPUコア110Bとに出力する。
そして、第一のCPUコア110Aは第一のバリア同期レジスタ111Aにビット値0を書き込み、第二のCPUコア110Bは第二のバリア同期レジスタ111Bにビット値0を書き込む。
3つ以上のCPUコア110がある場合、データ処理制御回路210は各CPUコア110に初期化信号を出力し、各CPUコア110はバリア同期レジスタ111にビット値0を書き込む。
S101の後、処理はS102に進む。
In S101, the data processing control circuit 210 outputs an initialization signal instructing initialization of the barrier synchronization register 111 to the first CPU core 110A and the second CPU core 110B.
Then, the first CPU core 110A writes a bit value 0 to the first barrier synchronization register 111A, and the second CPU core 110B writes a bit value 0 to the second barrier synchronization register 111B.
When there are three or more CPU cores 110, the data processing control circuit 210 outputs an initialization signal to each CPU core 110, and each CPU core 110 writes a bit value 0 in the barrier synchronization register 111.
After S101, the process proceeds to S102.

S102において、データ処理制御回路210は、同期制御の実行を指示する同期制御実行信号を同期制御回路220に出力する。
そして、同期制御回路220は、論理積回路121と論理和回路122とのいずれかを指定する同期制御信号を同期回路120の選択回路123に出力する。
S102の後、処理はS103に進む。
In S102, the data processing control circuit 210 outputs a synchronization control execution signal for instructing execution of the synchronization control to the synchronization control circuit 220.
Then, the synchronization control circuit 220 outputs a synchronization control signal designating either the AND circuit 121 or the OR circuit 122 to the selection circuit 123 of the synchronization circuit 120.
After S102, the process proceeds to S103.

S103において、データ処理制御回路210は、第一のデータ処理の実行を指示するデータ処理実行信号を第一のCPUコア110Aに出力する。
また、データ処理制御回路210は、第二のデータ処理の実行を指示するデータ処理実行信号を第二のCPUコア110Bに出力する。
データ処理制御回路210は、データ処理実行信号によってデータ処理の内容を指定してもよい。例えば、データ処理制御回路210は、データ処理が記述されたプログラムの先頭アドレスを指定するデータ処理実行信号を出力する。プログラムの先頭アドレスは、プログラムが記憶された記憶領域の先頭アドレスである。
3つ以上のCPUコア110がある場合、データ処理制御回路210はデータ処理実行信号を各CPUコア110に出力する。
S103の後、処理はS111およびS121に進む。
In S103, the data processing control circuit 210 outputs a data processing execution signal instructing execution of the first data processing to the first CPU core 110A.
Further, the data processing control circuit 210 outputs a data processing execution signal instructing execution of the second data processing to the second CPU core 110B.
The data processing control circuit 210 may specify the content of data processing by a data processing execution signal. For example, the data processing control circuit 210 outputs a data processing execution signal that specifies the head address of a program in which data processing is described. The start address of the program is the start address of the storage area in which the program is stored.
When there are three or more CPU cores 110, the data processing control circuit 210 outputs a data processing execution signal to each CPU core 110.
After S103, the process proceeds to S111 and S121.

S111、S112、S121およびS122は実施の形態1(図2参照)と同様である。
また、同期回路120の処理およびハードウェアブロック130の処理は実施の形態1(図3、図4参照)と同様である。
S111, S112, S121 and S122 are the same as those in the first embodiment (see FIG. 2).
The processing of the synchronization circuit 120 and the processing of the hardware block 130 are the same as those in the first embodiment (see FIGS. 3 and 4).

但し、S210(図3参照)において、同期回路120は以下のように同期の完了を判定する。
同期回路120は、同期制御回路220による論理回路の指定に基づいて、第一のデータ処理と第二のデータ処理との同期の完了を判定する。
論理積回路121が指定された場合、論理積回路121がビット値1を出力したときに、同期が完了する。つまり、第一のデータ処理と第二のデータ処理との両方が完了したときに、同期が完了する。
論理和回路122が指定された場合、論理和回路122がビット値1を出力したときに、同期が完了する。つまり、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、同期が完了する。
3つ以上のCPUコア110がある場合、同期回路120は、各CPUコア110が実行した各データ処理の同期の完了を判定する。
However, in S210 (see FIG. 3), the synchronization circuit 120 determines the completion of synchronization as follows.
The synchronization circuit 120 determines completion of synchronization between the first data processing and the second data processing based on the designation of the logic circuit by the synchronization control circuit 220.
When the logical product circuit 121 is designated, the synchronization is completed when the logical product circuit 121 outputs the bit value 1. That is, the synchronization is completed when both the first data processing and the second data processing are completed.
When the OR circuit 122 is designated, the synchronization is completed when the OR circuit 122 outputs the bit value 1. That is, the synchronization is completed when at least one of the first data processing and the second data processing is completed.
When there are three or more CPU cores 110, the synchronization circuit 120 determines completion of synchronization of each data process executed by each CPU core 110.

S210からS212は、同期回路120が論理積回路121と論理和回路122と選択回路123とを備えることによって、実現できる(図5参照)。   S210 to S212 can be realized by the synchronization circuit 120 including the AND circuit 121, the OR circuit 122, and the selection circuit 123 (see FIG. 5).

実施の形態2において、同期回路120は3つ以上の論理回路を備えても構わない。この場合、同期制御回路220は3つ以上の論理回路から一つの論理回路を指定する。
また、同期回路120が備える論理回路は論理積回路121および論理和回路122以外の論理回路であっても構わない。
In the second embodiment, the synchronization circuit 120 may include three or more logic circuits. In this case, the synchronization control circuit 220 designates one logic circuit from three or more logic circuits.
The logic circuit included in the synchronization circuit 120 may be a logic circuit other than the AND circuit 121 and the OR circuit 122.

実施の形態3.
同期回路120を再構成する形態について説明する。
以下、実施の形態1および実施の形態2と異なる事項について主に説明する。説明を省略する事項については実施の形態1および実施の形態2と同様である。
Embodiment 3 FIG.
An embodiment in which the synchronization circuit 120 is reconfigured will be described.
Hereinafter, matters different from the first embodiment and the second embodiment will be mainly described. Matters whose description is omitted are the same as those in the first and second embodiments.

図7は、実施の形態3におけるデータ処理装置200の構成図である。
実施の形態2におけるデータ処理装置200の構成について、図7に基づいて説明する。但し、データ処理装置200の構成は、図7に示す構成と異なる構成であっても構わない。
FIG. 7 is a configuration diagram of the data processing device 200 according to the third embodiment.
The configuration of data processing apparatus 200 according to Embodiment 2 will be described with reference to FIG. However, the configuration of the data processing device 200 may be different from the configuration shown in FIG.

データ処理装置200は、実施の形態2(図5参照)で説明した構成に加えて、再構成回路230と、再構成メモリ231と、同期制御メモリ221とを備える。   The data processing device 200 includes a reconfiguration circuit 230, a reconfiguration memory 231 and a synchronization control memory 221 in addition to the configuration described in the second embodiment (see FIG. 5).

再構成回路230は、回路構成を表す構成データに基づいて、同期回路120の回路構成を変更する。つまり、再構成回路230は同期回路120の回路構成を再構成する。
同期回路120は再構成可能な回路である。例えば、同期回路120はFPGAのようなプログラマブルロジックデバイス(PLD)である。FPGAはfield−programmable gate arrayの略称である。
再構成メモリ231は構成データを記憶するメモリである。
The reconfiguration circuit 230 changes the circuit configuration of the synchronization circuit 120 based on configuration data representing the circuit configuration. That is, the reconfiguration circuit 230 reconfigures the circuit configuration of the synchronization circuit 120.
The synchronization circuit 120 is a reconfigurable circuit. For example, the synchronization circuit 120 is a programmable logic device (PLD) such as an FPGA. FPGA is an abbreviation for field-programmable gate array.
The reconfiguration memory 231 is a memory that stores configuration data.

同期制御メモリ221は同期制御データを記憶するメモリである。同期制御データは、同期回路120に備わる選択回路と、選択回路に指定する論理回路と、を指定するデータである。
同期制御回路220は、同期制御データが指定する選択回路に、同期制御データが指定する論理回路を指定する。例えば、同期制御回路220は、選択回路123に論理積回路121(または論理和回路122)を指定する。
The synchronization control memory 221 is a memory that stores synchronization control data. The synchronization control data is data that designates a selection circuit included in the synchronization circuit 120 and a logic circuit designated as the selection circuit.
The synchronization control circuit 220 specifies the logic circuit specified by the synchronization control data in the selection circuit specified by the synchronization control data. For example, the synchronization control circuit 220 designates the logical product circuit 121 (or the logical sum circuit 122) as the selection circuit 123.

図8は、実施の形態3におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態3におけるデータ処理回路100のデータ処理について、図8、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図8、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 8 is a flowchart showing data processing of the data processing circuit 100 according to the third embodiment.
Data processing of the data processing circuit 100 in the third embodiment will be described with reference to FIGS. 8, 3, and 4. FIG. However, the data processing of the data processing circuit 100 may be processing different from the processing shown in FIG. 8, FIG. 3, and FIG.

S101において、データ処理制御回路210は、バリア同期レジスタ111の初期化を指示する初期化信号を第一のCPUコア110Aと第二のCPUコア110Bとに出力する。
そして、第一のCPUコア110Aは第一のバリア同期レジスタ111Aにビット値0を書き込み、第二のCPUコア110Bは第二のバリア同期レジスタ111Bにビット値0を書き込む。
3つ以上のCPUコア110がある場合、データ処理制御回路210は各CPUコア110に初期化信号を出力し、各CPUコア110はバリア同期レジスタ111にビット値0を書き込む。
S101の後、処理はS102−1に進む。
In S101, the data processing control circuit 210 outputs an initialization signal instructing initialization of the barrier synchronization register 111 to the first CPU core 110A and the second CPU core 110B.
Then, the first CPU core 110A writes a bit value 0 to the first barrier synchronization register 111A, and the second CPU core 110B writes a bit value 0 to the second barrier synchronization register 111B.
When there are three or more CPU cores 110, the data processing control circuit 210 outputs an initialization signal to each CPU core 110, and each CPU core 110 writes a bit value 0 in the barrier synchronization register 111.
After S101, the process proceeds to S102-1.

S102−1において、データ処理制御回路210は、同期回路120の再構成を指示する再構成信号を再構成回路230に出力する。
そして、再構成回路230は、再構成メモリ231に記憶されている再構成データに基づいて、同期回路120を再構成する。
S102−1の後、処理はS102−2に進む。
In S102-1, the data processing control circuit 210 outputs a reconfiguration signal instructing the reconfiguration of the synchronization circuit 120 to the reconfiguration circuit 230.
The reconfiguration circuit 230 reconfigures the synchronization circuit 120 based on the reconfiguration data stored in the reconfiguration memory 231.
After S102-1, the process proceeds to S102-2.

S102−2において、データ処理制御回路210は、同期制御の実行を指示する同期制御実行信号を同期制御回路220に出力する。
そして、同期制御回路220は、同期制御メモリ221に記憶されている同期制御データに基づいて、同期回路120に備わる選択回路に、同期回路120に備わる論理回路を指定する。例えば、同期制御回路220は、選択回路123に論理積回路121(または論理和回路122)を指定する(図7参照)。
S102−2の後、処理はS103に進む。
In step S <b> 102-2, the data processing control circuit 210 outputs a synchronization control execution signal that instructs execution of synchronization control to the synchronization control circuit 220.
Then, the synchronization control circuit 220 designates the logic circuit included in the synchronization circuit 120 as the selection circuit included in the synchronization circuit 120 based on the synchronization control data stored in the synchronization control memory 221. For example, the synchronization control circuit 220 designates the logical product circuit 121 (or the logical sum circuit 122) as the selection circuit 123 (see FIG. 7).
After S102-2, the process proceeds to S103.

S103において、データ処理制御回路210は、第一のCPUコア110Aと第二のCPUコア110Bとに、データ処理実行信号を出力する(図6のS103と同じ)。
3つ以上のCPUコア110がある場合、データ処理制御回路210は各CPUコア110にデータ処理実行信号を出力する。
S103の後、処理はS111およびS121に進む。
In S103, the data processing control circuit 210 outputs a data processing execution signal to the first CPU core 110A and the second CPU core 110B (same as S103 in FIG. 6).
When there are three or more CPU cores 110, the data processing control circuit 210 outputs a data processing execution signal to each CPU core 110.
After S103, the process proceeds to S111 and S121.

S111、S112、S121およびS122は実施の形態1(図2参照)と同様である。
3つ以上のCPUコア110がある場合、各CPUコア110が並列にデータ処理を実行する。
S111, S112, S121 and S122 are the same as those in the first embodiment (see FIG. 2).
When there are three or more CPU cores 110, each CPU core 110 executes data processing in parallel.

同期回路120の処理およびハードウェアブロック130の処理は実施の形態1(図3、図4参照)と同様である。
但し、S210(図3参照)において、同期完了の判定方法は、再構成後の同期回路120と、同期制御回路220による論理回路の指定とによって決まる。
The processing of the synchronization circuit 120 and the processing of the hardware block 130 are the same as those in the first embodiment (see FIGS. 3 and 4).
However, in S210 (see FIG. 3), the synchronization completion determination method is determined by the reconfigured synchronization circuit 120 and the logic circuit designation by the synchronization control circuit 220.

図9は、実施の形態3における同期回路120の再構成の一例を示す図である。
例えば、第三のCPUコア110Cが追加された場合、同期回路120は図9に示すように再構成することができる。
同期回路120は、論理積回路121と論理和回路122と選択回路123とから成る4組の論理回路を備える。また、同期回路120は選択回路124を備える。
同期制御回路220は、各選択回路123に論理積回路121または論理和回路122を指定する。さらに、同期制御回路220は、選択回路124にいずれかの選択回路123を指定する。
各選択回路123は、論理積回路121と論理和回路122とのうちの指定された回路から出力された値を、選択回路124に出力する。
そして、選択回路124は、指定された選択回路123から出力された値を、後段のバリア同期レジスタ131に書き込む。
FIG. 9 is a diagram illustrating an example of reconfiguration of the synchronization circuit 120 according to the third embodiment.
For example, when the third CPU core 110C is added, the synchronization circuit 120 can be reconfigured as shown in FIG.
The synchronization circuit 120 includes four sets of logic circuits including an AND circuit 121, an OR circuit 122, and a selection circuit 123. The synchronization circuit 120 includes a selection circuit 124.
The synchronization control circuit 220 designates the logical product circuit 121 or the logical sum circuit 122 for each selection circuit 123. Further, the synchronization control circuit 220 designates one of the selection circuits 123 as the selection circuit 124.
Each selection circuit 123 outputs a value output from a designated circuit of the logical product circuit 121 and the logical sum circuit 122 to the selection circuit 124.
Then, the selection circuit 124 writes the value output from the designated selection circuit 123 to the barrier synchronization register 131 at the subsequent stage.

実施の形態3により、CPUコア110の個数などに応じて同期回路120を再構成することができる。   According to the third embodiment, the synchronization circuit 120 can be reconfigured according to the number of CPU cores 110 and the like.

実施の形態4.
同期回路120の再構成を複数回行う形態について説明する。
以下、実施の形態1から3と異なる事項について主に説明する。説明を省略する事項については実施の形態1から3と同様である。
Embodiment 4 FIG.
An embodiment in which the reconfiguration of the synchronization circuit 120 is performed multiple times will be described.
Hereinafter, items different from the first to third embodiments will be mainly described. Matters whose description is omitted are the same as those in the first to third embodiments.

図10は、実施の形態4におけるデータ処理装置200の構成図である。
実施の形態4におけるデータ処理装置200の構成について、図10に基づいて説明する。但し、データ処理装置200の構成は、図10に示す構成と異なる構成であっても構わない。
FIG. 10 is a configuration diagram of the data processing device 200 according to the fourth embodiment.
The configuration of data processing apparatus 200 according to Embodiment 4 will be described with reference to FIG. However, the configuration of the data processing device 200 may be different from the configuration shown in FIG.

データ処理装置200は、実施の形態3(図7参照)で説明した構成に加えて、データ処理制御メモリ211を備える。   The data processing device 200 includes a data processing control memory 211 in addition to the configuration described in the third embodiment (see FIG. 7).

データ処理制御メモリ211は、順番付けされた複数の処理制御データを記憶する。処理制御データは、各CPUコア110に実行させるデータ処理を指定するデータである。   The data processing control memory 211 stores a plurality of ordered processing control data. The process control data is data that specifies data processing to be executed by each CPU core 110.

また、同期制御メモリ221は順番付けされた複数の同期制御データを記憶し、再構成メモリ231は順番付けされた複数の再構成データを記憶する。   The synchronization control memory 221 stores a plurality of ordered synchronization control data, and the reconfiguration memory 231 stores a plurality of ordered reconfiguration data.

図11は、実施の形態4におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態4におけるデータ処理回路100のデータ処理について、図11、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図11、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 11 is a flowchart showing data processing of the data processing circuit 100 according to the fourth embodiment.
Data processing of the data processing circuit 100 according to the fourth embodiment will be described with reference to FIG. 11, FIG. 3, and FIG. However, the data processing of the data processing circuit 100 may be processing different from the processing shown in FIGS. 11, 3, and 4.

S101において、データ処理制御回路210は、各CPUコア110に初期化信号を出力する。
そして、各CPUコア110はバリア同期レジスタ111にビット値0を書き込む。
S101の後、処理はS102−1に進む。
In S <b> 101, the data processing control circuit 210 outputs an initialization signal to each CPU core 110.
Each CPU core 110 then writes a bit value 0 to the barrier synchronization register 111.
After S101, the process proceeds to S102-1.

S102−1において、データ処理制御回路210は、再構成回路230に再構成信号を出力する。
再構成回路230は、各再構成データの順番に従って、未選択の再構成データを再構成メモリ231から一つ選択する。
そして、再構成回路230は、選択した再構成データに基づいて、同期回路120を再構成する。
S102−1の後、処理はS102−2に進む。
In S102-1, the data processing control circuit 210 outputs a reconfiguration signal to the reconfiguration circuit 230.
The reconfiguration circuit 230 selects one unselected reconfiguration data from the reconfiguration memory 231 in accordance with the order of each reconfiguration data.
Then, the reconfiguration circuit 230 reconfigures the synchronization circuit 120 based on the selected reconfiguration data.
After S102-1, the process proceeds to S102-2.

S102−2において、データ処理制御回路210は、同期制御回路220に同期制御実行信号を出力する。
同期制御回路220は、各同期制御データの順番に従って、未選択の同期制御データを同期制御メモリ221から一つ選択する。
そして、同期制御回路220は、選択した同期制御データに基づいて、同期回路120に備わる選択回路に、同期回路120に備わる論理回路を指定する。
S102−2の後、処理はS103に進む。
In S102-2, the data processing control circuit 210 outputs a synchronization control execution signal to the synchronization control circuit 220.
The synchronization control circuit 220 selects one unselected synchronization control data from the synchronization control memory 221 in accordance with the order of each synchronization control data.
Then, the synchronization control circuit 220 designates a logic circuit included in the synchronization circuit 120 as a selection circuit included in the synchronization circuit 120 based on the selected synchronization control data.
After S102-2, the process proceeds to S103.

S103において、データ処理制御回路210は、各処理制御データの順番に従って、未選択の処理制御データをデータ処理制御メモリ211から選択する。
そして、データ処理制御回路210は、選択した処理制御データに基づいて、各CPUコア110にデータ処理実行信号を出力する。
S103の後、処理はS111およびS121に進む。
In S103, the data processing control circuit 210 selects unselected processing control data from the data processing control memory 211 in accordance with the order of each processing control data.
Then, the data processing control circuit 210 outputs a data processing execution signal to each CPU core 110 based on the selected processing control data.
After S103, the process proceeds to S111 and S121.

S111、S112、S121およびS122は実施の形態1(図2参照)と同様である。
3つ以上のCPUコア110がある場合、各CPUコア110が並列にデータ処理を実行する。
S112およびS122の後、処理はS130に進む。
S111, S112, S121 and S122 are the same as those in the first embodiment (see FIG. 2).
When there are three or more CPU cores 110, each CPU core 110 executes data processing in parallel.
After S112 and S122, the process proceeds to S130.

S130において、データ処理制御回路210は、全てのCPUコア110がデータ処理を完了するまで待機する。
つまり、データ処理制御回路210は、全てのバリア同期レジスタ111の値がビット値1になるまで、待機する。
S130の後、処理はS131に進む。
In S130, the data processing control circuit 210 waits until all the CPU cores 110 complete the data processing.
That is, the data processing control circuit 210 waits until the values of all the barrier synchronization registers 111 become the bit value 1.
After S130, the process proceeds to S131.

S131において、データ処理制御回路210は、S103で選択していない未選択の処理制御データがあるか判定する。
未選択の処理制御データがある場合(YES)、処理はS101に戻る。
未選択の処理制御データがない場合(NO)、データ処理制御回路210の処理は終了する。
In S131, the data processing control circuit 210 determines whether there is unselected processing control data not selected in S103.
If there is unselected process control data (YES), the process returns to S101.
If there is no unselected process control data (NO), the process of the data processing control circuit 210 is terminated.

同期回路120の処理およびハードウェアブロック130の処理は実施の形態1(図3、図4参照)と同様である。
但し、S210(図3参照)において、同期完了の判定方法は、再構成後の同期回路120と、同期制御回路220による論理回路の指定とによって決まる。
The processing of the synchronization circuit 120 and the processing of the hardware block 130 are the same as those in the first embodiment (see FIGS. 3 and 4).
However, in S210 (see FIG. 3), the synchronization completion determination method is determined by the reconfigured synchronization circuit 120 and the logic circuit designation by the synchronization control circuit 220.

図12は、実施の形態4におけるデータ処理回路100の動作例を示す図である。
実施の形態4におけるデータ処理回路100の動作例について、図12に基づいて説明する。
FIG. 12 is a diagram illustrating an operation example of the data processing circuit 100 according to the fourth embodiment.
An operation example of the data processing circuit 100 according to the fourth embodiment will be described with reference to FIG.

再構成回路230は同期回路120を再構成する(S102−1)。
同期回路120の再構成の後、第一のCPUコア110Aは第一のデータ処理を実行する(S111)。そして、第一のCPUコア110Aは第一のデータ処理が完了したときに第一のバリア同期レジスタ111Aにビット値1を書き込む(S112)。
また、第二のCPUコア110Bは第二のデータ処理を実行する(S121)。そして、第二のCPUコア110Bは第二のデータ処理が完了したときに第二のバリア同期レジスタ111Bにビット値1を書き込む(S122)。
各バリア同期レジスタ111にビット値1が書き込まれた後、同期回路120は後段のバリア同期レジスタ131にビット値1を書き込む(S211)。
また、再構成回路230は同期回路120を新たに再構成する(S102−1)。
後段のバリア同期レジスタ131にビット値1が書き込まれた後、ハードウェアブロック130は後段のデータ処理を実行する(S320)。
The reconfiguration circuit 230 reconfigures the synchronization circuit 120 (S102-1).
After reconfiguration of the synchronization circuit 120, the first CPU core 110A executes the first data processing (S111). Then, the first CPU core 110A writes the bit value 1 to the first barrier synchronization register 111A when the first data processing is completed (S112).
The second CPU core 110B executes second data processing (S121). Then, the second CPU core 110B writes the bit value 1 to the second barrier synchronization register 111B when the second data processing is completed (S122).
After the bit value 1 is written to each barrier synchronization register 111, the synchronization circuit 120 writes the bit value 1 to the barrier synchronization register 131 at the subsequent stage (S211).
The reconfiguration circuit 230 newly reconfigures the synchronization circuit 120 (S102-1).
After the bit value 1 is written in the subsequent-stage barrier synchronization register 131, the hardware block 130 executes the subsequent-stage data processing (S320).

以上のように、後段のデータ処理と並列に、次の第一のデータ処理および次の第二のデータ処理が実行される。これにより、データ処理回路100の各回路の処理をパイプライン化し、データ処理回路100の動作を高速化することができる。   As described above, the next first data processing and the next second data processing are executed in parallel with the subsequent data processing. Thereby, the processing of each circuit of the data processing circuit 100 can be pipelined, and the operation of the data processing circuit 100 can be speeded up.

各実施の形態は、データ処理装置200の形態の一例である。
つまり、データ処理装置200は、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、データ処理装置200は、各実施の形態で説明していない構成要素を備えても構わない。さらに、データ処理装置200は、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
Each embodiment is an example of a form of the data processing device 200.
That is, the data processing apparatus 200 may not include some of the components described in the embodiments. Further, the data processing device 200 may include components that are not described in each embodiment. Furthermore, the data processing apparatus 200 may be a combination of some or all of the constituent elements of each embodiment.

各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。   The processing procedures described using the flowcharts and the like in each embodiment are an example of the processing procedures of the method and the program according to each embodiment. The method and program according to each embodiment may be realized by a processing procedure partially different from the processing procedure described in each embodiment.

100 データ処理回路、110 CPUコア、111 バリア同期レジスタ、120 同期回路、121 論理積回路、122 論理和回路、123,124 選択回路、130 ハードウェアブロック、131 バリア同期レジスタ、200 データ処理装置、210 データ処理制御回路、211 データ処理制御メモリ、220 同期制御回路、221 同期制御メモリ、230 再構成回路、231 再構成メモリ。   100 data processing circuit, 110 CPU core, 111 barrier synchronization register, 120 synchronization circuit, 121 logical product circuit, 122 logical sum circuit, 123, 124 selection circuit, 130 hardware block, 131 barrier synchronization register, 200 data processing device, 210 Data processing control circuit, 211 Data processing control memory, 220 Synchronization control circuit, 221 Synchronization control memory, 230 Reconfiguration circuit, 231 Reconfiguration memory

Claims (7)

前段のデータ処理が実行される前に初期値が書き込まれる前段レジスタを備え、前記前段のデータ処理を実行し、前記前段のデータ処理が完了した後に前記前段レジスタに完了値を上書きする複数の前段回路と、
前記初期値と前記完了値とのいずれかの値が書き込まれる後段レジスタを備え、前記後段レジスタに前記完了値が書き込まれた後に後段のデータ処理を実行する後段回路と、
前記複数の前段回路のそれぞれの前記前段レジスタに書き込まれた値に基づいて前記初期値と前記完了値とのいずれかの値を前記後段回路の前記後段レジスタに書き込む同期回路と
を備えることを特徴とするデータ処理装置。
A plurality of front-stage registers, each of which includes a front-stage register to which an initial value is written before the data processing of the front-stage is executed, executes the data processing of the front-stage, and overwrites a completion value in the front-stage register after the data processing of the front stage is completed; Circuit,
A post-stage register in which any one of the initial value and the completion value is written; a post-stage circuit that executes data processing in the post-stage after the completion value is written in the post-stage register;
A synchronization circuit that writes one of the initial value and the completion value to the subsequent stage register of the subsequent stage circuit based on a value written to the previous stage register of each of the plurality of previous stage circuits. A data processing device.
前記同期回路は、前記複数の前段回路のそれぞれの前記前段レジスタに書き込まれた値を用いて論理演算を行うことによって、前記初期値と前記完了値とのいずれかの値を前記後段回路の前記後段レジスタに書き込む
ことを特徴とする請求項1に記載のデータ処理装置。
The synchronization circuit performs a logical operation using a value written in each of the previous-stage registers of the plurality of previous-stage circuits, thereby obtaining any one of the initial value and the completion value in the subsequent-stage circuit. The data processing apparatus according to claim 1, wherein the data processing apparatus writes to a subsequent stage register.
前記同期回路は、前記複数の前段回路のそれぞれの前記前段レジスタに書き込まれた値の論理積を前記後段レジスタに書き込む
ことを特徴とする請求項1に記載のデータ処理装置。
2. The data processing apparatus according to claim 1, wherein the synchronization circuit writes a logical product of values written in the first-stage registers of the plurality of first-stage circuits to the second-stage registers. 3.
前記同期回路は、
前記複数の前段回路のそれぞれの前記前段レジスタに書き込まれた値を用いて論理演算を行う複数の論理回路と、
前記複数の論理回路によって得られるいずれかの値を前記後段回路の前記後段レジスタに書き込む選択回路と
を備えることを特徴とする請求項1に記載のデータ処理装置。
The synchronization circuit includes:
A plurality of logic circuits that perform a logical operation using a value written to each of the preceding registers of the plurality of preceding circuits;
The data processing apparatus according to claim 1, further comprising: a selection circuit that writes any value obtained by the plurality of logic circuits to the subsequent stage register of the subsequent stage circuit.
前記データ処理装置は、同期制御回路を備え、
前記同期制御回路は、前記複数の論理回路のいずれかの論理回路を前記選択回路に指定し、
前記選択回路は、前記同期制御回路によって指定された前記論理回路によって得られた値を前記後段回路の前記後段レジスタに書き込む
ことを特徴とする請求項4に記載のデータ処理装置。
The data processing device includes a synchronization control circuit,
The synchronization control circuit designates one of the plurality of logic circuits as the selection circuit,
The data processing apparatus according to claim 4, wherein the selection circuit writes a value obtained by the logic circuit specified by the synchronization control circuit into the subsequent stage register of the subsequent stage circuit.
前記同期回路の回路構成を表す構成データを記憶する再構成メモリと、
前記再構成メモリに記憶された前記構成データに基づいて前記同期回路を再構成する再構成回路と
を備えることを特徴とする請求項1に記載のデータ処理装置。
A reconfiguration memory that stores configuration data representing the circuit configuration of the synchronization circuit;
The data processing apparatus according to claim 1, further comprising: a reconfiguration circuit configured to reconfigure the synchronization circuit based on the configuration data stored in the reconfiguration memory.
前記再構成メモリは、第一の回路構成を表す第一の構成データと、第二の回路構成を表す第二の構成データとを記憶し、
前記再構成回路は、前記第一の構成データに基づいて前記同期回路を前記第一の回路構成に再構成し、前記第一の回路構成に再構成された前記同期回路によって前記後段レジスタに前記完了値が書き込まれた後に前記第二の構成データに基づいて前記同期回路を前記第二の回路構成に再構成する
ことを特徴とする請求項6に記載のデータ処理装置。
The reconfiguration memory stores first configuration data representing a first circuit configuration and second configuration data representing a second circuit configuration;
The reconfiguration circuit reconfigures the synchronization circuit to the first circuit configuration based on the first configuration data, and the synchronization circuit reconfigured to the first circuit configuration stores the synchronization circuit in the subsequent stage register. The data processing apparatus according to claim 6, wherein after the completion value is written, the synchronization circuit is reconfigured to the second circuit configuration based on the second configuration data.
JP2014063763A 2014-03-26 2014-03-26 Data processing device Pending JP2015185129A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014063763A JP2015185129A (en) 2014-03-26 2014-03-26 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014063763A JP2015185129A (en) 2014-03-26 2014-03-26 Data processing device

Publications (1)

Publication Number Publication Date
JP2015185129A true JP2015185129A (en) 2015-10-22

Family

ID=54351532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014063763A Pending JP2015185129A (en) 2014-03-26 2014-03-26 Data processing device

Country Status (1)

Country Link
JP (1) JP2015185129A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7546494B2 (en) 2021-01-22 2024-09-06 三菱電機株式会社 Serial communication circuit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342174A (en) * 1992-06-09 1993-12-24 Fujitsu Ltd Hierarchical synchronization controller
JPH10111857A (en) * 1996-10-07 1998-04-28 Nec Corp Multi-processor
WO2009093680A1 (en) * 2008-01-25 2009-07-30 Waseda University Multiprocessor system and multiprocessor system synchronization method
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus
JP2012008715A (en) * 2010-06-23 2012-01-12 Fuji Xerox Co Ltd Data processing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342174A (en) * 1992-06-09 1993-12-24 Fujitsu Ltd Hierarchical synchronization controller
JPH10111857A (en) * 1996-10-07 1998-04-28 Nec Corp Multi-processor
WO2009093680A1 (en) * 2008-01-25 2009-07-30 Waseda University Multiprocessor system and multiprocessor system synchronization method
JP2011203920A (en) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd Data processing apparatus
JP2012008715A (en) * 2010-06-23 2012-01-12 Fuji Xerox Co Ltd Data processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7546494B2 (en) 2021-01-22 2024-09-06 三菱電機株式会社 Serial communication circuit

Similar Documents

Publication Publication Date Title
TWI515669B (en) System and method for data analysis in state machine
TWI486810B (en) Counter operation in a state machine lattice
CN104487957B (en) Method and device for programmed state machine engine
US9195466B2 (en) Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP5994679B2 (en) Processing device and control method of processing device
JP2018537871A (en) System and method for FPGA testing and configuration
JP2006518056A (en) Programmable circuit, related computing machine, and method
US9705505B2 (en) Reconfigurable semiconductor device
US20200042321A1 (en) Low power back-to-back wake up and issue for paired issue queue in a microprocessor
US8994424B2 (en) Distributing multiplexing logic to remove multiplexor latency on the output path for variable clock cycle, delayed signals
JP5985900B2 (en) Behavioral synthesis device, data processing system including behavioral synthesis device, and behavioral synthesis program
JP2006018413A (en) Processor and pipeline reconfiguration control method
US8949575B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
JP6036835B2 (en) Time-series data processing device, time-series data processing method, and time-series data processing program
US20190287639A1 (en) List insertion in test segments with non-naturally aligned data boundaries
JP6435826B2 (en) Data processing apparatus and data processing method
US10296699B1 (en) Implementing circuit designs adapted for partial reconfiguration
JP2015185129A (en) Data processing device
US9916159B2 (en) Programmable linear feedback shift register
US10635444B2 (en) Shared compare lanes for dependency wake up in a pair-based issue queue
TWI766891B (en) Processor of semiconductor device and method of operating same
US8443030B1 (en) Processing of floating point multiply-accumulate instructions using multiple operand pathways
JP2006236106A (en) Data processor and data processing method
JP2020153804A (en) Testing device, testing method, and computer program
JP6473023B2 (en) Performance evaluation module and semiconductor integrated circuit incorporating the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180206