JP2015185129A - Data processing device - Google Patents
Data processing device Download PDFInfo
- 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
Links
- 230000004888 barrier function Effects 0.000 abstract description 83
- 230000001360 synchronised effect Effects 0.000 abstract description 10
- 238000000034 method Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 12
- 238000004886 process control Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Abstract
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,
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は、並列処理における同期方式に関する技術を開示している。しかし、いずれもソフトウェア処理によって同期処理の完了判定を行うものであり、同期処理に時間を要してしまう。
本発明は、複数のデータ処理の完了に合わせて後段のデータ処理を実行できるようにすることを目的とする。 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.
複数のデータ処理の完了に合わせて後段のデータ処理を実行する形態について説明する。
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
The configuration of the
データ処理装置200は、データ処理を実行するコンピュータである。
データ処理装置200は、データ処理回路100を備える。
The
The
データ処理回路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
The
However, the
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
The
When starting the first data processing (an example before the start), the
When the first data processing is completed (an example after completion), the
第二のCPUコア110Bは第二のデータ処理を実行する回路である。
第二のCPUコア110Bは第二のバリア同期レジスタ111B(前段レジスタの一例)を備える。
第二のCPUコア110Bは、第一のCPUコア110Aと同様に、第二のデータ処理を開始する前に、第二のバリア同期レジスタ111Bにビット値0を書き込む。そして、第二のCPUコア110Bは、第二のデータ処理が完了したときに、第二のバリア同期レジスタ111Bにビット値1を書き込む。
The
The
Like the
同期回路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
The
The
That is, when the values of both the first
In addition, when the value of at least one of the first
ハードウェアブロック130は、後段のデータ処理を実行する回路である。
ハードウェアブロック130は後段のバリア同期レジスタ131(後段レジスタの一例)を備える。ハードウェアブロック130はバリア同期レジスタ131の状態を監視する。
ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたとき(書き込まれた後の一例)に、後段のデータ処理を実行する。
The
The
The
バリア同期レジスタ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
図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 of the
S101(図2参照)において、第一のCPUコア110Aは、第一のバリア同期レジスタ111Aにビット値0を書き込む。
また、第二のCPUコア110Bは、第二のバリア同期レジスタ111Bにビット値0を書き込む。
3つ以上のCPUコア110がある場合、各CPUコア110がバリア同期レジスタ111にビット値0を書き込む。
In S101 (see FIG. 2), the
The
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
Further, the
Further, the
S111において、第一のCPUコア110Aは第一のデータ処理を実行する。例えば、CPUコア110Aは第一のデータ処理が記述された第一のプログラムを実行する。例えば、第一のプログラムを含めて各プログラムはデータ処理装置200のメモリ(図示省略)に記憶される。
S111の後、処理はS112に進む。
In S111, the
After S111, the process proceeds to S112.
S112において、第一のCPUコア110Aは第一のバリア同期レジスタ111Aにビット値1を書き込む。つまり、第一のCPUコア110Aは第一のデータ処理を完了したときに、第一のバリア同期レジスタ111Aにビット値1を書き込む。
S112の後、第一のCPUコア110Aの処理は終了する。
In S112, the
After S112, the processing of the
S121およびS122(図2参照)において、第二のCPUコア110Bは第一のCPUコア110Aと同様に動作する。
つまり、第二のCPUコア110Bは第二のデータ処理を完了したときに、第二のバリア同期レジスタ111Bにビット値1を書き込む。
S122の後、第二のCPUコア110Bの処理は終了する。
In S121 and S122 (see FIG. 2), the
That is, the
After S122, the processing of the
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
S210(図3参照)において、同期回路120は、第一のデータ処理と第二のデータ処理との同期の完了を判定する。
第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの両方の値がビット値1である場合、同期が完了している。つまり、第一のデータ処理と第二のデータ処理との両方が完了したときに、同期が完了する。
第一のバリア同期レジスタ111Aと第二のバリア同期レジスタ111Bとの少なくとも一方の値がビット値0である場合、同期が完了していない。つまり、第一のデータ処理と第二のデータ処理との少なくとも一方が完了していない場合、同期が完了していない。
第一のデータ処理と第二のデータ処理との同期が完了した場合(YES)、処理はS211に進む。
第一のデータ処理と第二のデータ処理との同期が完了していない場合(NO)、処理はS212に進む。
In S210 (see FIG. 3), the
When both the first
When at least one of the first
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
S211において、同期回路120は、後段のバリア同期レジスタ131にビット値1を書き込む。
S211の後、処理はS210に戻る。
In S211, the
After S211, the process returns to S210.
S212において、同期回路120は、後段のバリア同期レジスタ131にビット値0を書き込む。
S212の後、処理はS210に戻る。
In S212, the
After S212, the process returns to S210.
S210からS212は、同期回路120が論理積回路121を備えることによって、実現できる(図1参照)。
S210 to S212 can be realized by the
S310(図4参照)において、ハードウェアブロック130は、後段のバリア同期レジスタ131に書き込まれている値がビット値1であるか判定する。
後段のバリア同期レジスタ131に書き込まれている値がビット値1である場合(YES)、処理はS320に進む。
後段のバリア同期レジスタ131に書き込まれている値がビット値0である場合(NO)、処理はS310に戻る。
In S310 (see FIG. 4), the
When the value written in the
When the value written in the
S320において、ハードウェアブロック130は後段のデータ処理を実行する。
つまり、ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたときに、後段のデータ処理を実行する。したがって、ハードウェアブロック130は、第一のデータ処理の完了と第二のデータ処理の完了との同期がとられたときに、後段のデータ処理を実行する。
In S320, the
That is, the
実施の形態1において、同期回路120は論理積回路121以外の論理回路を備えても構わない。
例えば、同期回路120は論理積回路121の代わりに論理和回路を備えても構わない。同期回路120は、論理和回路を備えることにより、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込むことができる。この場合、ハードウェアブロック130は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のデータ処理を実行する。
In the first embodiment, the
For example, the
実施の形態2.
同期回路120が複数の論理回路を備える形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
A mode in which the
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
The configuration of the
データ処理装置200は、データ処理回路100と、データ処理制御回路210と、同期制御回路220とを備える。
データ処理回路100の同期回路120は、論理積回路121と、論理和回路122と、選択回路123とを備える。
The
The
データ処理制御回路210は、同期制御の実行を同期制御回路220に指示する。
データ処理制御回路210は、第一のデータ処理の実行を第一のCPUコア110Aに指示し、第二のデータ処理の実行を第二のCPUコア110Bに指示する。
The data
The data
同期制御回路220は、論理積回路121と論理和回路122とのいずれかを選択回路123に指定する。
例えば、同期制御回路220は、スイッチまたは同期制御データに従って、選択回路123に同期制御信号を出力する。同期制御信号は、論理積回路121と論理和回路122とのいずれかを指定する信号である。この場合、データ処理装置200は、論理積回路121と論理和回路122とのいずれかを指定するスイッチ、または、同期制御データが記憶されるメモリを備える。同期制御データは論理積回路121と論理和回路122とのいずれかの回路の識別子を含む。
The
For example, the
論理積回路121は、第一のバリア同期レジスタ111Aの値と第二のバリア同期レジスタ111Bの値との論理積を表す値を、選択回路123に出力する。つまり、論理積回路121は、第一のデータ処理と第二のデータ処理との両方が完了したときに、ビット値1を選択回路123に出力する。
論理和回路122は、第一のバリア同期レジスタ111Aの値と第二のバリア同期レジスタ111Bの値との論理和を表す値を、選択回路123に出力する。つまり、論理和回路122は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、ビット値1を選択回路123に出力する。
The
The OR
選択回路123は、論理積回路121と論理和回路122とのうちの同期制御回路220に指定された回路から出力された値を、後段のバリア同期レジスタ131に書き込む。
つまり、論理積回路121が指定された場合、選択回路123は、第一のデータ処理と第二のデータ処理との両方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込む。
また、論理和回路122が指定された場合、選択回路123は、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、後段のバリア同期レジスタ131にビット値1を書き込む。
The
That is, when the
When the
ハードウェアブロック130は、後段のバリア同期レジスタ131にビット値1が書き込まれたときに、後段のデータ処理を実行する。
The
図6は、実施の形態2におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態2におけるデータ処理回路100のデータ処理について、図6、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図6、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 6 is a flowchart showing data processing of the
Data processing of the
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
Then, the
When there are three or more CPU cores 110, the data
After S101, the process proceeds to S102.
S102において、データ処理制御回路210は、同期制御の実行を指示する同期制御実行信号を同期制御回路220に出力する。
そして、同期制御回路220は、論理積回路121と論理和回路122とのいずれかを指定する同期制御信号を同期回路120の選択回路123に出力する。
S102の後、処理はS103に進む。
In S102, the data
Then, the
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
Further, the data
The data
When there are three or more CPU cores 110, the data
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
但し、S210(図3参照)において、同期回路120は以下のように同期の完了を判定する。
同期回路120は、同期制御回路220による論理回路の指定に基づいて、第一のデータ処理と第二のデータ処理との同期の完了を判定する。
論理積回路121が指定された場合、論理積回路121がビット値1を出力したときに、同期が完了する。つまり、第一のデータ処理と第二のデータ処理との両方が完了したときに、同期が完了する。
論理和回路122が指定された場合、論理和回路122がビット値1を出力したときに、同期が完了する。つまり、第一のデータ処理と第二のデータ処理との少なくとも一方が完了したときに、同期が完了する。
3つ以上のCPUコア110がある場合、同期回路120は、各CPUコア110が実行した各データ処理の同期の完了を判定する。
However, in S210 (see FIG. 3), the
The
When the
When the
When there are three or more CPU cores 110, the
S210からS212は、同期回路120が論理積回路121と論理和回路122と選択回路123とを備えることによって、実現できる(図5参照)。
S210 to S212 can be realized by the
実施の形態2において、同期回路120は3つ以上の論理回路を備えても構わない。この場合、同期制御回路220は3つ以上の論理回路から一つの論理回路を指定する。
また、同期回路120が備える論理回路は論理積回路121および論理和回路122以外の論理回路であっても構わない。
In the second embodiment, the
The logic circuit included in the
実施の形態3.
同期回路120を再構成する形態について説明する。
以下、実施の形態1および実施の形態2と異なる事項について主に説明する。説明を省略する事項については実施の形態1および実施の形態2と同様である。
Embodiment 3 FIG.
An embodiment in which the
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
The configuration of
データ処理装置200は、実施の形態2(図5参照)で説明した構成に加えて、再構成回路230と、再構成メモリ231と、同期制御メモリ221とを備える。
The
再構成回路230は、回路構成を表す構成データに基づいて、同期回路120の回路構成を変更する。つまり、再構成回路230は同期回路120の回路構成を再構成する。
同期回路120は再構成可能な回路である。例えば、同期回路120はFPGAのようなプログラマブルロジックデバイス(PLD)である。FPGAはfield−programmable gate arrayの略称である。
再構成メモリ231は構成データを記憶するメモリである。
The
The
The
同期制御メモリ221は同期制御データを記憶するメモリである。同期制御データは、同期回路120に備わる選択回路と、選択回路に指定する論理回路と、を指定するデータである。
同期制御回路220は、同期制御データが指定する選択回路に、同期制御データが指定する論理回路を指定する。例えば、同期制御回路220は、選択回路123に論理積回路121(または論理和回路122)を指定する。
The
The
図8は、実施の形態3におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態3におけるデータ処理回路100のデータ処理について、図8、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図8、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 8 is a flowchart showing data processing of the
Data processing of the
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
Then, the
When there are three or more CPU cores 110, the data
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
The
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
Then, the
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
When there are three or more CPU cores 110, the data
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
However, in S210 (see FIG. 3), the synchronization completion determination method is determined by the reconfigured
図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
For example, when the
The
The
Each
Then, the
実施の形態3により、CPUコア110の個数などに応じて同期回路120を再構成することができる。
According to the third embodiment, the
実施の形態4.
同期回路120の再構成を複数回行う形態について説明する。
以下、実施の形態1から3と異なる事項について主に説明する。説明を省略する事項については実施の形態1から3と同様である。
Embodiment 4 FIG.
An embodiment in which the reconfiguration of the
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
The configuration of
データ処理装置200は、実施の形態3(図7参照)で説明した構成に加えて、データ処理制御メモリ211を備える。
The
データ処理制御メモリ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
図11は、実施の形態4におけるデータ処理回路100のデータ処理を示すフローチャートである。
実施の形態4におけるデータ処理回路100のデータ処理について、図11、図3および図4に基づいて説明する。但し、データ処理回路100のデータ処理は図11、図3および図4に示す処理と異なる処理であっても構わない。
FIG. 11 is a flowchart showing data processing of the
Data processing of the
S101において、データ処理制御回路210は、各CPUコア110に初期化信号を出力する。
そして、各CPUコア110はバリア同期レジスタ111にビット値0を書き込む。
S101の後、処理はS102−1に進む。
In S <b> 101, the data
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
The
Then, the
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
The
Then, the
After S102-2, the process proceeds to S103.
S103において、データ処理制御回路210は、各処理制御データの順番に従って、未選択の処理制御データをデータ処理制御メモリ211から選択する。
そして、データ処理制御回路210は、選択した処理制御データに基づいて、各CPUコア110にデータ処理実行信号を出力する。
S103の後、処理はS111およびS121に進む。
In S103, the data
Then, the 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
That is, the data
After S130, the process proceeds to S131.
S131において、データ処理制御回路210は、S103で選択していない未選択の処理制御データがあるか判定する。
未選択の処理制御データがある場合(YES)、処理はS101に戻る。
未選択の処理制御データがない場合(NO)、データ処理制御回路210の処理は終了する。
In S131, the data
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
同期回路120の処理およびハードウェアブロック130の処理は実施の形態1(図3、図4参照)と同様である。
但し、S210(図3参照)において、同期完了の判定方法は、再構成後の同期回路120と、同期制御回路220による論理回路の指定とによって決まる。
The processing of the
However, in S210 (see FIG. 3), the synchronization completion determination method is determined by the reconfigured
図12は、実施の形態4におけるデータ処理回路100の動作例を示す図である。
実施の形態4におけるデータ処理回路100の動作例について、図12に基づいて説明する。
FIG. 12 is a diagram illustrating an operation example of the
An operation example of the
再構成回路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
After reconfiguration of the
The
After the
The
After the
以上のように、後段のデータ処理と並列に、次の第一のデータ処理および次の第二のデータ処理が実行される。これにより、データ処理回路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
各実施の形態は、データ処理装置200の形態の一例である。
つまり、データ処理装置200は、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、データ処理装置200は、各実施の形態で説明していない構成要素を備えても構わない。さらに、データ処理装置200は、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
Each embodiment is an example of a form of the
That is, the
各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7546494B2 (en) | 2021-01-22 | 2024-09-06 | 三菱電機株式会社 | Serial communication circuit |
Citations (5)
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 |
-
2014
- 2014-03-26 JP JP2014063763A patent/JP2015185129A/en active Pending
Patent Citations (5)
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)
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 |