JP5601817B2 - Parallel processing unit - Google Patents
Parallel processing unit Download PDFInfo
- Publication number
- JP5601817B2 JP5601817B2 JP2009247807A JP2009247807A JP5601817B2 JP 5601817 B2 JP5601817 B2 JP 5601817B2 JP 2009247807 A JP2009247807 A JP 2009247807A JP 2009247807 A JP2009247807 A JP 2009247807A JP 5601817 B2 JP5601817 B2 JP 5601817B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- data
- arithmetic
- output
- parallel
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Description
本発明は、相互に接続された複数の演算要素が単一の命令により並列処理を行うSIMD(Single Instruction Multiple Data-path)型の並列演算処理装置に関するものである。 The present invention relates to a SIMD (Single Instruction Multiple Data-path) type parallel arithmetic processing device in which a plurality of arithmetic elements connected to each other perform parallel processing by a single instruction.
今日、種々の分野でSIMD型のプロセッサが使用されている。SIMD型のプロセッサとは、1回の命令で複数データに対する処理を同時に行うプロセッサである。従来、このようなSIMD型のプロセッサとして、入力シリアルデータをシリアルパラレル変換する第1のシフトレジスタと、この第1のシフトレジスタから出力される並列データを並列に同一プログラムにより処理する複数個のプロセッサと、これらプロセッサから出力されるパラレルデータをパラレルシリアル変換して出力シリアルデータとして出力する第2のシフトレジスタとを備えたものがあった(例えば、特許文献1参照)。 Today, SIMD type processors are used in various fields. The SIMD type processor is a processor that simultaneously processes a plurality of data with a single instruction. Conventionally, as such a SIMD type processor, a first shift register for serial-to-parallel conversion of input serial data, and a plurality of processors for processing parallel data output from the first shift register in parallel by the same program And a second shift register that converts the parallel data output from these processors into parallel serial data and outputs it as output serial data (see, for example, Patent Document 1).
しかしながら、従来の並列演算処理装置では、複数個の演算要素を備えていても、ある演算要素が所望の距離離れた演算要素が有するデータを参照するための相互接続機構は、一斉かつ同様に動作する。このため、演算要素のM(M≧2)個並んだSIMD型プロセッサで、N個(N<M)のデータ数を持つO列(O≧2)のデータ列に対して同様の演算処理を実施する際、データ列毎に独立して演算を行いたい場合(データ列間で相互参照を行いたくない場合)にはO列のデータを1列ずつ逐次的に処理する必要があった。この場合、M個存在する演算要素のうちN個しか並列に使用できず、SIMD型プロセッサの持つ演算処理能力を全て発揮できず、処理時間の面でロスを生じるという課題があった。 However, in the conventional parallel processing device, even if a plurality of computing elements are provided, the interconnection mechanism for referring to the data held by the computing elements at a desired distance from a certain computing element operates simultaneously and similarly. To do. For this reason, a SIMD processor in which M (M ≧ 2) operation elements are arranged in a SIMD type processor performs similar arithmetic processing on an O column (O ≧ 2) data string having N (N <M) data numbers. In the implementation, when it is desired to perform an operation independently for each data string (when it is not desired to perform cross-reference between data strings), it is necessary to sequentially process the data in the O column one by one. In this case, only N of the M computing elements can be used in parallel, so that all of the arithmetic processing capabilities of the SIMD processor cannot be exhibited, and there is a problem that a loss occurs in terms of processing time.
また、従来の並列演算処理装置では、逐次入力とバス入力への演算処理が一つのSIMD型プロセッサ内で要求される場合、ラスタ入力インタフェースを持つSIMD型プロセッサでブロック入力を処理する際にはブロック−ラスタ変換処理(パラレル−シリアル変換処理)が、また、ブロック入力インタフェースを持つSIMD型プロセッサでラスタ入力データを処理する際にはラスタ−ブロック変換処理(シリアル−パラレル変換処理)が、それぞれ必要とされ、処理時間の面でロスを生じるという課題があった。 Further, in the conventional parallel processing device, when the arithmetic processing to the sequential input and the bus input is required in one SIMD type processor, the block input is processed when the block input is processed by the SIMD type processor having the raster input interface. -Raster conversion processing (parallel-serial conversion processing) and raster-block conversion processing (serial-parallel conversion processing) are required when processing raster input data with a SIMD processor having a block input interface. However, there is a problem that a loss occurs in terms of processing time.
この発明は上記のような課題を解決するためになされたもので、処理の高速化を図ることができる並列演算処理装置を得ることを目的とする。 The present invention has been made to solve the above-described problems, and an object of the present invention is to obtain a parallel arithmetic processing device capable of increasing the processing speed.
この発明に係る並列演算処理装置は、一次元に配置され相互に接続された複数の演算要素を有する演算器群を複数備え、各演算器群間を相互接続機構によって一次元トーラス又はリング形状に接続し、各演算要素同士がSIMD型として動作する並列演算処理装置において、コントローラを備え、コントローラが相互接続機構を制御することによって、演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるようにしたものである。 The parallel arithmetic processing device according to the present invention includes a plurality of arithmetic unit groups having a plurality of arithmetic elements arranged one-dimensionally and connected to each other, and the arithmetic unit groups are formed into a one-dimensional torus or ring shape by an interconnection mechanism. In a parallel arithmetic processing unit that is connected and operates as a SIMD type, each arithmetic element is provided with a controller, and the controller controls the interconnection mechanism to output any other arithmetic element locally in the arithmetic unit group. And any one of the outputs of computing elements within a predetermined distance in consideration of wraparound, assuming that all computing units are a one-dimensional torus or a series of rings. The mode to be switched is switched .
この発明の並列演算処理装置は、コントローラが相互接続機構を制御することによって、演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるよう構成したので、処理の高速化を図ることができる。 In the parallel arithmetic processing device of the present invention, the controller controls the interconnection mechanism, so that the output of any one other arithmetic element is input locally within the arithmetic unit group, and all the arithmetic unit groups are primary. Considering the original torus or a series of rings, considering the wraparound, it is configured to switch to the mode that inputs any one of the outputs of the calculation elements within a predetermined distance, so the processing speed is increased. Can be achieved.
実施の形態1.
図1は、この発明の実施の形態1による並列演算処理装置を示す構成図である。
図1に示す並列演算処理装置はSIMD型プロセッサであり、演算要素1、入力インタフェース2、出力インタフェース3、コントローラ4、相互接続機構5、接続選択機構6を備えている。演算要素1は複数個が一次元に配置され、演算と演算途中結果の記録を実施するものであり、ALU(Arithmetic Logic Unit)11、内部メモリ12a,12bを備えている。ALU11は、コントローラ4からの演算命令によって所望の演算を実施する演算部である。内部メモリ12a,12bは、ALU11から出力される演算結果を記録し、ALU11および出力インタフェース3に対して転送するためのデータ記録手段である。
FIG. 1 is a block diagram showing a parallel arithmetic processing apparatus according to
The parallel arithmetic processing apparatus shown in FIG. 1 is a SIMD type processor, and includes an
入力インタフェース2は、外部からラスタ形式またはブロック形式で入力される例えば画像データといったデータを受信し、並列演算処理装置内部に転送するためのインタフェースであり、入力バッファ21とセレクタ22とを有している。入力バッファ21は、演算要素1に対応して同数設けられ、外部から受信した入力データを記録し、それぞれの演算要素1に対して並列に転送するためのバッファである。セレクタ22は、入力インタフェース2の入力データ形式を選択するための入力形式選択手段である。
The
図2は、一般的な画像データの入力形式であるラスタ入力形式とブロック(バス)入力形式を示す説明図であり、(a)はラスタ入力形式、(b)はブロック(バス)入力形式を表す。図中の丸印が画素データを示している。尚、ブロック入力形式については、一例として4×4データのバス入力を示している。但し、バス入力のバス幅については一例としてバス幅=4データとしている。また、図中の数字はそれぞれの形式における一般的な入力順序を表している。 FIG. 2 is an explanatory diagram showing a raster input format and a block (bus) input format, which are general image data input formats, where (a) is a raster input format and (b) is a block (bus) input format. Represent. Circles in the figure indicate pixel data. As for the block input format, 4 × 4 data bus input is shown as an example. However, the bus width of the bus input is, for example, bus width = 4 data. The numbers in the figure represent general input orders in the respective formats.
図1に戻り、出力インタフェース3は、演算要素1からの出力データを受信し、外部にラスタ形式またはブロック形式でデータを転送するためのインタフェースであり、内部に、出力バッファ31とセレクタ32とを有している。出力バッファ31は、それぞれの演算要素1に対応して同数設けられ、各演算要素1から出力される演算結果データを記録し、外部に転送するためのバッファである。セレクタ32は、出力インタフェース3の出力データ形式を選択するための出力形式選択手段である。
Returning to FIG. 1, the
コントローラ4は、演算要素1、入力インタフェース2、出力インタフェース3、相互接続機構5および接続選択機構6に対して単一の演算命令を転送し、演算処理を制御するための制御部である。相互接続機構5は、各演算要素1を相互に接続し、コントローラ4の演算命令によって任意の距離の演算要素1からのデータを転送する参照データ距離の選択手段である。接続選択機構6は、相互接続機構5の間に一定の間隔で配置され、相互接続機構5の接続構成を選択するための参照データ群の選択手段である。
The
図3に入力インタフェース2の詳細を示す。
各セレクタ22は、コントローラ4からの制御信号により入力形式を選択するよう構成されている。各セレクタ22は、ラスタ入力データとバス入力データとを入力し、その選択出力を入力バッファ21に出力する。入力バッファ21は、コントローラ4の制御信号に基づいてセレクタ22からのデータを受信し、それぞれの演算要素1に対して出力するよう構成されている。このような構成により、入力インタフェース2は、ラスタ入力インタフェースの機能とバス入力インタフェースの機能の二つの機能を持つ。尚、ここでは、一例としてバス入力を4データのバス幅としたが、バス幅は4データに限らない。
FIG. 3 shows details of the
Each
図4は、入力インタフェース2がラスタ入力インタフェースとして動作する際の説明図であり、そのデータフローを破線で示している。
ラスタ入力によりデータが入力される際は、左端のセレクタ22では外部からのラスタ入力データが選択されるように、その他のセレクタ22では左隣の入力バッファ21のデータが選択されるように、即ち、全てのセレクタ22で左側の入力信号が選択されるように、コントローラ4からのセレクタ制御信号を与える。
更に、コントローラ4からの入力バッファ制御信号を、全ての入力バッファ21が受信を行うように与える。これによって、左端の入力バッファ21が外部からのラスタ入力データを、その他の入力バッファ21が左隣の入力バッファ21のデータをそれぞれ受信し、ラスタ入力インタフェースと同等の動作が可能となる。
FIG. 4 is an explanatory diagram when the
When data is input by raster input, the
Further, an input buffer control signal from the
図5は、入力インタフェース2がバス入力インタフェースとして動作する際の説明図であり、そのデータフローを破線で示している。
バス入力によりデータが入力される際は、セレクタ22上部右側の入力信号が選択されるように、コントローラ4からのセレクタ制御信号を与える。
更に、コントローラ4からの入力バッファ制御信号については、書き込みたい部分のみ受信を行うように与える。これによって、バス入力を任意の連続した入力バッファ21がバス入力データを受信し、バス入力インタフェースと同等の動作が可能となる。
FIG. 5 is an explanatory diagram when the
When data is input by bus input, a selector control signal from the
Further, the input buffer control signal from the
図6に出力インタフェース3の詳細を示す。
各セレクタ32は、コントローラ4からの制御信号(上部セレクタ制御信号)により、演算要素1からのデータと、ラスタ出力時のシフト用データを選択するよう構成されている。即ち、ラスタ出力時のシフト用データの選択として、図面左端以外のセレクタ32は、それぞれ一つ左側の出力バッファ31の出力を入力するようになっている。また、セレクタ33は、コントローラ4からの制御信号(下部セレクタ制御信号)によって任意の位置の1データを選択するためのセレクタである。更に、出力バッファ31は、コントローラ4の制御信号によって各セレクタ32からのデータを受信するよう構成されている。
このような構成により、出力インタフェース3は、ラスタ出力インタフェースの機能とバス出力インタフェースの機能の二つの機能を持つ。尚、ここでは一例としてバス出力を4データのバス幅としたが、バス幅は4データに限らない。
FIG. 6 shows details of the
Each
With such a configuration, the
また、演算要素1からデータを取り込む際の動作は、ラスタ出力、バス出力で共通である。コントローラ4からの上部セレクタ制御信号によりセレクタ32右側の入力信号を選択し、同時にコントローラ4からの出力バッファ制御信号を与える。これによって、演算要素1から転送されるデータを並列に出力バッファ31で受信する。
In addition, the operation when fetching data from the
図7は、出力インタフェース3がラスタ出力インタフェースとして動作する際の説明図であり、そのデータフローを破線で示している。
ラスタ出力によりデータを出力する際はコントローラ4からの上部セレクタ制御信号によりセレクタ32左側の入力信号を選択し、同時にコントローラ4からの出力バッファ制御信号を与える。これによって、全ての出力バッファ31が一斉に隣の出力バッファ31(図では右隣)へデータを転送し、かつ隣の出力バッファ31(図では左隣)からデータを受信する。ここで、右端の出力バッファ31が外部への転送を実施する。
このようにして、出力インタフェース3はラスタ出力インタフェースとしての動作が可能である。
FIG. 7 is an explanatory diagram when the
When data is output by raster output, an input signal on the left side of the
In this way, the
図8は、出力インタフェースがバス出力インタフェースとして動作する際の説明図であり、そのデータフローを破線で示している。
バス出力によりデータを出力する際は、コントローラ4からの下部セレクタ制御信号によって4つのセレクタ33を制御し、出力したい位置の連続した4つの出力バッファを選択する。このようにして、出力インタフェース3はバス出力インタフェースとしての動作が可能である。
FIG. 8 is an explanatory diagram when the output interface operates as a bus output interface, and its data flow is indicated by a broken line.
When outputting data by bus output, the four
上述の入力インタフェース2および出力インタフェース3により、ラスタ入力およびバス入力に対して単一の構成で対応可能となる。これにより、従来に比べて、ラスタ入力およびバス入力が単一のSIMD型プロセッサで要求される場合に、シリアル−パラレル変換処理もしくはパラレル−シリアル変換処理に必要とされる演算処理を削減することができるという効果が得られる。
The
図9に相互接続機構5の詳細を示す。
図中のセレクタ51は、コントローラ4からの制御信号に従い、任意の距離の演算要素1から転送されたデータを選択するための選択手段である。但し、ここでは相互接続機構5のうち、左側の演算要素1のデータを参照するための部分のみを示している。右側の演算要素1のデータを参照するための部分については、左側と同様(左右対称)の構成および動作となるため、ここでは説明を省略する。
図中のカギ括弧内の数値[]は、演算要素の位置を表している。即ち、演算要素[x]が相互接続機構5直下の演算要素であり、例えば、演算要素[x−8]は八つ左隣の演算要素を、演算要素[x+4]は四つ右隣の演算要素を表す。
相互接続機構5は、コントローラ4の演算命令に従い、全てが一斉に所望の距離離れた演算要素1の内部メモリ12aまたは12bのデータを転送する。例えば、左1の距離の転送を命じる場合、各相互接続機構5は図10の破線で示すように、右に1つ分離れた位置の演算要素1から内部メモリのデータを転送する。尚、図10では、接続選択機構6の図示は省略している。
FIG. 9 shows details of the
A
The numerical value [] in the brackets in the figure represents the position of the calculation element. That is, the arithmetic element [x] is an arithmetic element immediately below the
The
このような相互接続機構5の機能により、入力インタフェース2を動作させることなく近隣の演算要素1の保持するデータを参照可能である。ここでは一例として左隣8の距離までの参照が可能な相互接続機構5の例を示したが、この個数や最大距離は8に限らない。また、相互接続機構5が連続しない演算要素を参照することも考えられる。
With such a function of the
図11に接続選択機構6の詳細を示す。但し、相互接続機構5と同様、ここでは左側の演算要素1のデータを参照するための部分のみを示している。右側の演算要素1のデータを参照するための部分については、左側と同様(左右対称)の構成および動作となるため、説明を省略する。
接続選択機構6は、相互接続機構5の数(=演算要素1の数)にしてM個おきに配置される。Mは、相互接続機構5の数の合計をNとすると、M≦N/2を満たす数である。セレクタ61は、コントローラ4からのセレクタ制御信号により、演算要素[x’−O]からのデータと演算要素[x’+M−O]からのデータ(図では1≦O≦8)から片方を選択し、演算要素[x’+8−O]へ出力するための選択手段である。
接続選択機構6により、演算要素[x’−01]から演算要素[x’−08]の8データと、演算要素[x’+M−01]から演算要素[x’+M−08]の8データのうち片方を選択し、演算要素[x’]から演算要素[x’+07]へ出力可能である。ここでx’は、接続選択機構の右側に位置する演算要素が演算要素[x’]となるような値である。
FIG. 11 shows details of the
The
By the
図12に、一例としてN=16、M=8とした場合の相互接続機構5、接続選択機構6および演算要素1の一部の詳細を示す。
接続選択機構6に対して、演算要素[x’−O]のデータを選択するようにコントローラ4からの制御信号を与えることにより、演算要素[0]から演算要素[15]までの16個の相互接続機構は全てが繋がった形で動作が可能となる。
また、接続選択機構6に対して、演算要素[x’+M−O]を選択するようにコントローラ4からの制御信号を与えることにより、演算要素[0]から演算要素[7]までの8個の相互接続機構がひとまとまり、演算要素[8]から演算要素[15]までの8個の相互接続機構がひとまとまりとなり、8並列×2個の相互接続機構5を独立して使用可能となる。
FIG. 12 shows details of a part of the
By giving the connection selection mechanism 6 a control signal from the
In addition, by giving a control signal from the
従来では、データ列毎に独立の相互参照が必要とされ、かつ、データ数Pの大データ列とデータ数Qの小データ列(Q≦P/2)に対する処理が単一のSIMDプロセッサで要求される場合、小データ列を一つずつ逐次的に処理する必要があった。
しかし、実施の形態1に示すように、接続選択機構6を用い、N=P、M=QとしてSIMD型プロセッサを構成することにより、P/Q個(但し端数は切捨て)の小データ列を同時に処理可能となる。即ち、従来に対し小データ列の処理速度をP/Q倍に向上できる。
Conventionally, independent cross-reference is required for each data string, and processing for a large data string with the number of data P and a small data string with the number of data Q (Q ≦ P / 2) is required by a single SIMD processor. In this case, it is necessary to sequentially process small data strings one by one.
However, as shown in the first embodiment, by using the
以上のようにして、この実施の形態1によれば、従来よりも小さい演算処理時間で、ラスタ入力とバス入力の双方に対応可能である。また、従来よりも小さい演算処理時間で、データ数の異なる2種類のデータ列に対する演算処理を行うことが可能である。 As described above, according to the first embodiment, both the raster input and the bus input can be handled with a shorter calculation processing time than the conventional one. In addition, it is possible to perform arithmetic processing on two types of data strings with different numbers of data in a shorter arithmetic processing time than in the past.
尚、上記実施の形態1では、一例として1データを8ビットとしたが、これはどのような値でもかまわない。また、上記実施の形態1では、一例としてN=16、M=8としたが、これはどのような数でもかまわない。NはMの倍数でなくてもよいし、NおよびMは偶数でなくても、2のべき乗でなくてもよい。更に、上記例では、入力インタフェースおよび出力インタフェースのバス入出力を4データのバス幅としたが、これはどのような値でもかまわない。また、入力インタフェースと出力インタフェースのバス幅が異なっていてもかまわない。 In the first embodiment, one data is 8 bits as an example, but this may be any value. In the first embodiment, N = 16 and M = 8 are set as an example, but any number may be used. N may not be a multiple of M, and N and M may not be even or a power of 2. Further, in the above example, the bus input / output of the input interface and the output interface is a bus width of 4 data, but this may be any value. The bus widths of the input interface and the output interface may be different.
また、上記例では、相互接続機構5で参照可能な演算要素を左右に連続した8演算要素としたが、これはどのような値でもかまわない。また、連続していない演算要素1を選択可能な構成としてもかまわない。さらに、左と右で参照できる演算要素数が異なっていてもかまわない。
Further, in the above example, the calculation elements that can be referred to by the
以上のように、実施の形態1の並列演算処理装置によれば、一次元に配置され相互に接続された複数の演算要素を有する演算器群を複数備え、各演算器群間を相互接続機構によって一次元トーラス又はリング形状に接続し、各演算要素同士がSIMD型として動作する並列演算処理装置において、コントローラを備え、コントローラが相互接続機構を制御することによって、演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるようにしたので、処理時間のロスを無くすことができ、処理の高速化を図ることができる。 As described above, according to the parallel arithmetic processing device of the first embodiment, a plurality of arithmetic units having a plurality of arithmetic elements arranged one-dimensionally and connected to each other are provided, and an interconnection mechanism is provided between the arithmetic units. In a parallel arithmetic processing device that is connected to a one-dimensional torus or ring shape and operates as a SIMD type in each arithmetic element , a controller is provided, and the controller controls the interconnection mechanism, so that other local in the arithmetic unit group A mode in which the output of any one computation element is input, and all computation units are regarded as a one-dimensional torus or a series of rings, and the computation elements output within a predetermined distance in consideration of wraparound Since the mode for inputting any one of these is switched , the loss of processing time can be eliminated, and the processing speed can be increased.
また、実施の形態1の並列演算処理装置によれば、複数の演算要素1が外部からの入力データを受信するインタフェースとして、ラスタ入力またはブロック入力のどちらかの入力形式を選択するための入力形式選択手段を有する入力インタフェース2を設けたので、ラスタ入力およびバス入力が単一のSIMD型プロセッサで要求される場合に、シリアル−パラレル変換処理もしくはパラレル−シリアル変換処理に必要とされる演算処理を削減することができる。
Further, according to the parallel arithmetic processing apparatus of the first embodiment, an input format for selecting either an input format of raster input or block input as an interface through which a plurality of
また、実施の形態1の並列演算処理装置によれば、複数の演算要素1が外部へ出力データを転送するインタフェースとして、ラスタ出力またはブロック出力のどちらかの出力形式を選択するための出力形式選択手段を有する出力インタフェース3を設けたので、ラスタ入力およびバス入力が単一のSIMD型プロセッサで要求される場合に、シリアル−パラレル変換処理もしくはパラレル−シリアル変換処理に必要とされる演算処理を削減することができる。
Further, according to the parallel arithmetic processing apparatus of the first embodiment, an output format selection for selecting either an output format of raster output or block output as an interface through which a plurality of
実施の形態2.
図13は、実施の形態2の並列演算処理装置の構成図である。
実施の形態2では、実施の形態1で示した図1の並列演算処理装置と比べて、コントローラ4から接続選択機構6に対する制御信号線が接続選択機構6毎に分離している点が異なる(図中の相違点100参照)。その他の構成では実施の形態1と同様であるため、以下では、実施の形態1と異なる点に絞って説明を行う。
実施の形態2においては、コントローラ4から接続選択機構6への制御信号線を独立することによって、演算要素[x’−O]のデータと、演算要素[x’+M−O]のデータどちらを選択するか、接続選択機構6毎に独立に決定可能である。
上記の構成によって、任意の位置で接続選択機構6の参照先を切替えることができ、複数種類の異なるデータ数を持つ小データ列に対してデータ列を同時に処理可能となる。
FIG. 13 is a configuration diagram of the parallel arithmetic processing apparatus according to the second embodiment.
The second embodiment is different from the parallel processing device of FIG. 1 shown in the first embodiment in that the control signal line from the
In the second embodiment, the control signal line from the
With the above configuration, the connection destination of the
一例として、N=256、M=16とした場合について説明する。任意の位置で接続選択機構6を切替えることが可能となるため、例えば32個の相互接続機構5をひとまとまりとして8つのデータ列、64個の相互接続機構5をひとまとまりとして4つのデータ列など、16×i個(iは正の整数)の相互接続機構5をひとまとまりとして16/i個(iは正の整数、端数は切捨て)のデータ列を同時に、独立に処理可能となる。
As an example, a case where N = 256 and M = 16 will be described. Since it is possible to switch the
また、相互接続機構5を不等な間隔で区切り、それぞれをひとまとまりとしてデータ列の処理を行うことも可能である。一例として、128個、64個、32個、32個のように、相互接続機構5を不等な間隔で区切るようにコントローラ4からの制御信号を与える。これによって、データ数が128個のデータ列を1個、データ数が64個のデータ列を1個、データ数が32個のデータ列をそれぞれ独立に処理できる。
It is also possible to divide the
以上のようにして、この実施の形態2によれば、実施の形態1よりも小さい演算処理時間で、データ数の異なる3種類以上のデータ列に対する演算処理を行うことが可能である。 As described above, according to the second embodiment, it is possible to perform arithmetic processing on three or more types of data strings having different numbers of data in a shorter arithmetic processing time than in the first embodiment.
尚、上記例では、一例としてN=256、M=16としたが、これはどのような数でもかまわない。NはMの倍数でなくてもよいし、NおよびMは偶数でなくても、2のべき乗でなくてもよい。
また、上記例では、相互接続機構5をひとまとまりとして扱う個数の例として32個、64個、128個を挙げたが、これは、M×i個(iは正の整数)であることを満たせばどのような数でもよい。それぞれが偶数でなくてもよいし、2のべき乗でなくてもよい。
In the above example, N = 256 and M = 16 are set as an example, but any number may be used. N may not be a multiple of M, and N and M may not be even or a power of 2.
In the above example, 32, 64, and 128 are given as examples of the number of interconnecting
以上のように、実施の形態2の並列演算処理装置によれば、コントローラ4が、複数の接続選択機構6を個別に制御するようにしたので、複数種類の異なるデータ数を持つ小データ列に対してデータ列を同時に処理可能とすることができる。
As described above, according to the parallel processing device of the second embodiment, the
また、実施の形態2の並列演算処理装置によれば、接続選択機構6を不等の間隔で配置するようにしたので、データ数の異なる3種類以上のデータ列に対する演算処理を行うことができる。
Further, according to the parallel processing apparatus of the second embodiment, the
実施の形態3.
図14は、実施の形態3の並列演算処理装置の構成図である。
実施の形態3では、図1で示した実施の形態1の並列演算処理装置と比べて、コントローラ4から相互接続機構5に対する制御信号線がM個の相互接続機構5毎に分離しており(図中、相違点101参照)、更に、コントローラ4から演算要素1に対する制御信号線がM個の演算要素1毎に分離している(図中、相違点102参照)点が異なる。その他の構成では実施の形態1と同様であるため、以下では、実施の形態1と異なる点に絞って説明を行う。また、以下では、M個の演算要素1および相互接続機構5をまとめて演算要素群と呼ぶ。
FIG. 14 is a configuration diagram of the parallel arithmetic processing apparatus according to the third embodiment.
In the third embodiment, the control signal line from the
演算要素群毎にコントローラ4からの制御信号線を独立に与えることによって、各演算要素群をそれぞれが独立したSIMD型プロセッサであるかのように使用可能となる。即ち、全体がN/M個の(但し端数は切捨て)演算要素群(=並列数MのSIMD型プロセッサ)を有するMultiple Instruction Multiple Data(MIMD)型プロセッサとして使用可能となる。
By independently providing a control signal line from the
MIMD型プロセッサとして使用する場合、先ず、接続選択機構6に、演算要素[x’+M−O]のデータを選択するようにコントローラ4からの制御信号を与える。これによって、各演算要素間の相互接続が分断される。同時に、コントローラ4から演算要素群に対し、各演算要素群で別個の演算処理が実施されるように、また、別個の相互参照を行うように制御信号を与える。
このような制御信号を与えることにより、各演算要素群が、独立したデータ列に対し、別個の演算命令を実施可能となり、MIMD型プロセッサとしての機能が実現される。
When used as a MIMD type processor, first, the
By giving such a control signal, each calculation element group can execute a separate calculation instruction for an independent data string, and a function as a MIMD type processor is realized.
従来通りのSIMD型プロセッサとして使用する場合は、コントローラ4から接続選択機構6への制御信号を、演算要素[x’−O]のデータを選択するように与え、同時に各演算要素群に対して全て同じ制御信号を与える。
上記のように制御信号を与えることにより、SIMD型プロセッサ全体を従来通り1個のSIMD型プロセッサとして使用可能となる。
When used as a conventional SIMD type processor, a control signal from the
By giving the control signal as described above, the entire SIMD type processor can be used as one SIMD type processor as before.
以上のようにして、この実施の形態3によれば、SIMD型プロセッサがMIMD型プロセッサとしても使用可能となる。 As described above, according to the third embodiment, the SIMD type processor can also be used as the MIMD type processor.
尚、上記例では、単一のコントローラ4で全体を制御する構成としたが、コントローラ4が複数個に分かれていてもよい。また、コントローラ4を複数に分割した場合は、分割したコントローラそれぞれが制御する演算要素群の数はいくつであってもよい。
In the above example, the entire controller is controlled by the
以上のように、実施の形態3の並列演算処理装置によれば、コントローラ4が、複数の演算要素1を個別に制御するようにしたので、MIMD型プロセッサとしての機能を実現することができる。
As described above, according to the parallel arithmetic processing device of the third embodiment, the
また、実施の形態3の並列演算処理装置によれば、コントローラ4が、複数の相互接続機構5を個別に制御するようにしたので、MIMD型プロセッサとしての機能を実現することができる。
Further, according to the parallel processing device of the third embodiment, the
実施の形態4.
図15は、実施の形態4の並列演算処理装置の構成図である。
実施の形態4は、図1で示した実施の形態1の並列演算処理装置と比べて、入力インタフェース2aおよび出力インタフェース3aに従来インタフェースを用いている点が異なる。即ち、実施の形態4は従来の構成に対して接続選択機構6のみを付け加えた構成である。以下では、実施の形態1と異なる点に絞って説明を行う。
入力形式、出力形式は単一だが、データ数の異なるデータ列が存在する場合には、従来の構成に対して接続選択機構6のみを付け加え、入力インタフェース2aおよび出力インタフェース3aには従来のものを用いてもよい。即ち、接続選択機構6は、図3〜図5に示す入力インタフェース2や、図6〜図8に示す出力インタフェース3と必ずしも組み合わせて用いる必要はなく、単独で追加することにより、実施の形態1で説明したように、N=P(大データ列)、M=Q(小データ列)としてSIMD型プロセッサを構成することにより、P/Q個の小データ列を同時に処理可能とすることができる。
FIG. 15 is a configuration diagram of the parallel arithmetic processing apparatus according to the fourth embodiment.
The fourth embodiment is different from the parallel processing device of the first embodiment shown in FIG. 1 in that conventional interfaces are used for the input interface 2a and the output interface 3a. That is, the fourth embodiment has a configuration in which only the
If there is a data string with a single input format and output format but different numbers of data, only the
以上のようにして、この実施の形態4によれば、従来よりも小さい演算処理時間で、データ数の異なる2種類のデータ列に対する演算処理を行うことが可能である。 As described above, according to the fourth embodiment, it is possible to perform arithmetic processing on two types of data strings having different numbers of data in a shorter arithmetic processing time than in the past.
尚、実施の形態4では、入力インタフェース2aにはラスタ入力インタフェースを用いてもよいし、バス入力インタフェースを用いてもよい。同様にして、出力インタフェース3aにはラスタ出力インタフェースを用いてもよいし、バス出力インタフェースを用いてもよい。また、ラスタ入力インタフェースとバス出力インタフェースを同時に用いてもよいし、バス入力インタフェースとラスタ出力インタフェースを同時に用いてもよい。更に、ラスタ形式、バス形式以外の入出力インタフェースを用いることももちろん可能である。 In the fourth embodiment, a raster input interface or a bus input interface may be used as the input interface 2a. Similarly, a raster output interface or a bus output interface may be used as the output interface 3a. Further, the raster input interface and the bus output interface may be used simultaneously, or the bus input interface and the raster output interface may be used simultaneously. Furthermore, it is of course possible to use an input / output interface other than the raster format and bus format.
実施の形態5.
実施の形態5は、実施の形態1に比べて、演算要素1が二次元に配置されており、垂直方向への相互参照が存在する点が異なる。
図16に、実施の形態5における演算要素1および水平相互接続機構5a,垂直相互接続機構5bと、水平接続選択機構6a,垂直接続選択機構6bの接続関係を示す。図示のように、実施の形態5では、水平方向の水平相互接続機構5aと水平接続選択機構6aおよび垂直方向の垂直相互接続機構5bと垂直接続選択機構6bが設けられており、それぞれの機能は実施の形態1における相互接続機構5および接続選択機構6と同様である。また、セレクタ7は、コントローラ4からの制御信号によって水平相互接続機構5aと垂直相互接続機構5b、どちらかのデータを選択するためのセレクタである。これ以外の並列演算処理装置としての構成は実施の形態1と同様であるため、以下では、実施の形態1と異なる点に絞って説明を行う。
The fifth embodiment is different from the first embodiment in that the
FIG. 16 shows the connection relationship between the
図17に、垂直相互接続機構5bの詳細構成を示す。
垂直相互接続機構5bの構成および動作の原理は、実施の形態1における相互接続機構5と全く同様である。但し、図16中の左側のデータではなく、上側のデータを参照する点が異なる。セレクタ51bは、コントローラ4からの制御信号に従い、上に任意の距離の演算要素1から転送されたデータを選択するための選択手段である。但し、ここでは垂直相互接続機構5bのうち、上側の演算要素1のデータを参照する部分のみを示している。下側の演算要素1のデータを参照する部分については、上側と同様(上下対称)の構成および動作となるため、ここでは説明を省略する。また、図中の演算要素[y]は、演算要素の位置を表している。演算要素[y]が垂直相互接続機構5b直近の演算要素であり、演算要素[y−8]は8つ上隣の演算要素を、演算要素[y+4]は4つ下隣の演算要素を表す。
FIG. 17 shows a detailed configuration of the
The configuration and operation principle of the
垂直相互接続機構5bは、コントローラ4の演算命令に従い、全てが一斉に所望の距離離れた演算要素1の内部メモリ12aもしくは12bのデータを転送する。この機能により、入力インタフェース2を動作させることなく近隣の演算要素1の保持するデータを参照可能である。この図17では、一例として、上隣八つの距離までの参照が可能な相互接続機構を示している。
The
図18に垂直接続選択機構6bの詳細を示す。
垂直相互接続機構6bの構成および動作の原理は、実施の形態1における接続選択機構6と全く同様である。但し、図16中の左側のデータではなく、上側のデータを参照する点が異なる。
図18では、図17で示した垂直相互接続機構5bと同様に、ここでは上側の演算要素のデータを参照するための部分のみを示している。下側の演算要素のデータを参照するための部分については、上側と同様(上下対称)の構成および動作となるため、説明を省略する。
垂直接続選択機構6bは、垂直相互接続機構5bの数(=演算要素1の数)にしてR個おきに配置される。Rは、垂直の相互接続機構5の数の合計をSとすると、R≦S/2を満たす数である。また、セレクタ61bは、コントローラ4からのセレクタ制御信号により、演算要素[y’−T]からのデータと演算要素[y’+R−T]からのデータ(図では1≦T≦8)から片方を選択し、演算要素[y’+8−T]へ出力するための選択手段である。
このような垂直接続選択機構6bにより、演算要素[y’−01]から演算要素[y’−08]の8データと、演算要素[y’+M−01]から演算要素[y’+M−08]の8データのうち片方を選択し、演算要素[y’]から演算要素[y’+07]へ出力可能である。ここでy’は、接続選択機構の下側に位置する演算要素が演算要素[y’]となるような値である。
FIG. 18 shows details of the vertical
The configuration and operation principle of the
In FIG. 18, as in the
The vertical
By such a vertical
以上のような垂直相互接続機構5bおよび垂直接続選択機構6bにより、水平方向と同様にして、上下方向に任意の位置からデータを参照することが可能となる。
更に、セレクタ7は、コントローラ4からの制御信号により、水平相互接続機構5aから出力される水平方向任意位置のデータと、垂直相互接続機構5bから出力される垂直方向任意位置のデータからどちらかのデータを選択し、演算要素1に対して転送する。
With the
Furthermore, the
以上のようにして、実施の形態5によれば、演算要素が二次元に並んだSIMD型プロセッサにおいて、左右方向および上下方向の、任意の演算要素1の内部データを参照することが可能となる。
As described above, according to the fifth embodiment, in the SIMD type processor in which the calculation elements are arranged two-dimensionally, it is possible to refer to the internal data of the
尚、上記例では、一例として水平相互接続機構5aおよび垂直相互接続機構5bで参照可能な演算要素1を上下に連続した8演算要素としたが、これはどのような値でもかまわない。また、連続していない演算要素1を選択可能な構成としてもかまわない。さらに、上と下で参照できる演算要素数が異なっていてもかまわない。
また、上記の図16の構成では、一例として水平接続選択機構6a、垂直接続選択機構6bの配置間隔を共に2個おきとしたが、これはどのような値であってもよい。また、水平と垂直で異なった値でもよい。
In the above example, the
In the configuration of FIG. 16 described above, the horizontal connection selection mechanism 6a and the vertical
以上のように、実施の形態5の並列演算処理装置によれば、一次元に配置され相互に接続された複数の演算要素を有する演算器群を複数備え、各演算器群間を相互接続機構によって一次元トーラス又はリング形状に接続した回路を二次元に配置し、各演算要素同士がSIMD型として動作する並列演算処理装置において、コントローラを備え、コントローラが相互接続機構を制御することによって、演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、一次元に配置された全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるようにしたので、実施の形態1の効果に加えて、二次元配置における左右方向および上下方向の、任意の演算要素1の内部データを参照することができる。
As described above, according to the parallel arithmetic processing device of the fifth embodiment, a plurality of arithmetic units having a plurality of arithmetic elements arranged one-dimensionally and connected to each other are provided, and an interconnection mechanism is provided between the arithmetic units. A parallel arithmetic processing unit in which a circuit connected in a one-dimensional torus or ring shape is arranged two-dimensionally and each arithmetic element operates as a SIMD type is provided with a controller, and the controller controls the interconnection mechanism, thereby calculating The wraparound is performed by considering the mode in which the output of any other arithmetic element is input locally in the unit group and all the unit units arranged in one dimension as a one-dimensional torus or a series of rings. since in view and to switch a mode to enter any one of the output of the operational elements within a predetermined distance, in addition to the effect of the first embodiment, the two-dimensional distribution Horizontal direction and the vertical direction, it is possible to refer to the internal data of an
1 演算要素、2,2a 入力インタフェース、3,3a 出力インタフェース、4 コントローラ、5 相互接続機構、5a 水平相互接続機構、5b 垂直相互接続機構、6 接続選択機構、6a 水平接続選択機構、6b 垂直接続選択機構、7,22,32,51,51b,61,61b セレクタ、11 ALU、12a,12b 内部メモリ、21 入力バッファ、31 出力バッファ。 1 computing element, 2, 2a input interface, 3, 3a output interface, 4 controller, 5 interconnection mechanism, 5a horizontal interconnection mechanism, 5b vertical interconnection mechanism, 6 connection selection mechanism, 6a horizontal connection selection mechanism, 6b vertical connection Selection mechanism, 7, 22, 32, 51, 51b, 61, 61b selector, 11 ALU, 12a, 12b internal memory, 21 input buffer, 31 output buffer.
Claims (8)
コントローラを備え、該コントローラが前記相互接続機構を制御することによって、
前記演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるものである、並列演算処理装置。 A plurality of computing units having a plurality of computing elements arranged in a one-dimensional manner and connected to each other, the computing units are connected to each other in a one-dimensional torus or ring shape by an interconnection mechanism, and the computing elements are connected to each other. In a parallel processing device operating as a SIMD type ,
A controller, wherein the controller controls the interconnection mechanism;
A mode in which the output of any one other arithmetic element is input locally in the arithmetic unit group, and all the arithmetic unit groups are assumed to be a one-dimensional torus or a series of rings. A parallel arithmetic processing device for switching between a mode in which any one of outputs of arithmetic elements within the distance is input .
コントローラを備え、該コントローラが前記相互接続機構を制御することによって、
前記演算器群内ローカルに他の任意の一つの演算要素の出力を入力とするモードと、前記一次元に配置された全部の演算器群が一次元トーラスまたは一続きのリングであるとみて、ラップアラウンドを考慮して所定の距離内にある演算要素の出力の任意の一つを入力とするモードとを切り換えるものである、並列演算処理装置。 A plurality of computing units having a plurality of computing elements arranged in one dimension and connected to each other are arranged, and a circuit in which the computing units are connected in a one-dimensional torus or ring shape by an interconnection mechanism is arranged in two dimensions. In the parallel arithmetic processing device in which each of the arithmetic elements operates as a SIMD type ,
A controller, wherein the controller controls the interconnection mechanism;
A mode in which the output of any one other arithmetic element is input locally in the arithmetic unit group, and all the arithmetic unit groups arranged in the one dimension are regarded as a one-dimensional torus or a continuous ring, A parallel arithmetic processing device that switches between a mode in which any one of outputs of arithmetic elements within a predetermined distance is input in consideration of wraparound .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009247807A JP5601817B2 (en) | 2009-10-28 | 2009-10-28 | Parallel processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009247807A JP5601817B2 (en) | 2009-10-28 | 2009-10-28 | Parallel processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011095908A JP2011095908A (en) | 2011-05-12 |
JP5601817B2 true JP5601817B2 (en) | 2014-10-08 |
Family
ID=44112762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009247807A Expired - Fee Related JP5601817B2 (en) | 2009-10-28 | 2009-10-28 | Parallel processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5601817B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129092A (en) * | 1987-06-01 | 1992-07-07 | Applied Intelligent Systems,Inc. | Linear chain of parallel processors and method of using same |
JP4020804B2 (en) * | 2002-03-06 | 2007-12-12 | 松下電器産業株式会社 | Data processing device |
JP4537420B2 (en) * | 2007-04-02 | 2010-09-01 | 株式会社リコー | SIMD type microprocessor |
-
2009
- 2009-10-28 JP JP2009247807A patent/JP5601817B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011095908A (en) | 2011-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1927949A1 (en) | Array of processing elements with local registers | |
JP4913685B2 (en) | SIMD type microprocessor and control method of SIMD type microprocessor | |
US20070165547A1 (en) | Integrated data processing circuit with a plurality of programmable processors | |
CN101371263A (en) | Method and apparatus for processing algorithm steps of multimedia data in parallel processing systems | |
KR20010014381A (en) | Manifold array processor | |
JPH0922404A (en) | Array processor communication architecture with broadcast communication processor instruction | |
EP3384498B1 (en) | Shift register with reduced wiring complexity | |
JP4690362B2 (en) | SIMD type microprocessor and data transfer method for SIMD type microprocessor | |
JPH11168727A (en) | Motion vector detector | |
JP4844406B2 (en) | Data processing apparatus, image processing apparatus, and data processing program | |
JP3987782B2 (en) | Array type processor | |
JP5601817B2 (en) | Parallel processing unit | |
JP2004151951A (en) | Array type processor | |
JP2009059346A (en) | Method and device for connecting with a plurality of multimode processors | |
US10303473B2 (en) | Vector permutation circuit and vector processor | |
KR101031680B1 (en) | Processor array system having function for data reallocation between high-speed pe | |
JP4255475B2 (en) | Data-driven information processing device | |
JP3593439B2 (en) | Image processing device | |
JP5370352B2 (en) | SIMD type processor array system and data transfer method thereof | |
JP5889747B2 (en) | Semiconductor device | |
EP1927950A1 (en) | Array of processing elements with local registers | |
JP4855234B2 (en) | Parallel processing unit | |
JPH0713956A (en) | Simd type parallel computer data transfer device | |
JP5369669B2 (en) | SIMD type microprocessor | |
JP5473507B2 (en) | Parallel processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140507 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140702 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140722 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140819 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5601817 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |