JP2005267615A - Parallel arithmetic processor - Google Patents
Parallel arithmetic processor Download PDFInfo
- Publication number
- JP2005267615A JP2005267615A JP2005025558A JP2005025558A JP2005267615A JP 2005267615 A JP2005267615 A JP 2005267615A JP 2005025558 A JP2005025558 A JP 2005025558A JP 2005025558 A JP2005025558 A JP 2005025558A JP 2005267615 A JP2005267615 A JP 2005267615A
- Authority
- JP
- Japan
- Prior art keywords
- value
- register
- data
- network
- offset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 202
- 238000012546 transfer Methods 0.000 claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims description 77
- 230000008859 change Effects 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 8
- 229920006395 saturated elastomer Polymers 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 description 61
- 238000010586 diagram Methods 0.000 description 56
- 230000017105 transposition Effects 0.000 description 32
- 239000011159 matrix material Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
本発明は画像データや音声データ、通信データなどの大量のデータを処理するのに適した並列演算プロセッサに関する。 The present invention relates to a parallel arithmetic processor suitable for processing a large amount of data such as image data, audio data, and communication data.
近年、画像処理や音声処理、通信処理の分野では、SIMD(Single Instruction stream Multiple Data streams)プロセッサが広く用いられている。SIMDプロセッサとは、プロセッシングエレメントを複数有し、これら複数のプロセッシングエレメントに並列演算を行わせるプロセッサである。かかるSIMDプロセッサで、画像処理等の様々な用途で処理を効率的に行うためには、プロセッシングエレメント間のデータ移動を効率的に行うことが重要である。また、任意のプロセッシングエレメント間のデータ移動を行うためには、「ネットワークパタン値」の設定方法が重要である。”ネットワークパタン値”とは、各プロセッシングエレメントに対し、どのプロセッシングエレメントからのデータを転送するかという「プロセッシングエレメント対プロセッシングエレメント」の転送パターンを意味する。従来のSIMDプロセッサでは、任意のプロセッシングエレメント間のデータ移動を行わずに、例えばデータ移動を隣接するプロセッシングエレメント間のみに制限することによって、ネットワークパタン値の設定を行わない場合がある(例えば、特許文献1参照)。
しかしながら、任意のプロセッシングエレメント間のデータ移動ができないと、データの移動に制約が生じ、結果としてSIMDプロセッサの適用範囲を狭め、多様な用途に対して十分な性能を発揮することができなくなる。また、任意のプロセッシングエレメント間のデータ移動を行う場合であっても、毎サイクル自由にデータ移動を行うには、命令オペランド中に、そのネットワークパタン値を即値で指定する必要がある。ここでSIMDプロセッサに実装されているプロセッシングエレメントが16個であり、個々のプロセッシングエレメントに付与された4ビットのプロセッシングエレメント番号を用いてネットワークパタン値を表現しようとすると、8バイト(=4×16bit)もの即値を、命令のオペランドに指定しておく必要がある。転送パターンが変わる毎に8バイトの即値をもつ転送命令を、SIMDプロセッサに投入する必要があるので、従来のSIMDプロセッサでは、プログラミングのためのコードサイズは大きくならざるを得なかった。その結果、プログラムを格納するためのメモリの大容量化をもたらしていた。 However, if data cannot be moved between arbitrary processing elements, data movement is restricted, and as a result, the scope of application of the SIMD processor is narrowed and sufficient performance cannot be exhibited for various uses. Further, even when data is moved between arbitrary processing elements, in order to move data freely every cycle, it is necessary to specify the network pattern value as an immediate value in the instruction operand. Here, there are 16 processing elements implemented in the SIMD processor, and when trying to express the network pattern value using the 4-bit processing element number assigned to each processing element, 8 bytes (= 4 × 16bit) ) Immediate value must be specified in the operand of the instruction. Each time the transfer pattern changes, a transfer instruction having an immediate value of 8 bytes needs to be input to the SIMD processor. Therefore, in the conventional SIMD processor, the code size for programming has to be increased. As a result, the memory capacity for storing programs has been increased.
本発明の目的は、SIMDプロセッサに対する処理をプログラミングするにあたってのコードサイズを削減しつつ、高性能を得ることができるプロセッサを提供することである。 An object of the present invention is to provide a processor capable of obtaining high performance while reducing a code size when programming a process for a SIMD processor.
上記課題を解決するために、本発明は、複数のプロセッシングエレメントを備えたプロセッサであって、命令の解読を行うデコーダを備え、前記各プロセッシングエレメントは、当該プロセッシングエレメントに対し、何れのプロセッシングエレメントからデータを転送するかという転送パターンを示す値を格納した転送パターン格納手段と、前記転送パターンに基づいて決定されるプロセッシングエレメントとの間のデータ転送を実行する転送手段と、前記デコーダによる直前の命令の解読結果に従って、前記転送パターン格納手段の値の更新を行う更新手段とを含むプロセッサである。 In order to solve the above-described problems, the present invention is a processor including a plurality of processing elements, and includes a decoder that decodes an instruction, and each processing element includes any processing element from the processing element. A transfer pattern storing means for storing a value indicating a transfer pattern for transferring data, a transfer means for executing data transfer between a processing element determined based on the transfer pattern, and an instruction immediately before by the decoder And a updating unit that updates the value of the transfer pattern storage unit according to the result of decoding.
本発明は、上記の構成を備えることにより、命令に従って、転送パターンを表す値に対し、値の更新を行う。よって、データ移動を行う度に命令オペランド中に即値で転送パターンを示す値を与える必要はなく、SIMDプロセッサに対するプログラミングにあたってのコードサイズを減らすことができる。また、転送パターンに基づいて、プロセッシングエレメント間の転送を実行するので、任意のプロセッシングエレメント間でデータの移動が可能となる。 By providing the above configuration, the present invention updates a value representing a transfer pattern according to an instruction. Therefore, it is not necessary to give an immediate value indicating the transfer pattern in the instruction operand every time data is moved, and the code size for programming the SIMD processor can be reduced. In addition, since the transfer between the processing elements is executed based on the transfer pattern, the data can be moved between arbitrary processing elements.
ここで、前記各プロセッシングエレメントは更に、複数レジスタからなるレジスタセットを備え、前記データとは、レジスタセットにおける各レジスタの格納値であるとしても良い。
ここで、前記レジスタセットは、所定のオフセット信号に基づき、何れかのレジスタに格納されたデータを出力し、前記更新手段による更新は、転送パターンを示す値に対する算術演算を含み、前記オフセット信号は、前記転送パターンを示す値に対する演算に伴う桁上げ又は桁下げに基づき変化するとしても良い。
Here, each of the processing elements may further include a register set including a plurality of registers, and the data may be a stored value of each register in the register set.
Here, the register set outputs data stored in any of the registers based on a predetermined offset signal, and the update by the updating unit includes an arithmetic operation on a value indicating a transfer pattern, and the offset signal is It may be changed based on a carry or a carry accompanying a calculation for a value indicating the transfer pattern.
これにより、例えば、複数レジスタからなるレジスタセットがr0〜r15の16本のレジスタから構成されている場合に、水平方向に並ぶ画素データがr0及びr1に格納されているとすると、折り返しで格納されている画素を効率良く転送することができる。
ここで、前記更新手段は、算術演算手段と、飽和演算手段とを含み、前記飽和演算手段は、前記算術演算手段による前記算術演算の結果が所定の範囲外になったか否かを判定し、所定の範囲外になると、前記転送パターンを示す値に対する飽和演算を行い、前記更新手段により更新された前記転送パターンを示す値は、算術演算の結果、飽和演算の結果の何れかであるとしても良い。
Thus, for example, when a register set composed of a plurality of registers is composed of 16 registers r0 to r15, if pixel data arranged in the horizontal direction are stored in r0 and r1, they are stored in a folded state. Can be transferred efficiently.
Here, the update means includes arithmetic operation means and saturation operation means, and the saturation operation means determines whether or not the result of the arithmetic operation by the arithmetic operation means is out of a predetermined range, When the value is outside the predetermined range, a saturation operation is performed on the value indicating the transfer pattern, and the value indicating the transfer pattern updated by the updating unit may be either the result of the arithmetic operation or the result of the saturation operation. good.
ここで、前記更新手段は、出力手段を含み、前記飽和演算の際に、前記転送パターンを示す値が前記所定の範囲より大きいと第一の値を飽和値として出力し、前記所定の範囲より小さいと第二の値を飽和値として出力するとしても良い。
ここで、前記所定の範囲とは、前記プロセッシングエレメント番号を示す範囲であり、前記第一の値とは、前記プロセッシングエレメント番号の最大値であり、前記第二の値とは、前記プロセッシングエレメント番号の最小値であるとしても良い。
Here, the updating unit includes an output unit, and outputs a first value as a saturation value when a value indicating the transfer pattern is larger than the predetermined range during the saturation calculation. If it is smaller, the second value may be output as a saturation value.
Here, the predetermined range is a range indicating the processing element number, the first value is a maximum value of the processing element number, and the second value is the processing element number. May be the minimum value.
これにより、画面の端部でのFIR(Finite Impulse Response)フィルタ演算を好適に行える。
ここで、前記飽和演算手段は更に、前記飽和演算の際に、所定の最大値及び最小値の入力を受け付け、前記所定の範囲とは、前記入力された所定の最大値及び最小値により示される範囲であり、前記第一の値とは、前記所定の最大値であり、前記第二の値とは、前記所定の最小値であるとしても良い。
Thereby, FIR (Finite Impulse Response) filter calculation at the edge of the screen can be suitably performed.
Here, the saturation calculation means further accepts input of a predetermined maximum value and minimum value during the saturation calculation, and the predetermined range is indicated by the input predetermined maximum value and minimum value. The first value may be the predetermined maximum value, and the second value may be the predetermined minimum value.
これにより、様々な大きさの画像に対してFIRフィルタ処理等を施すことができる。
ここで、前記飽和演算手段は更に、前記飽和演算の際に、所定の最大値及び最小値の入力を受け付け、前記所定の範囲とは、前記入力された所定の最大値及び最小値により示される範囲であり、前記第一の値とは、第一式により求まる値であり、前記第二の値とは、第二式により求まる値であるとしても良い。
As a result, FIR filter processing and the like can be performed on images of various sizes.
Here, the saturation calculation means further accepts input of a predetermined maximum value and minimum value during the saturation calculation, and the predetermined range is indicated by the input predetermined maximum value and minimum value. It is a range, and the first value may be a value obtained from the first equation, and the second value may be a value obtained from the second equation.
これにより、画面の端において、データを折り返す処理が行え、FIRフィルタ演算などを行う際のさらなる高画質化が可能になる。
ここで、前記レジスタセットの各レジスタは、バイトサイズのデータを2つ格納しており、前記飽和演算手段は、上位側と下位側のそれぞれに対し、前記算術演算手段による前記算術演算の結果が所定の範囲外になったか否かを判定し、所定の範囲外になると、上位側のバイトデータに対する飽和演算と、下位側のバイトデータに対する飽和演算とを同時に実行し、前記出力手段は、互いに異なる2つの飽和値を出力するとしても良い。
As a result, the data can be folded back at the edge of the screen, and the image quality can be further improved when performing the FIR filter calculation or the like.
Here, each register of the register set stores two byte-sized data, and the saturation calculation means has a result of the arithmetic operation by the arithmetic operation means for each of the upper side and the lower side. It is determined whether or not it is outside the predetermined range, and when it is out of the predetermined range, a saturation operation on the upper byte data and a saturation operation on the lower byte data are simultaneously performed, and the output means mutually Two different saturation values may be output.
これにより、上位側のバイトデータ、下位側のバイトデータが最大値を越えている場合、これらの値は互いに異なる値に丸められる。これにより例えば、赤色差、青色差が1つのプロセッシングエレメントにおけるレジスタの上位側、下位側に格納されている場合でも、別々の値をそれぞれプロセッシングエレメントに分配することができる。
ここで、前記更新手段は、算術演算手段と、モジュロ式の算術演算を行うモジュロ演算手段とを含み、前記モジュロ演算手段は、前記算術演算手段による前記算術演算の結果が前記転送パターンを示す値の範囲外になったか否かを判定し、範囲外になると、前記転送パターンを示す値に対するモジュロ演算を行い、前記更新手段により更新された前記転送パターンを示す値は、算術演算の結果、モジュロ演算の結果の何れかであるとしても良い。
Thus, when the upper byte data and the lower byte data exceed the maximum value, these values are rounded to different values. Thereby, for example, even when the red color difference and the blue color difference are stored in the upper and lower sides of the register in one processing element, different values can be distributed to the processing elements.
Here, the updating means includes arithmetic operation means and modulo arithmetic means for performing a modulo arithmetic operation, and the modulo arithmetic means is a value in which a result of the arithmetic operation by the arithmetic operation means indicates the transfer pattern. When the value is out of the range, a modulo operation is performed on the value indicating the transfer pattern, and the value indicating the transfer pattern updated by the updating unit is obtained as a result of the arithmetic operation as a modulo value. It may be one of the results of the calculation.
ここで、前記各プロセッシングエレメントは更に、リードオフセット値に対してモジュロ式の算術演算を行うことで、リードオフセット値を変化させる第1変化部と、ライトオフセット値に対してモジュロ式の算術演算を行うことで、ライトオフセット値を変化させる第2変化部とを備え、前記レジスタセットは、リードオフセット値に基づき、何れかのレジスタに格納されたデータを読み出し、ライトオフセット値に基づき、何れかのレジスタにデータを書き込むとしても良い。 Here, each of the processing elements further performs a modulo arithmetic operation on the read offset value to perform a first change unit that changes the read offset value, and a modulo arithmetic operation on the write offset value. And a second changing unit that changes the write offset value. The register set reads data stored in any register based on the read offset value, and Data may be written to the register.
これにより、即値指定を用いずとも、行列転置を実現することができる。 Thereby, matrix transposition can be realized without using immediate specification.
以下本発明に係る並列演算プロセッサの実施形態について説明する。
(第1実施形態)
図1は本発明に係る並列演算プロセッサの全体構成図である。図1に示すように並列演算プロセッサは、命令メモリ10と、命令デコーダ11と、全体制御部12と、データメモリ13と、プロセッシングエレメント群14とを含む。
Embodiments of a parallel arithmetic processor according to the present invention will be described below.
(First embodiment)
FIG. 1 is an overall configuration diagram of a parallel arithmetic processor according to the present invention. As shown in FIG. 1, the parallel arithmetic processor includes an
図2は、プロセッシングエレメント群14のうちの一つである、プロセッシングエレメントPE0の内部の構成図である。他のプロセッシングエレメントも同一の構成であるため、プロセッシングエレメントPE0についてのみ説明する。図2に示すようにプロセッシングエレメントPE0は、レジスタ番号変換部20と、レジスタファイル15と、論理和回路16と、プロセッシングエレメント間を接続する相互接続網であるネットワーク30aと、プロセッシングエレメント間を接続する相互接続網であるネットワーク30bと、演算器ユニット40とを含む。
FIG. 2 is an internal configuration diagram of the processing element PE0, which is one of the
図1の並列演算プロセッサはSIMD型の構成で、命令メモリ10からプログラムを読み込み、命令デコーダ11で命令のデコードを行い、デコードした結果からすべてのプロセッシングエレメントを制御する制御信号を生成する。また、分岐などのすべてのプロセッシングエレメントに共通に影響する動作は全体制御部12で行う。また、プロセッシングエレメント間を接続し、データの移動を行うネットワーク30をネットワーク30a、ネットワーク30bの2系統有しており、これにより、プロセッシングエレメント群14の間でデータの移動が可能となる。
1 has a SIMD type configuration, reads a program from the
プロセッシングエレメントPE0は、オペランドのレジスタ番号、又はレジスタ番号変換部20で変換された後のレジスタ番号を用いて、レジスタファイル15にリード又はライトの動作を行う。したがって、本発明の並列演算プロセッサはSIMD構成でありながら、プロセッシングエレメント毎に異なるレジスタにアクセスすることができる。
以下に、プロセッシングエレメントPE0内の各構成部について詳しく説明する。
The processing element PE0 performs a read or write operation on the
Hereinafter, each component in the processing element PE0 will be described in detail.
レジスタ番号変換部20は、必要に応じてレジスタ番号を変換する。
レジスタファイル15は、指定されたレジスタから読み出したデータを出力する。また、r0〜r15の16本のレジスタから構成されており、各レジスタのビット幅は16ビットである。
論理和回路16は、ネットワーク30から送出された信号を受け取ると、論理和演算を行い、レジスタ番号変換部20にレジスタオフセット選択信号を出力する。
The register
The
When the
ネットワーク30は、レジスタファイル15から送出されたデータに対して演算を行い、演算結果をレジスタファイル15に送出する。
演算器ユニット40は、レジスタファイル15又はネットワーク30に対して演算を行い、演算結果をレジスタファイル15又はネットワーク30に送出する。図3は、演算器ユニット40の構成の一例を示している。図3に示すように演算器ユニット40は、算術論理演算器(ALU:Arithmetic Logic Unit)41aと、算術論理演算器41bと、バレルシフタ42と、乗算器43とを含む。
The
The
算術論理演算器41a、及び算術論理演算器41bは、加減算、AND/OR演算などを行う。
バレルシフタ42は、シフトを行う。
乗算器43は、乗算、及び除算等を行う。
なお、演算器ユニット40は、演算器同士のデータの入出力が可能な構成であってもよい。また、演算器ユニット40の構成は用途に応じて自由に決めることができる。
The
The
The
Note that the
続いて、レジスタ番号変換部20の構成について説明する。図4はレジスタ番号変換部20の構成を示す図である。図4に示すように、レジスタ番号変換部20は、レジスタオフセット値保持部21と、加減算器22と、モジュロ演算部23と、加減算器24と、セレクタ25とを含む。ここで、レジスタオフセット値とは、プログラムに記載され、命令デコーダ11から入力されるレジスタ番号と各プロセッシングエレメントで実際にリード又はライトを行うレジスタ番号の差分を表す値である。
Next, the configuration of the register
レジスタオフセット値保持部21は、レジスタオフセット値を保持するレジスタであり、プログラムによって書き換えることができる。
加減算器22は、必要に応じて命令デコーダ11より送出されるレジスタオフセット値の変化量とレジスタオフセット保持部28に保持されている値とを加算又は減算し、演算結果をモジュロ演算器30に送出する。
The register offset
The adder /
モジュロ演算器30は、加減算器22から送出された演算結果と命令デコーダ11より送出されるレジスタオフセットモジュロ値とをモジュロ演算し、結果をレジスタオフセット保持部28に送出する。これによりレジスタオフセット値の更新が可能となる。レジスタオフセット値の更新動作を行わない場合は、加減算器22およびモジュロ演算器30は動作しない。
The
加減算器24は、命令デコーダ11より送出されるレジスタ番号とレジスタオフセット値保持部21に保持されている値とを加算又は減算する。加減算の結果が0〜15の範囲をはずれる場合には、下位4ビットのみを出力し、必ず有効なレジスタ番号を出力する。
セレクタ25は、プログラム中に記載されているレジスタ番号と、加減算器24の出力のいずれかをレジスタオフセット選択信号にしたがって出力する。レジスタオフセット選択信号が“0”であれば、プログラム中に記載されているレジスタ番号を出力し、“1”であれば加減算器24の出力をレジスタ番号として出力する。本実施形態においては、レジスタオフセット選択信号は、リードするレジスタ番号に対してのみ使用し、ライトするレジスタ番号に対しては、レジスタオフセット選択信号は常に“1”とする。
The adder /
The
なお、レジスタ番号変換部20はリード又はライトするレジスタの数だけ持つことが可能であるが、必要に応じてその個数を制限してもよい。本実施形態では、バイト単位でアクセスし、ネットワーク2系統の入出力に使用するため、レジスタ番号変換部20は各プロセッシングエレメントに少なくとも8つ持つことになる。
続いて、ネットワーク30の構成について説明する。ここでネットワーク30aとネットワーク30bとは同様の構成であるので、ネットワーク30aについてのみ説明する。図5はプロセッシングエレメント間を接続するネットワーク30aの構成図である。図5に示すように、ネットワーク30aは、入力端子31と、入力端子32と、セレクト処理部50とを含む。また、説明のため、プロセッシングエレメントのMSB8ビットに相当する部分の構成要素をPE0HのようにHを付けて表し、LSB8ビットに相当する部分の構成要素をPE0LのようにLを付けて表す。入力端には16進数で番号が振られており、PE0Hから順に0x00、0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0a、0x0b、0x0c、0x0d、0x0e、0x0fとする。
Note that the register
Next, the configuration of the
入力端子31は、入力信号を取り込むための端子であり、レジスタファイル15から読み出したデータのMSB8ビットをネットワーク30aに取り込む。取り込まれたデータは、すべてのプロセッシングエレメントのセレクト処理部に送出される。
入力端子32は、入力信号を取り込むための端子であり、レジスタファイル15から読み出したデータのLSB8ビットをネットワーク30aに取り込む。取り込まれたデータは、すべてのプロセッシングエレメントのセレクト処理部に送出される。
The
The
図5では一部を省略しているが、PE0Hの入力端子31から入力されたデータは、PE0H、PE0LからPE7H、PE7Lまでのすべてのセレクト処理部に送出される。
セレクト処理部50は、入力された16個のデータから1個を選択し出力する。そして、PE0HとPE0Lのセレクト処理部の出力を合成して16ビットの形で出力する。
図6は、図5のセレクト処理部50の内部構成を具体的に示したネットワーク30aの一部を示す構成図である。図に示すようにネットワーク30aは、同一構成であるセレクト処理部を複数配したものであり、そのうちの一つを図7に示す。
Although part of the data is omitted in FIG. 5, the data input from the
The
FIG. 6 is a configuration diagram showing a part of the
図7はネットワーク30aのセレクト処理部50の構成図である。図7に示すように、セレクト処理部50は、16to1セレクタ51と、セレクト信号変換部60と、セレクタ52と、ネットワークパタンレジスタ53と、加減算器54とを含む。
16to1セレクタ51は、セレクト信号変換部60から送出されるセレクト信号にしたがって入力データから1つを選択し、選択されたデータを出力する。セレクト信号は、ネットワーク30aの入力端に付けられた0x00〜0x0fの値をとり、16to1セレクタ51は制御信号と同じ番号の入力データを出力する。
FIG. 7 is a configuration diagram of the
The 16 to 1
セレクト信号変換部60は、入力されたネットワークパタン値から、16to1セレクタ51の制御信号と、レジスタオフセット選択信号を生成する。そして16to1セレクタ51に制御信号を送出し、レジスタ番号変換部20にレジスタオフセット選択信号を送出する。
セレクタ52は、セレクト信号変換部60に入力するネットワークパタン値を選択するためのものであり、プログラム中に記載されている即値、指定されたレジスタ番号のレジスタ、ネットワークパタンレジスタ53で保持されている値のいずれかを命令によって選択する。
The select
The
ネットワークパタンレジスタ53は、16to1セレクタ51を制御するためのネットワークパタン値を保持するレジスタである。ここで、ネットワークパタン値とは、16to1セレクタ51を制御するための制御信号の値を表す。
加減算器54は、必要に応じて、ネットワークパタンレジスタ53で保持されている値と、外部から入力されるネットワークパタン値変化量とを加算又は減算し、ネットワークパタンレジスタ53に再度格納する。これによりネットワークパタン値の更新動作を行うことができる。ネットワークパタン値の更新動作を行わない場合は、加減算器54は動作しない。
The network pattern register 53 is a register that holds a network pattern value for controlling the 16 to 1
The adder /
図5、図6、及び図7に示すように各セレクト処理部毎にネットワークパタンレジスタを備えるので、全体としてネットワークパタンレジスタを16個備える。そして、命令のオペランドにネットワークパタン値変化量を指定すると、同時に全てのネットワークパタンレジスタに保持されているネットワークパタン値が更新される。
続いて、セレクト信号変換部60の構成について説明する。図8はセレクト信号変換部60の構成図である。図8に示すように、セレクト信号変換部60は、レジスタオフセット選択演算部61と、モジュロ演算部62と、飽和演算部63と、セレクタA64と、セレクタB65と、デマルチプレクサ66とを含む。
As shown in FIGS. 5, 6, and 7, each select processing unit is provided with a network pattern register, so that 16 network pattern registers are provided as a whole. When the network pattern value change amount is designated as the operand of the instruction, the network pattern values held in all the network pattern registers are updated at the same time.
Next, the configuration of the select
ここで、図中のPEモード信号は、命令デコーダ11より送出され、8PEモード又は4PEモードいずれかのモードをとり、レジスタオフセット選択演算部61、モジュロ演算部62、飽和演算部63はそれぞれモードによって動作を変える。また、動作モード信号は、命令デコーダ11より送出され、レジスタオフセット選択、モジュロ、飽和いずれかのモードをとり、セレクタA64およびセレクタB65によって、16to1セレクタ59及びデマルチプレクサ66への入力を選択する。
Here, the PE mode signal in the figure is sent from the
レジスタオフセット選択演算部61は、ネットワークパタン値を受け取ると、レジスタオフセット選択演算を行い、セレクト信号とレジスタオフセット選択信号を出力する。PEモード信号が8PEモードの場合、ネットワークパタン値の下位4ビットをセレクト信号とし、5ビット目をレジスタオフセット選択信号とする。PEモード信号が4PEモードの場合、PE0〜3では、ネットワークパタン値の下位3ビットをセレクト信号とし、セレクト信号の4ビット目はPE0〜3では“0”を、PE4〜7では“1”を代入する。したがって、PE4〜7ではセレクト信号はネットワークパタン値の下位3ビットに8を加算した値となる。また、ネットワークパタン値の4ビット目をレジスタオフセット選択信号とする。つまり4PEモードにおいては、PE0〜3、PE4〜7それぞれの間でのみデータの移動が行われる。
Upon receiving the network pattern value, the register offset
続いて、レジスタオフセット選択演算部61の具体的な動作について説明する。PEモード信号が8PEモードの場合の動作概要を図9(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはHighとLowの頭文字であり、それぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。つまり、それらはどのプロセッシングエレメントのHとLのどちらに帰属しているのかを識別する。図9(a)、図9(b)及び図9(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。ここで、ネットワークパタン値に関して、十の位はレジスタオフセット値を使用するか否かを示す。十の位が0なら、レジスタオフセット値を使用しないことを示す。レジスタオフセット値を使用しない場合は、レジスタオフセット選択信号出力は0になり、使用する場合は1になる。一の位はどのプロセッシングエレメントのHかLのどちらからデータを取ってくるかを指定する。また、8PEモードの場合、セレクト信号出力は0x00から0x0fの間の値となる。したがって、例えば、ネットワークパタン値が0x00では、セレクト信号出力は0x00になり、PE0Hからデータを取ってくる。また、レジスタオフセットは使用しないので、レジスタオフセット選択信号出力は0になる。同様に、ネットワークパタン値が0x01では、セレクト信号出力は0x01になり、PE0Lからデータを取ってくる。また、レジスタオフセットは使用しないので、レジスタオフセット選択信号出力は0になる。ネットワークパタン値が0x10では、セレクト信号出力は0x00になり、PE0Hからデータを取ってくる。また、レジスタオフセット選択信号出力は1になる。ネットワークパタン値が0xffでは、セレクト信号出力は0x0fになり、PE0Hからデータを取ってくる。レジスタオフセット選択信号出力は1になる。
Next, a specific operation of the register offset
図9(a)では、すべてのネットワークパタン値が0x00〜0x0fの範囲にあるので、レジスタオフセット選択演算部61がセレクト信号として下位4ビットをとると、セレクト信号はネットワークパタン値と同一になり、レジスタオフセット選択信号はすべて“0”になる。図9(b)では、ネットワークパタン値が図9(a)と比較して+2加算されている。ネットワークパタン値が0x00〜0x0fの範囲にある場合には、図9(a)と同様であり、ネットワークパタン値が0x0fより大きい場合には、レジスタオフセット選択演算部61はセレクト信号として、その下位4ビットをとり、レジスタオフセット選択信号は“1”になる。図9(c)では、ネットワークパタン値が図9(a)と比較して2減算されている。ネットワークパタン値が0x00〜0x0fの範囲にある場合には、図9(a)と同様であり、ネットワークパタン値が0x00より小さい場合には、レジスタオフセット選択演算部61はセレクト信号として、その下位4ビットをとり、レジスタオフセット選択信号は“1”になる。
In FIG. 9A, since all network pattern values are in the range of 0x00 to 0x0f, when the register offset
PEモード信号が4PEモードの場合の動作概要を図10(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図10(a)、図10(b)及び図10(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。ここで、ネットワークパタン値に関して、8PEモードの場合とは異なり、ネットワークパタン値が0x00から0x07の値をとる場合は、レジスタオフセット値を使用せず、レジスタオフセット選択信号出力は0になり、ネットワークパタン値が0x00より小さい場合、または0x07より大きい場合はレジスタオフセット値を使用し、レジスタオフセット選択信号出力は1になる。また、PE0からPE3ではセレクト信号出力は0x00から0x07の値をとり、PE4からPE7では0x08から0x0fの値をとる。したがって、例えば、PE0からPE3ではネットワークパタン値が0x08の場合、セレクト信号出力は0x00になり、PE0Hからデータを取ってくる。また、レジスタオフセット選択信号出力は1になる。 An outline of the operation when the PE mode signal is the 4PE mode is shown in FIGS. PE0 to PE7 in the figure indicate processing element numbers, and H and L indicate that each processing element stores a pixel value in units of half words. The first stage of FIG. 10A, FIG. 10B and FIG. 10C shows the network pattern value. The second stage shows the select signal output, and the third stage shows the register offset selection signal output. Here, regarding the network pattern value, unlike the case of 8PE mode, when the network pattern value takes a value from 0x00 to 0x07, the register offset selection signal output becomes 0 without using the register offset value, and the network pattern. When the value is smaller than 0x00 or larger than 0x07, the register offset value is used, and the register offset selection signal output becomes 1. Further, the select signal output takes values from 0x00 to 0x07 in PE0 to PE3, and takes values from 0x08 to 0x0f in PE4 to PE7. Therefore, for example, in PE0 to PE3, when the network pattern value is 0x08, the select signal output is 0x00, and data is fetched from PE0H. The register offset selection signal output is 1.
図10(a)では、すべてのネットワークパタン値が0x00〜0x07の範囲にあるので、レジスタオフセット選択演算部61がセレクト信号として下位3ビットをとると、PE0〜3ではセレクト信号はネットワークパタン値と同一になり、レジスタオフセット選択信号はすべて“0”になる。PE4〜7ではセレクト信号はネットワークパタン値の下位3ビットに8を加算した値となり、レジスタオフセット選択信号はすべて“0”になる。図10(b)では、ネットワークパタン値が図10(a)と比較して+1加算されている。ネットワークパタン値が0x00〜0x07の範囲にある場合には、図10(a)と同様である。PE0〜3については、ネットワークパタン値が0x07より大きい場合は、レジスタオフセット選択演算部61はセレクト信号として、その下位3ビットをとり、4ビット目には“0”が入る。レジスタオフセット選択信号は“1”になる。PE4〜7では、ネットワークパタン値が0x07より大きい場合は、レジスタオフセット選択演算部61はセレクト信号として、その下位3ビットをとり、4ビット目には“1”が入る。レジスタオフセット選択信号は“1”となる。図10(c)では、ネットワークパタン値が図10(a)と比較して2減算されている。ネットワークパタン値が0x00〜0x07の範囲にある場合には、図10(a)と同様である。PE0〜3については、ネットワークパタン値が0x00より小さい場合は、レジスタオフセット選択演算部61はセレクト信号として、その下位3ビットをとり、4ビット目には“0”が入る。レジスタオフセット選択信号は“1”になる。PE4〜7では、ネットワークパタン値が0x00より小さい場合は、レジスタオフセット選択演算部61はセレクト信号として、その下位3ビットをとり、4ビット目には“1”が入る。レジスタオフセット選択信号は“1”になる。
In FIG. 10A, since all network pattern values are in the range of 0x00 to 0x07, if the register offset
モジュロ演算部62は、ネットワークパタン値を受け取ると、モジュロ演算を行い、セレクト信号とレジスタオフセット選択信号を出力する。PEモード信号が8PEモードの場合、ネットワークパタン値の下位4ビットをセレクト信号とし、レジスタオフセット選択信号は常に“1”とする。いずれの場合においても、ネットワークパタン値によらず常に下位4ビットをセレクト信号とし、レジスタオフセット選択信号は常に“1”とする。PEモード信号が4PEモードの場合は、PE0〜3では、ネットワークパタン値の下位3ビットをセレクト信号とし、セレクト信号の4ビット目はPE0〜3では“0”を、PE4〜7では“1”を代入する。レジスタオフセット選択信号は常に“1”とする。いずれの場合においても、ネットワークパタン値によらず常に下位3ビットをセレクト信号とし、セレクト信号の4ビット目はPE0〜3では“0”を、PE4〜7では“1”を代入する。レジスタオフセット選択信号は常に“1”とする。
Upon receiving the network pattern value, the
続いて、モジュロ演算部62の具体的な動作について説明する。PEモード信号が8PEモードの場合の動作概要を図11(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図11(a)、図11(b)及び図11(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。図11(a)、図11(b)、図11(c)では、いずれの場合においても、ネットワークパタン値によらず常に下位4ビットがセレクト信号になり、レジスタオフセット選択信号は常に“1”になる。
Next, a specific operation of the modulo
PEモード信号が4PEモードの場合の動作概要を図12(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図12(a)、図12(b)及び図12(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。図12(a)、図12(b)、図12(c)では、ネットワークパタン値によらず常に下位3ビットがセレクト信号になり、セレクト信号の4ビット目はPE0〜3では“0”を、PE4〜7では“1”を代入する。レジスタオフセット選択信号は常に“1”になる。 An outline of the operation when the PE mode signal is the 4PE mode is shown in FIGS. PE0 to PE7 in the figure indicate processing element numbers, and H and L indicate that each processing element stores a pixel value in units of half words. The first stage of FIG. 12A, FIG. 12B and FIG. 12C shows network pattern values. The second stage shows the select signal output, and the third stage shows the register offset selection signal output. 12 (a), 12 (b), and 12 (c), the lower 3 bits are always the select signal regardless of the network pattern value, and the fourth bit of the select signal is “0” in PE0-3. In PE4-7, "1" is substituted. The register offset selection signal is always “1”.
飽和演算部63は、ネットワークパタン値を受け取ると、飽和演算を行い、セレクト信号とレジスタオフセット選択信号を出力する。PEモード信号が8PEモードの場合、ネットワークパタン値が0より小さい場合は0を、0x0fより大きい場合は0x0fをセレクト信号とし、いずれでもない場合はネットワークパタン値の下位4ビットをセレクト信号とする。そして、レジスタオフセット選択信号はこの変換を行った後の5ビット目の値とする。本実施形態では0x00及び0x0fで飽和するので、レジスタオフセット選択信号は常に“0”になる。PEモード信号が4PEモードの場合、PE0〜3ではネットワークパタン値が0x00より小さい場合は0x00を、0x07より大きい場合は0x07をセレクト信号とし、いずれでもない場合は下位3ビットをセレクト信号とする。レジスタオフセット選択信号は、変換後のネットワークパタン値の4ビット目とする。本実施形態では0x00及び0x07で飽和するので、レジスタオフセット選択信号は常に“0”になる。また、セレクト信号の4ビット目は常に“0”を代入する。PE4〜7ではネットワークパタン値が0x00より小さい場合は0x08を、0x07より大きい場合は0x0fをセレクト信号とし、いずれでもない場合は下位3ビットをセレクト信号とする。レジスタオフセット選択信号は、変換後のネットワークパタン値の4ビット目とする。本実施形態では0x08及び0x0fで飽和するので、レジスタオフセット選択信号は常に“0”になる。また、セレクト信号の4ビット目は常に“1”を代入する。
Upon receiving the network pattern value, the
続いて、飽和演算部63の具体的な動作について説明する。PEモード信号が8PEモードの場合の動作概要を図13(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図13(a)、図13(b)及び図13(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。図13(a)では、すべてのネットワークパタン値が0x00〜0x0fの範囲にあるので、セレクト信号はネットワークパタン値と同一になる。レジスタオフセット選択信号はすべて“0”になる。図13(b)では、ネットワークパタン値が0x00〜0x0fの範囲にある場合には、図13(a)と同様である。PE7H及びPE7Lでは、ネットワークパタン値が0x0fより大きいので、セレクト信号は0x0fになる。レジスタオフセット選択信号はすべて“0”になる。図13(c)では、ネットワークパタン値が0x00〜0x0fの範囲にある場合には、図13(a)と同様である。PE0H及びPE0Lでは、ネットワークパタン値が0x00より小さい場合ので、セレクト信号は0x00になる。レジスタオフセット選択信号はすべて“0”になる。
Next, a specific operation of the
PEモード信号が4PEモードの場合の動作概要を図14(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図14(a)、図14(b)及び図14(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。図14(a)では、すべてのネットワークパタン値が0x00〜0x07の範囲にあるので、PE0〜3ではセレクト信号はネットワークパタン値と同一になる。レジスタオフセット選択信号はすべて“0”になる。PE4〜7ではセレクト信号はネットワークパタン値の下位3ビットに8を加算した値となり、レジスタオフセット選択信号はすべて“0”になる。図14(b)では、ネットワークパタン値が0x00〜0x07の範囲にある場合には、図14(a)と同様である。PE0〜3について、PE3Lのネットワークパタン値が0x07より大きい場合ので、セレクト信号は0x07になる。PE4〜7では、PE7Lのネットワークパタン値が0x07より大きい場合ので、セレクト信号は0x0fになる。レジスタオフセット選択信号はすべて“0”になる。図14(c)では、ネットワークパタン値が0x00〜0x07の範囲にある場合には、図14(a)と同様である。PE0〜3については、PE0H及びPE0Lでは、ネットワークパタン値が0x00より小さい場合ので、セレクト信号は0x00になる。PE4〜7については、PE4H及びPE4Lでは、ネットワークパタン値が0x00より小さい場合ので、セレクト信号は0x08になる。レジスタオフセット選択信号はすべて“0”になる。 14A to 14C show an outline of the operation when the PE mode signal is the 4PE mode. PE0 to PE7 in the figure indicate processing element numbers, and H and L indicate that each processing element stores a pixel value in units of half words. The first stage of FIG. 14A, FIG. 14B, and FIG. 14C shows network pattern values. The second stage shows the select signal output, and the third stage shows the register offset selection signal output. In FIG. 14A, since all network pattern values are in the range of 0x00 to 0x07, the select signal is the same as the network pattern value in PE0 to PE3. All register offset selection signals are “0”. In PE4-7, the select signal is a value obtained by adding 8 to the lower 3 bits of the network pattern value, and the register offset selection signals are all "0". FIG. 14B is the same as FIG. 14A when the network pattern value is in the range of 0x00 to 0x07. For PE0 to PE3, since the network pattern value of PE3L is larger than 0x07, the select signal becomes 0x07. In PE4-7, since the network pattern value of PE7L is larger than 0x07, the select signal becomes 0x0f. All register offset selection signals are “0”. FIG. 14C is the same as FIG. 14A when the network pattern value is in the range of 0x00 to 0x07. Regarding PE0 to PE3, in PE0H and PE0L, the select signal is 0x00 because the network pattern value is smaller than 0x00. Regarding PE4-7, in PE4H and PE4L, the select signal is 0x08 because the network pattern value is smaller than 0x00. All register offset selection signals are “0”.
セレクタA64は、16to1セレクタ51に出力する制御信号を選択する。
セレクタB65は、デマルチプレクサ66に出力する値を選択する。
デマルチプレクサ66は、セレクト信号と一致する番号のプロセッシングエレメントに出力されるレジスタオフセット選択信号のみをセレクタB65の出力と接続し、他のレジスタオフセット選択信号は“0”にする。
The selector A64 selects a control signal to be output to the
The selector B65 selects a value to be output to the
The
図15は演算部とセレクタの回路図である。ここで図中のbit[x:y]は下位yビットからxビットまでのビットを示す。bit[z]は下位からzビット目を示す。まず、ネットワークパタンレジスタより8bitのネットワークパタン値が送出される。モジュロ演算部はネットワークパタン値を受け取ると、上位4bitを0001に変えて下位4bitはそのまま出力する。飽和演算部はネットワークパタン値を受け取ると、上位4bitが0001ならば0x0fを出力する。上位4bitが1110ならば0x00を出力する。それ以外ならそのまま出力する。セレクタAは下位の4bit のみをセレクトする。セレクタBは5bit 目のみをセレクトする。 FIG. 15 is a circuit diagram of the calculation unit and the selector. Here, bit [x: y] in the figure indicates bits from the lower y bits to the x bits. bit [z] indicates the z-th bit from the lower order. First, an 8-bit network pattern value is transmitted from the network pattern register. When receiving the network pattern value, the modulo arithmetic unit changes the upper 4 bits to 0001 and outputs the lower 4 bits as they are. When receiving the network pattern value, the saturation calculation unit outputs 0x0f if the upper 4 bits are 0001. If the upper 4 bits are 1110, 0x00 is output. Otherwise, it is output as it is. Selector A selects only the lower 4 bits. Selector B selects only the 5th bit.
続いて、図16はセレクト処理部50とレジスタ番号変換部20の接続を示す構成図である。図16に示すように、セレクト処理部50とレジスタ番号変換部20の間に16入力1出力の論理和回路16を備える。
セレクト処理部50から出力されたレジスタオフセット選択信号は、PE0HからPE7Lに備えられた論理和回路に入力され、論理和演算が行われ、何れかからのレジスタオフセット選択信号がレジスタオフセット選択を示していれば“1”をレジスタ番号変換部20に出力し、そうでなければ“0”を出力する。
FIG. 16 is a block diagram showing the connection between the
The register offset selection signal output from the
続いて、このような構成を持つ並列演算プロセッサで使用されるネットワーク動作命令の1つであるネットワークセレクト命令の動作について図17を用いて説明する。図17は、命令デコーダ11とプロセッシングエレメントPE0Hの構成図である。
命令デコーダ11は、レジスタオフセット変化量レジスタ80aと、レジスタオフセット変化量レジスタ80bと、レジスタオフセットモジュロ値レジスタ81と、PEモードレジスタ82と、動作モードレジスタ83とを含む。
Next, the operation of the network select instruction, which is one of the network operation instructions used in the parallel arithmetic processor having such a configuration, will be described with reference to FIG. FIG. 17 is a configuration diagram of the
The
レジスタオフセット変化量レジスタ80aは、リード用のレジスタオフセット変化量を格納しているレジスタである。
レジスタオフセット変化量レジスタ80bは、ライト用のレジスタオフセット変化量を格納しているレジスタである。
レジスタオフセットモジュロ値レジスタ81は、リードライト兼用のレジスタオフセットモジュロ値を格納しているレジスタである。
The register offset
The register offset
The register offset modulo value register 81 stores a register offset modulo value that is also used for reading and writing.
PEモードレジスタ82は、8PEモード、4PEモードの何れかのモードを示すレジスタである。
動作モードレジスタ83は、レジスタオフセット選択、モジュロ、飽和いずれかのモードを示すレジスタである。
プロセッシングエレメントPE0Hは、リード用のレジスタ番号変換部20aと、ライト用のレジスタ番号変換部20bと、レジスタファイル15と、論理和回路16と、セレクト処理部50と、演算器ユニット40を含む。
The PE mode register 82 is a register indicating one of the 8PE mode and the 4PE mode.
The
The processing element PE0H includes a read register
レジスタ番号変換部20aは、論理和回路16からのレジスタオフセット選択信号にしたがい、レジスタ番号をそのまま使用するか、レジスタ番号にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。
レジスタ番号変換部20bは、オペランドに書かれたレジスタ番号を変換し、変換された番号のレジスタに、ネットワークによるデータ選択の結果出力されたデータを格納する。
The register
The register
次に、動作について説明する。ネットワークセレクト命令の書式を以下に示す。
nsel.a <dst>,<src>,<ネットワークパタンレジスタ>
nsel.aの“.a”は2系統あるネットワークのうち、ネットワーク30aを使用することを示す。<dst>は出力先レジスタ、<src>は入力元レジスタ、<ネットワークパタンレジスタ>は使用するネットワークパタン値を保持するネットワークパタンレジスタを指定する。このnsel.a命令の実際の記述の一例を以下に示し、その動作を説明する。
Next, the operation will be described. The format of the network select command is shown below.
nsel. a <dst>, <src>, <network pattern register>
nsel. “.a” in a indicates that the
nsel.a r2,r0,NPA
このnsel.a命令では、オペランドのr0が命令デコーダ11によって、レジスタ番号変換部20に入力される。nsel.a命令ではレジスタオフセット更新動作はしないので、レジスタオフセット変化量レジスタ80およびレジスタオフセットモジュロ値レジスタ81は使用しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r0をそのまま使用するか、r0にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。NPAはネットワークパタンレジスタ53を指すオペランドである。オペランドのNPAは、セレクト処理部のネットワークパタンレジスタ53によって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号の動作が行われることを示す。nsel.a命令では、ネットワークパタン値の更新は行わないので、ネットワークパタン値変化量は使用しない。ネットワークによるデータ選択の結果出力されたデータは、オペランドに書かれたr2をレジスタ番号変換部20bで変換した番号のレジスタに格納される。
nsel. a r2, r0, NPA
This nsel. In the a instruction, the operand r0 is input to the register
次に、NPAの格納値の一例と、そのときの動作を図18、図19に示す。図18の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は入力データr0を示す。第七段は出力データr2を示す。図19の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は入力データr1を示す。第七段は入力データr0を示す。第八段は出力データr2を示す。図18、図19では、PE動作モードレジスタは8PEモード、動作モードレジスタはレジスタオフセット選択に設定されており、リード用レジスタオフセット値は全てのプロセッシングエレメントで0x01が、ライト用レジスタオフセット値は全てのプロセッシングエレメントで0x00が設定されているものとする。図18は、ネットワークパタン値として01、00、03、02...0f、0eを用いた場合の入出力を示しており、x00、x01...x15はデータを表している。図9の説明で述べたように、ネットワークパタン値に関して、十の位はレジスタオフセット値を使用するか否かを示す。十の位が0なら、レジスタオフセット値を使用しないことを示す。一の位はどのプロセッシングエレメントのHかLのどちらからデータを取ってくるかを指定する。したがって、例えば、ネットワークパタン値が01では、レジスタオフセットは使用しないことを示し、またr0のPE0Lからデータを取ってくることを示す。同様に、ネットワークパタン値が00では、レジスタオフセットは使用せず、r0のPE0Hからデータを取ってくることを示す。 Next, an example of the stored value of the NPA and the operation at that time are shown in FIGS. The first stage of FIG. 18 shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value. The fifth row shows network pattern values stored in the NPA. The sixth row shows the input data r0. The seventh row shows output data r2. The first stage of FIG. 19 shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value. The fifth row shows network pattern values stored in the NPA. The sixth row shows the input data r1. The seventh row shows the input data r0. The eighth row shows output data r2. 18 and 19, the PE operation mode register is set to 8PE mode, the operation mode register is set to register offset selection, the read register offset value is 0x01 in all processing elements, and the write register offset value is all It is assumed that 0x00 is set in the processing element. 18 shows network pattern values 01, 00, 03, 02. . . The input / output when 0f and 0e are used is shown, and x00, x01. . . x15 represents data. As described in the description of FIG. 9, the tens place indicates whether or not the register offset value is used in the network pattern value. If the tens place is 0, it indicates that the register offset value is not used. The first digit specifies from which processing element H or L data is taken. Therefore, for example, when the network pattern value is 01, this indicates that the register offset is not used, and that data is fetched from PE0L of r0. Similarly, when the network pattern value is 00, the register offset is not used and data is fetched from PE0H of r0.
よって、このようなパタンの場合、図18に示すように各プロセッシングエレメントのMSB8ビットとLSB8ビットが入れ替わるように動作する。
図19は、ネットワークパタン値として11、00、13、02...1f、0eを用いた場合の入出力を示しており、x00、x01...x15はデータを表している。このとき、ネットワークは各プロセッシングエレメントのMSBバイトとLSBバイトが入れ替わるように動作するが、図18と異なり、例えばネットワークパタン値が11の場合には、PE0HにはPE0Lのレジスタオフセットを加えたレジスタr1のデータがr2に出力される。ネットワークパタン値が00の場合には、図18と同様に、レジスタオフセットは使用せず、r0のデータがr2に出力される。
Therefore, in the case of such a pattern, as shown in FIG. 18, the
19 shows network pattern values 1 1, 00, 13, 02. . . The input / output when 1f and 0e are used is shown, and x00, x01. . . x15 represents data. At this time, the network operates so that the MSB byte and the LSB byte of each processing element are interchanged. However, unlike FIG. 18, for example, when the network pattern value is 11, the register r1 is obtained by adding the register offset of PE0L to PE0H. Is output to r2. When the network pattern value is 00, the register offset is not used and the data of r0 is output to r2, as in FIG.
次に、nsel.a命令の別の書式を示す。
nsel.a <dst>,<src>,<即値>
nsel.a命令の“.a”は2系統あるネットワークのうち、ネットワーク30aを使用することを示し、<dst>は出力先レジスタ、<src>は入力元レジスタ、<即値>は数値を指定する。このnsel.a命令の実際の記述の一例を以下に示し、その動作を説明する。
Next, nsel. Fig. 5 shows another format of the a instruction.
nsel. a <dst>, <src>, <immediate value>
nsel. The “.a” of the a instruction indicates that the
nsel.a r2,r0,0x4
このnsel.a命令では、オペランドのr0が命令デコーダ11によって、レジスタ番号変換部20に入力される。nsel.a命令ではレジスタオフセット更新動作はしないので、レジスタオフセット変化量レジスタ80およびレジスタオフセットモジュロ値レジスタ81は使用しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r0をそのまま使用するか、r0にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。オペランドの0x4は、全てのプロセッシングエレメントのネットワークパタン値が0x4であるとして、ネットワークによるデータの選択動作および、レジスタオフセット選択信号の動作が行われることを示している。nsel.a命令では、ネットワークパタン値の更新は行わないので、ネットワークパタン値変化量は使用しない。0x04の場合は、8PEモードであれば、PE2Hのr0のデータがすべてのプロセッシングエレメントに出力され、オペランドに書かれたr2をレジスタ番号変換部20bで変換した番号のレジスタに格納されるが、ライト用のレジスタオフセット値が0であるので、オペランドと同じr2に格納される。
nsel. a r2, r0,0x4
This nsel. In the a instruction, the operand r0 is input to the register
続いて、ネットワークシフト命令について説明する。ネットワークシフト命令の書式を以下に示す。
nsfti.a <dst>,<src>,<ネットワークパタンレジスタ>,<ネットワークパタン値変化量>
nsfti.a命令の“.a”は2系統あるネットワークのうち、ネットワーク30aを使用することを示し、<dst>は出力先レジスタ、<src>は入力元レジスタ、<ネットワークパタンレジスタ>はデータの移動に使用するネットワークパタンレジスタ、<ネットワークパタン値変化量>はデータの移動後のネットワークパタン値に加算する値を指定する。このnsfti.a命令の実際の記述の一例を以下に示し、その動作を説明する。
Next, the network shift command will be described. The format of the network shift instruction is shown below.
nsfti. a <dst>, <src>, <network pattern register>, <network pattern value change amount>
nsfti. The “.a” of the a instruction indicates that the
nsfti.a r2,r0,NPA,0x1
本実施形態では、レジスタオフセット変化量レジスタ80およびレジスタオフセットモジュロ値レジスタ81は使用しない。また、PEモードレジスタ82は8PEモード、動作モードレジスタ83はレジスタオフセット値選択モードに設定されているものとする。
このnsfti.a命令では、オペランドのr0が命令デコーダ11によって、レジスタ番号変換部20に入力される。nsfti.a命令ではレジスタオフセットは更新しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r0をそのまま使用するか、r0にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。オペランドのNPAは、セレクト処理部50のネットワークパタンレジスタ53によって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号のセレクト動作が行われることを示している。オペランドの0x1はネットワークパタン値変化量を指し、データのセレクトと同時に、NPAの値をすべてのPEで1加算する。そして、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bで変換した番号のレジスタに格納される。
nsfti. a r2, r0, NPA, 0x1
In this embodiment, the register offset change amount register 80 and the register offset modulo value register 81 are not used. It is assumed that the PE mode register 82 is set to the 8PE mode and the
This nsfti. In the a instruction, the operand r0 is input to the register
図47に命令シーケンスを示す。図47の(a)、(b)では、nsfti.a命令が発行されることを示している。この命令のシーケンスに合わせたネットワーク30aの動作を図20に示す。図20にnsfti.a命令を発行した時のデータの動きを示す。図20(a)の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は入力データr1を示す。第七段は入力データr0を示す。第八段は出力データr2を示す。図20(b)の第一段はNPAに格納されているネットワークパタン値を示す。第二段は入力データr1を示す。第三段は入力データr0を示し、第四段は出力データr2を示す。x00からx31は水平方向に並ぶ画素データである。NPAの初期値として01、00、03、02...0f、0eというネットワークパタン値を設定し、レジスタオフセットに0x01という値を設定する。図18と同様に図20(a)では、x01、x00、x03...x14のデータが出力され、同時にNPAの値が+1更新される。次に、図47(b)の2度目のnsfti.a命令によって、図20(b)のように、x02、x01、x04...x15のデータが出力され、NPAの値が+1更新される。また、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bでレジスタ番号を変換されるが、ライト用のレジスタオフセット値が0であるので、オペランドと同じr2に格納される。
FIG. 47 shows an instruction sequence. 47 (a) and 47 (b), nsfti. The a instruction is issued. The operation of the
以上のように本実施形態によれば、各プロセッシングエレメントはネットワークパタン値に従い、データ転送を実行するのと同時に、ネットワークパタン値に対し命令に基づく演算を行い、ネットワークパタン値を更新する。よって、任意のプロセッシングエレメント間でデータ転送が可能となり、また、データ転送を行う度に命令オペランド中に即値でネットワークパタン値を与える必要はなく、SIMDプロセッサに対するプログラミングにあたってのコードサイズを削減することができる。 As described above, according to the present embodiment, each processing element executes data transfer according to the network pattern value, and at the same time, performs an operation based on the command on the network pattern value to update the network pattern value. Therefore, it is possible to transfer data between arbitrary processing elements, and it is not necessary to provide an immediate network pattern value in the instruction operand every time data is transferred, and the code size for programming the SIMD processor can be reduced. it can.
(第二実施形態)
本実施形態は、並列演算プロセッサをFIRフィルタ処理に応用する場合の改良に関する。FIRフィルタは、雑音除去などのためにしばしば利用されるフィルタであり、隣接するデータに積和演算を施すことにより実現される。本実施形態では、対称係数のFIRの場合について示す。
(Second embodiment)
The present embodiment relates to an improvement when a parallel arithmetic processor is applied to FIR filter processing. The FIR filter is a filter often used for noise removal and the like, and is realized by performing a product-sum operation on adjacent data. In the present embodiment, the case of FIR with a symmetric coefficient is shown.
FIRフィルタの演算方法を図21に示す。図21のデータx16に着目する。図21(a)においてx16へのFIRフィルタ演算は、x16に係数c0を乗算した結果と、x16の隣接データであるx15とx17を加算後、係数c1と乗算した結果と、x16の隣接データであるx14とx18を加算後、係数c2を乗算した結果とをすべて加算することによって行うことが出来る。 The calculation method of the FIR filter is shown in FIG. Focus on data x16 in FIG. In FIG. 21 (a), the FIR filter operation on x16 is based on the result of multiplying x16 by the coefficient c0, the result of adding x15 and x17, which are adjacent data of x16, and the coefficient c1, and the adjacent data of x16. After adding a certain x14 and x18, the result obtained by multiplying the coefficient c2 can be added.
また、図21(b)、図21(c)に示すようにx17、x18についても同様に隣接データを利用してFIRフィルタの演算が行われる。x16のFIR演算と、x17のFIR演算とを比べると、x17の演算はx16の演算と比べて使用するデータがすべて1データ分だけ右側に寄っている。x18の演算はさらに1データ分右側に寄っている。
したがって、あるときにx16、x17、x18...のデータをそれぞれのプロセッシングエレメントの演算器に供給し、c0と乗算する。次にx17、x18、x19...及びx15、x16、x17...のデータをそれぞれのプロセッシングエレメントの演算器に供給し、加算後c1と乗算する。次にx18、x19、x20...及びx14、x15、x16...をそれぞれのプロセッシングエレメントの演算器に供給し、加算後c2と乗算する。これらの乗算結果を加算することによりFIR演算をプロセッシングエレメントの数だけ並列に処理することができる。
Further, as shown in FIGS. 21B and 21C, the calculation of the FIR filter is similarly performed for x17 and x18 using adjacent data. Comparing the x16 FIR calculation and the x17 FIR calculation, the x17 calculation is shifted to the right by one data amount compared to the x16 calculation. The calculation of x18 is further to the right by one data.
Therefore, at some point x16, x17, x18. . . Are supplied to the arithmetic unit of each processing element and multiplied by c0. Next, x17, x18, x19. . . And x15, x16, x17. . . Is supplied to the arithmetic unit of each processing element, and after addition, it is multiplied by c1. Next, x18, x19, x20. . . And x14, x15, x16. . . Is supplied to the arithmetic unit of each processing element, and after addition, it is multiplied by c2. By adding these multiplication results, FIR operations can be processed in parallel by the number of processing elements.
このようなデータ供給が第一実施形態に示した構成によって可能となることを、図17を用いて説明する。FIR演算ではネットワークシフト命令を使用する。ネットワークシフト命令の実際の記述の一例を以下に示し、その動作を説明する。
nsfti.a r3,r1,NPA,0x1
本実施形態では、ネットワーク30a、30bいずれもレジスタオフセット変化量レジスタ80およびレジスタオフセットモジュロ値レジスタ81は使用しない。また、PEモードレジスタ82は8PEモード、動作モードレジスタ83はレジスタオフセット値選択モードに設定されているものとする。
The fact that such data supply is possible with the configuration shown in the first embodiment will be described with reference to FIG. The FIR operation uses a network shift instruction. An example of the actual description of the network shift instruction is shown below, and its operation will be described.
nsfti. a r3, r1, NPA, 0x1
In this embodiment, neither the
このnsfti.a命令では、オペランドのr1が命令デコーダ11によって、レジスタ番号変換部20に入力される。nsfti.a命令ではレジスタオフセットは更新しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r1をそのまま使用するか、r1にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。NPAはネットワークパタンレジスタを指すオペランドである。オペランドのNPAは、セレクト処理部50のネットワークパタンレジスタ53によって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号のセレクト動作が行われることを示している。オペランドの0x1はネットワークパタン値変化量を指し、データのセレクトと同時に、NPAの値をすべてのPEで1加算する。そして、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bで変換した番号のレジスタに格納される。
This nsfti. In the a instruction, the r1 of the operand is input to the register
次に、ネットワークシフト命令のもう1つの形式を示す。
nsftd.b <dst>,<src>,<ネットワークパタンレジスタ>,<ネットワークパタン値変化量>
nsftd.b命令の“.b”は2系統あるネットワークのうち、ネットワーク30bを使用することを示し、<dst>は出力先レジスタ、<src>は入力元レジスタ、<ネットワークパタンレジスタ>はデータの移動に使用するネットワークパタンレジスタ、<ネットワークパタン値変化量>はデータの移動後のネットワークパタン値に減算する値を指定する。このnsftd.b命令の実際の記述の一例を以下に示し、その動作を説明する。
The following is another form of network shift instruction.
nsftd. b <dst>, <src>, <network pattern register>, <network pattern value change amount>
nsftd. “.b” of the b instruction indicates that the
nsftd.b r4,r1,NPB,0x1
このnsftd.b命令では、オペランドのr1が命令デコーダ11によって、レジスタ番号変換部20に入力される。nsftd.b命令ではレジスタオフセットは更新しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r1をそのまま使用するか、r1にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。NPBはネットワークパタンレジスタを指すオペランドである。オペランドのNPBは、セレクト処理部50bのネットワークパタンレジスタ53bによって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号のセレクト動作が行われることを示している。オペランドの0x1はネットワークパタン値変化量を指し、データのセレクトと同時に、NPBの値をすべてのプロセッシングエレメントで1減算する。そして、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bで変換した番号のレジスタに格納される。ここで、セレクト処理部50b及びネットワークパタンレジスタ53bは、プロセッシングエレメントPE0のネットワーク30bに含まれるセレクト処理部及びネットワークパタンレジスタを指す。
nsftd. b r4, r1, NPB, 0x1
This nsftd. In the b instruction, r1 of the operand is input to the register
このnsfti.a命令と、nsftd.b命令を同時に発行することによって、FIRフィルタの演算が行えることを示す。図48にFIRフィルタ演算を行うための、命令シーケンスを示す。図48の(a)〜(c)では、nsfti.a命令とnsftd.b命令が同時に発行されることを示している。この命令のシーケンスに合わせたネットワーク30a、30bの動作をそれぞれ図22と図23に示す。図22にnsfti.a命令を発行した時のデータの動きを示す。図22(a)の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は入力データr2を示す。第七段は入力データr1を示す。下第八段は出力データr3を示す。図22(b)、図22(c)の第一段はNPAに格納されているネットワークパタン値を示す。第二段は入力データr2を示す。第三段は入力データr1を示す。第四段は出力データを示す。x16からx47は水平方向に並ぶ画素データである。NPAの初期値として00、01、02、03...0fというネットワークパタン値を設定し、レジスタオフセットに0x01という値を設定する。図48(a)の1度目のnsfti.a命令によって、図22(a)のように、x16、x17、x18...x31のデータが出力され、同時にNPAの値が+1更新される。次に、図22(b)ではネットワークパタン値は1度目のnsfti.a命令によって+1更新されているので01、02、03...0f、10となっている。ここで、PE7Lのネットワークパタン値は10であるので、PE7LにはPE0Hのオフセットを加えたレジスタr2のデータがr3に出力される。よって、図48(b)の2度目のnsfti.a命令によって、図22(b)のように、x17、x18、x19...x32のデータが出力され、NPAの値が+1更新される。さらに、図48(c)の3度目のnsfti.a命令によって、図22(c)のように、x18、x19、x20...x33のデータが出力され、NPAの値が+1更新される。このようにnsfti.a命令を発行するたびに次々に右側の隣接データが各プロセッシングエレメントに出力される。また、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bでレジスタ番号を変換されるが、ライト用のレジスタオフセット値が0であるので、オペランドと同じr3に格納される。
This nsfti. a instruction and nsftd. It indicates that the FIR filter can be operated by issuing the b instruction simultaneously. FIG. 48 shows an instruction sequence for performing the FIR filter operation. 48 (a) to (c), nsfti. a instruction and nsftd. The b instruction is issued simultaneously. The operations of the
このとき、各プロセッシングエレメントがアクセスするレジスタは図22の斜線部で示すように、それぞれr1又はr2であり、バイト単位に見た場合、読み出すレジスタの数は1つだけである。
図23にnsftd.b命令を発行した時のデータの動きを示す。図23(a)の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPBに格納されているネットワークパタン値を示す。第六段は入力データr0を示す。第七段は入力データr1を示す。下第八段は出力データr4を示す。図23(b)、図23(c)の第一段はNPBに格納されているネットワークパタン値を示す。第二段は入力データr0を示す。第三段は入力データr1を示す。第四段は出力データr4を示す。x00からx31は水平方向に並ぶ画素データである。NPBの初期値として00,01,02,03...0fというネットワークパタン値を設定し、レジスタオフセットに0x0fという値を設定する。図48(a)の1度目のnsftd.b命令によって、図23(a)のように、x16、x17、x18...x31のデータが出力され、同時にNPBの値が−1更新される。次に、図48(b)の2度目のnsftd.b命令によって、図23(b)のように、x15、x16、x17...x30のデータが出力され、NPBの値が−1更新される。さらに、図48(c)の3度目のnsftd.b命令によって、図23(c)のように、x14、x15、x16...x29のデータが出力され、NPBの値が−1更新される。このようにnsftd.b命令を発行するたびに次々に左側の隣接データが各プロセッシングエレメントに出力される。また、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bでレジスタ番号を変換されるが、ライト用のレジスタオフセット値が0であるので、オペランドと同じr4に格納される。
At this time, the registers accessed by the respective processing elements are r1 or r2, respectively, as indicated by the hatched portion in FIG. 22, and only one register is read when viewed in byte units.
FIG. 23 shows nsftd. The data movement when the b instruction is issued is shown. The first stage of FIG. 23A shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value. The fifth row shows network pattern values stored in the NPB. The sixth row shows the input data r0. The seventh row shows the input data r1. The lower eighth row shows output data r4. The first stage of FIG. 23B and FIG. 23C shows the network pattern values stored in the NPB. The second stage shows input data r0. The third row shows the input data r1. The fourth row shows the output data r4. x00 to x31 are pixel data arranged in the horizontal direction. 00, 01, 02, 03. as the initial value of NPB. . . A network pattern value of 0f is set, and a value of 0x0f is set to the register offset. The first nsftd. Of FIG. As shown in FIG. 23A, x16, x17, x18. . . The data of x31 is output, and at the same time, the value of NPB is updated by -1. Next, the second nsftd. By the b instruction, as shown in FIG. 23B, x15, x16, x17. . . x30 data is output and the value of NPB is updated by -1. Further, the third nsftd. As shown in FIG. 23C, x14, x15, x16. . . x29 data is output, and the value of NPB is updated by -1. Thus, nsftd. Each time the b instruction is issued, the adjacent data on the left is successively output to each processing element. The data output as a result of data selection by the network is converted in register number by the register
このとき、各プロセッシングエレメントがアクセスするレジスタは図23の斜線部で示すようにそれぞれr1又はr0であり、バイト単位のプロセッシングエレメント毎にみた場合、読み出すレジスタの数は1つだけである。
図48(a)、(b)、(c)それぞれにおいて、ネットワーク30a、ネットワーク30bそれぞれがr3、r4に出力する値を、図48(a)、(b)、(c)毎に演算器ユニット40に入力し、加算演算と積和演算を繰り返すことにより、各プロセッシングエレメントでFIRフィルタ演算を並列に実行することができる。
At this time, the registers accessed by each processing element are r1 or r0 as shown by the shaded portion in FIG. 23, and only one register is read when viewed for each processing element in byte units.
48 (a), (b), and (c), the values output to r3 and r4 by the
以上のように本実施形態によれば、ネットワークパタン値によって、読み出すレジスタを選択することにより、並列にFIRフィルタの演算が行える。また、データ供給のためのレジスタの読み出しを各ネットワークについて1つ、あわせて2つでFIRフィルタ演算が行えるようになり、並列処理プロセッサにおいてレジスタファイルのハードウェア規模の削減を図ることができる。 As described above, according to the present embodiment, FIR filter operations can be performed in parallel by selecting a register to be read based on a network pattern value. In addition, the FIR filter operation can be performed by reading out the registers for supplying data one by two for each network, and the hardware scale of the register file can be reduced in the parallel processor.
なお、図48においては、ネットワーク30a、ネットワーク30bを制御する命令を同時に発行しているが、1サイクルあたり1つの命令にしてもよい。この場合、FIR演算のためのデータの供給速度は半分になり、性能は低下する。
(第三実施形態)
第二実施形態では、第一実施形態に示す並列演算プロセッサによって、FIRフィルタの演算が行えることを示した。ところがFIRフィルタは、隣接するデータを必要とするが、画面の端では、隣接するデータが存在しない。そこで本実施形態は、画面の端の値を繰り返したデータが存在するとして、フィルタ処理を行う場合の実施形態である。
In FIG. 48, the commands for controlling the
(Third embodiment)
In the second embodiment, it has been shown that the FIR filter can be operated by the parallel operation processor shown in the first embodiment. However, the FIR filter requires adjacent data, but there is no adjacent data at the edge of the screen. Therefore, the present embodiment is an embodiment in the case where the filtering process is performed on the assumption that there is data in which the value at the end of the screen is repeated.
図24(a)〜(c)に画面の端でのFIRフィルタ演算の演算方法を示す。図においてx31が画面の端のデータとする。図24(b)では、x30におけるFIRフィルタ演算では、3回目の積和演算に使用するデータが画面の外にでてしまう。このような場合には、画面の外にx31のデータが続いているように扱ってFIR演算を行う。図24(c)のx31におけるFIRフィルタ演算でも同様である。 24A to 24C show a calculation method of FIR filter calculation at the edge of the screen. In the figure, x31 is data at the edge of the screen. In FIG. 24B, in the FIR filter calculation at x30, data used for the third product-sum calculation appears outside the screen. In such a case, the FIR operation is performed by treating the x31 data as continuing outside the screen. The same applies to the FIR filter calculation at x31 in FIG.
このようなデータ供給が第一実施形態に示した構成によって可能となることを、図17を用いて説明する。第二実施形態で示したようにFIR演算では、ネットワークシフト命令を使用する。ネットワークシフト命令の実際の記述の一例を以下に示し、その動作を説明する。
nsfti.a r3,r1,NPA,0x1
本実施形態では、ネットワーク30aは、レジスタオフセット変化量レジスタ80およびレジスタオフセットモジュロ値レジスタ81は使用しない。PEモードレジスタ82は8PEモード、動作モードレジスタ83は飽和モードに設定されているものとする。
The fact that such data supply is possible with the configuration shown in the first embodiment will be described with reference to FIG. As shown in the second embodiment, a network shift instruction is used in the FIR operation. An example of the actual description of the network shift instruction is shown below, and its operation will be described.
nsfti. a r3, r1, NPA, 0x1
In the present embodiment, the
このnsfti.a命令では、オペランドのr1が命令デコーダ11によって、レジスタ番号変換部20aに入力される。nsfti.a命令ではレジスタオフセットは更新しない。レジスタ番号変換部20aでは、論理和回路16からのレジスタオフセット選択信号によって、r1をそのまま使用するか、r1にレジスタオフセット値を加算したレジスタを使用するかを決定し、レジスタファイル15にレジスタ番号を出力する。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。NPAはネットワークパタンレジスタを指すオペランドである。オペランドのNPAは、セレクト処理部50のネットワークパタンレジスタ53によって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号のセレクト動作が行われることを示している。オペランドの0x1はネットワークパタン値変化量を指し、データのセレクトと同時に、NPAの値をすべてのプロセッシングエレメントで1加算する。そして、ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bで変換した番号のレジスタに格納される。
This nsfti. In the a instruction, r1 of the operand is input to the register
第二実施形態と同様に、図48にFIRフィルタ演算を行うための、命令シーケンスを示す。図48の(a)〜(c)では、nsfti.a命令とnsftd.b命令が同時に発行されることを示している。この命令のシーケンスに合わせたネットワーク30aの動作を図25に示す。
図25にnsfti.a命令を発行した時のデータの動きを示す。図25(a)の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は入力データr2を示す。第七段は入力データr1を示す。第八段は出力データr3を示す。図25(b)、図25(c)の第一段はNPAに格納されているネットワークパタン値を示す。第二段は入力データr2を示す。第三段は入力データr1を示し、第四段は出力データr3を示す。x16からx31は水平方向に並ぶ画素データである。NPAの初期値として00、01、02、03...0fというネットワークパタン値を設定し、リード用のレジスタオフセットに0x01という値を設定する。動作モードレジスタは飽和モードに設定する。図48(a)の1度目のnsfti.a命令によって、図25(a)のようにx16、x17、x18...x31のデータが出力され、同時にNPAの値が+1更新される。次に、図48(b)の2度目のnsfti.a命令によって、データが選択される。ここで、PE7Lのネットワークパタン値は0x10であり、0x0fを超えているが飽和モードでは0x0fとして扱われるので、結果として、図25(b)のように、x17、x18、x19...x31、x31のデータが出力され、NPAの値が+1更新される。さらに、図48(c)の3度目のnsfti.a命令によって、データが選択される。ここで、PE7H及びPE7Lのネットワークパタン値はそれぞれ0x10と0x11であり、0x0fを超えているが飽和モードでは0x0fとして扱われるので、結果として、図25(c)のように、x18、x19...x31、x31、x31のデータが出力され、NPAの値が+1更新される。このようにnsfti.a命令を発行するたびに次々に右側の隣接データが各PEに出力され、データのない右端ではx31の値が繰り返し出力される。ネットワークによるデータ選択の結果出力されたデータは、レジスタ番号変換部20bでレジスタ番号を変換されるが、ライト用のレジスタオフセット値が0であるので、オペランドと同じr3に格納される。
As in the second embodiment, FIG. 48 shows an instruction sequence for performing the FIR filter operation. 48 (a) to (c), nsfti. a instruction and nsftd. The b instruction is issued simultaneously. The operation of the
FIG. 25 shows nsfti. The movement of data when the a instruction is issued is shown. The first stage in FIG. 25A shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value. The fifth row shows network pattern values stored in the NPA. The sixth row shows the input data r2. The seventh row shows the input data r1. The eighth row shows the output data r3. The first row in FIGS. 25B and 25C shows the network pattern values stored in the NPA. The second stage shows input data r2. The third stage shows input data r1, and the fourth stage shows output data r3. x16 to x31 are pixel data arranged in the horizontal direction. 00, 01, 02, 03. . . A network pattern value of 0f is set, and a value of 0x01 is set to the register offset for reading. The operation mode register is set to saturation mode. The first nsfti. Of FIG. The a instruction causes x16, x17, x18. . . x31 data is output, and at the same time, the value of the NPA is updated by +1. Next, the second nsfti. Data is selected by the a instruction. Here, the network pattern value of PE7L is 0x10, which exceeds 0x0f, but is treated as 0x0f in the saturation mode. As a result, as shown in FIG. 25B, x17, x18, x19. . . Data of x31 and x31 are output, and the value of NPA is updated by +1. Further, the third nsfti. Data is selected by the a instruction. Here, the network pattern values of PE7H and PE7L are 0x10 and 0x11, respectively, which exceed 0x0f but are treated as 0x0f in the saturation mode. As a result, as shown in FIG. . . Data of x31, x31, and x31 is output, and the value of NPA is updated by +1. Thus, nsfti. Each time the a instruction is issued, the adjacent data on the right side is successively output to each PE, and the value of x31 is repeatedly output at the right end where there is no data. Data output as a result of data selection by the network is converted in register number by the register
第二実施形態と同じように、ネットワーク30bではnsftd.b命令が動作し、データの選択動作が行われ、FIR演算を行うことができる。
また、画面の左端では、ネットワーク30bの動作モードレジスタ83を飽和モードに設定し、NPBに保持されているネットワークパタン値が0より小さい場合に飽和の操作を行うことにより、同様に画面の左端でのFIRフィルタ処理を行うことができる。
As in the second embodiment, in the
Further, at the left end of the screen, the
以上のように本実施形態によれば、0x00から0x0fの範囲外のネットワークパタン値に対し飽和演算を行い、データ転送元のプロセッシングエレメントを決定する。よって、画面の端で、隣接するデータが存在しない場合であっても、画面の端の値を繰り返したデータが存在するとして処理することができる。つまり、画面の端におけるFIRフィルタ演算においても、画面端のデータをコピーするような操作をプログラムによって明示的に記述することなく、動作モードを飽和モードに変更するだけで、FIRフィルタの演算が行える。また、ネットワークパタン値を更新することにより、コードサイズを削減し、プログラムの動作効率を向上させることができる。 As described above, according to this embodiment, the saturation calculation is performed on the network pattern value outside the range of 0x00 to 0x0f, and the processing element of the data transfer source is determined. Therefore, even when there is no adjacent data at the edge of the screen, processing can be performed assuming that there is data in which the value at the edge of the screen is repeated. That is, even in the FIR filter calculation at the edge of the screen, the FIR filter calculation can be performed only by changing the operation mode to the saturation mode without explicitly describing the operation of copying the data at the screen edge by the program. . Further, by updating the network pattern value, the code size can be reduced and the operation efficiency of the program can be improved.
(第四実施形態)
第三実施形態では、nsfti.a命令を飽和モードで動作させることにより、画面の端での処理が行えることを示した。しかし、第三実施形態では、それぞれのデータが16ビットである場合等には、LSB8ビット又はMSB8ビットだけが繰り返され、16ビットデータが画面の端にある場合の処理が正しく行えない。
(Fourth embodiment)
In the third embodiment, nsfti. It was shown that processing at the edge of the screen can be performed by operating the a instruction in saturation mode. However, in the third embodiment, when each data is 16 bits, etc., only LSB 8 bits or
本実施形態では、16ビットデータ等に対しても画面の端での処理が行える実施形態である。図26に本実施形態におけるセレクト処理部50aの構成図を示す。セレクト処理部50aは、16to1セレクタ51aと、セレクタ52aと、ネットワークパタンレジスタ53aと、加減算器54aと、セレクト信号変換部60aとを備える。
セレクト信号変換部60aは、入力されたネットワークパタン値からレジスタオフセット選択信号と、16to1セレクタ51及び16to1セレクタ51aに送出するセレクト信号をそれぞれ生成する。16to1セレクタ51aに送出するセレクト信号の生成方法は図6と同じであるが、16to1セレクタ51aに送出するセレクト信号は最下位の1ビットを常に“1”とし、16to1セレクタ51に送出するセレクト信号は最下位の1ビットを常に“0”とし、残りのビットについては同じ値とする。また、レジスタオフセット選択信号をそれぞれのセレクト信号と同じ番号のプロセッシングエレメントに出力する。
In this embodiment, processing at the edge of the screen can be performed even for 16-bit data or the like. FIG. 26 shows a configuration diagram of the select processing unit 50a in the present embodiment. The select processing unit 50a includes a
The select signal conversion unit 60a generates a register offset selection signal and a select signal to be sent to the
他の構成要素は図6と同様である。
以上の構成により、16ビットのデータはMSB8ビットとLSB8ビットが常に1組のデータとして取り扱われることになる。
続いて、ネットワークパタン値を用いた場合の動作について説明する。実際の記述の一例を以下に示し、その動作を説明する。オペランドのネットワークパタン値の変化量が0x2に変更されていること以外は、第三実施形態と同じである。
Other components are the same as those in FIG.
With the above configuration, 16-bit data is always handled as one set of MSB 8-bit and LSB 8-bit data.
Next, the operation when the network pattern value is used will be described. An example of actual description is shown below, and its operation will be described. The third embodiment is the same as the third embodiment except that the change amount of the network pattern value of the operand is changed to 0x2.
nsfti.a r3,r1,NPA,0x2
図27にnsfti.a命令を発行した時のデータの動きを示す。図27(a)の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示し、第五段はNPAに格納されているネットワークパタン値を示す。第六段は16to1セレクタへのセレクト値を示し、第七段は入力データr2を示す。第八段は入力データr1を示す。第九段は出力データr3を示す。図27(b)、図27(c)の第一段はNPAに格納されているネットワークパタン値を示す。第二段はセレクタへのセレクト値を示す。第三段は入力データr2を示し、第四段は入力データr1を示す。第五段は出力データr3を示す。x16からx31は水平方向に並ぶデータである。NPAの初期値として−,01,−,03...−,0fというネットワークパタン値を設定し、レジスタオフセットに0x01を設定する。ここで、“−”は設定不要であることを示し、どのような値でもよい。動作モードレジスタには飽和モードを設定する。図27(a)の1度目のnsfti.a命令によって、x16、x17、x18...x31のデータが出力され、同時にNPAの値が+2更新される。PE0H、PE1H...PE7Hのネットワークパタン値は使用されない。次に、図27(b)の2度目のnsfti.a命令において、PE7Lのネットワークパタン値は11であるが、飽和モードであるのでセレクト値は0fとなる。また、PE7Hのセレクト値はPE7Lのセレクト値の最下位1ビットを0にするので0eとなる。よってx18、x19、x20...x30、x31のデータが出力され、NPAの値が+2更新される。さらに、図27(c)の3度目のnsfti.a命令によってx20、x21、x22...x31、x30、x31のデータが出力され、NPAの値が+2更新される。このようにnsfti.a命令を発行するたびに次々に右側の16ビット単位の隣接データが各プロセッシングエレメントに出力され、データのない右端ではx30およびx31の値が繰り返し出力される。
nsfti. a r3, r1, NPA, 0x2
In FIG. The movement of data when the a instruction is issued is shown. The first stage of FIG. 27A shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value, and the fifth row shows the network pattern value stored in the NPA. The sixth row shows the select value for the 16to1 selector, and the seventh row shows the input data r2. The eighth row shows the input data r1. The ninth row shows the output data r3. The first row in FIGS. 27B and 27C shows the network pattern values stored in the NPA. The second row shows the select value to the selector. The third row shows the input data r2, and the fourth row shows the input data r1. The fifth row shows the output data r3. x16 to x31 are data arranged in the horizontal direction. As initial values of NPA,-, 01,-, 03. . . A network pattern value of-, 0f is set, and 0x01 is set in the register offset. Here, “−” indicates that setting is unnecessary, and any value may be used. The saturation mode is set in the operation mode register. The first nsfti. Of FIG. a16, x17, x18. . . The data of x31 is output, and at the same time, the value of NPA is updated by +2. PE0H, PE1H. . . The network pattern value of PE7H is not used. Next, the second nsfti. In the a instruction, the PE7L network pattern value is 11, but since it is in the saturation mode, the select value is 0f. The select value of PE7H is 0e because the least significant bit of the select value of PE7L is set to 0. Therefore, x18, x19, x20. . . Data of x30 and x31 are output, and the value of NPA is updated by +2. Further, the third nsfti. x20, x21, x22. . . Data of x31, x30, and x31 is output, and the value of NPA is updated by +2. Thus, nsfti. Each time the a instruction is issued, adjacent data in the right 16-bit unit is output to each processing element one after another, and the values of x30 and x31 are repeatedly output at the right end where there is no data.
次に、即値を用いた場合の動作について説明する。実際の記述の一例を以下に示し、その動作を説明する。
nsel.a r2,r0,0x4
この命令では、レジスタファイルからレジスタr0を読み出し、すべてのプロセッシングエレメントのネットワークパタン値を即値0x04として、データを移動させ、結果をr2に書き込む動作を行う。データの移動の様子を図28に示す。図28の第一段はプロセッシングエレメントを示す。第二段はハーフワード単位で画素値を格納していることを示す。第一弾及び第二段の詳細は図9の説明で記載したのと同様である。第三段はリード用レジスタオフセット値を示す。第四段はライト用レジスタオフセット値を示す。第五段はNPAに格納されているネットワークパタン値を示す。第六段は16to1セレクタへのセレクト値を示す。第七段は入力データr0を示す。第八段は出力データを示す。ネットワークパタン値を即値0x04とする場合は、PE0Lへのセレクト信号52aは最下位ビットが“1”になるので0x05であり、PE0Hへのセレクト信号52bは最下位ビットが“0”になるので、0x04となる。このようにして、PE2Hのr0のデータがPE0H、PE1H...PE7Hに出力される。また、PE2Lのr0のデータがPE0L、PE1L...PE7Lに出力され、16ビットデータを扱うことができるようになる。
Next, the operation when an immediate value is used will be described. An example of actual description is shown below, and its operation will be described.
nsel. a r2, r0,0x4
In this instruction, the register r0 is read from the register file, the network pattern value of all processing elements is set to the immediate value 0x04, the data is moved, and the result is written to r2. FIG. 28 shows the state of data movement. The first stage of FIG. 28 shows a processing element. The second level indicates that pixel values are stored in units of half words. The details of the first bullet and the second stage are the same as described in the explanation of FIG. The third row shows the read register offset value. The fourth row shows the write register offset value. The fifth row shows network pattern values stored in the NPA. The sixth row shows the select value for the 16to1 selector. The seventh row shows the input data r0. The eighth row shows the output data. When the network pattern value is an immediate value 0x04, the
以上のように本実施形態によれば、16ビットデータに対しても、画面の端部でのデータの繰り返し処理が行えるようになり、16ビットデータを取り扱えるようになる。また、オペランドでネットワークパタンを即値として指定した場合でも16ビットのデータをすべてのプロセッシングエレメントに転送できるようになり、16ビットデータの取り扱いが行えるようになる。また、処理の効率化やコードサイズの低減を図ることができる。 As described above, according to the present embodiment, data can be repeatedly processed at the edge of the screen even for 16-bit data, and 16-bit data can be handled. Even when the network pattern is specified as an immediate value in the operand, 16-bit data can be transferred to all processing elements, and 16-bit data can be handled. In addition, processing efficiency and code size can be reduced.
なお、本実施形態に示した構成と、第一実施形態に示した構成の切り替えは、制御レジスタによって行うとしてもよいし、命令によって行うとしてもよい。また、16ビットデータのみを扱う場合には、本実施形態のみの構成をとることによりハードウェア規模を削減することができる。
(第五実施形態)
本実施形態は、行列の転置行列を実現する場合の並列演算プロセッサの改良に関する。メディア処理では、行列の転置変換が必要な場合があり、行列の要素の配置を入れ替えたいケースが多々ある。そこで本実施形態では、行列の転置変換を実現する。尚、縦16×横16の一例で説明を行えば説明が複雑になるので、以降の説明は、縦4×横4の要素からなる行列に対して転置変換を行う場合を対象として簡略化を期する。第一実施形態に示す並列演算プロセッサによって、レジスタファイルに蓄えられたデータの転置が行えることを示す。IDCT(Inverse Discrete Cosine Transform)演算において、垂直方向のIDCT演算後に水平方向のIDCT演算を行う際にデータの転置が使用される。
Note that switching between the configuration shown in the present embodiment and the configuration shown in the first embodiment may be performed by a control register or by an instruction. When only 16-bit data is handled, the hardware scale can be reduced by adopting the configuration of this embodiment only.
(Fifth embodiment)
The present embodiment relates to an improvement of a parallel arithmetic processor in the case of realizing a matrix transpose matrix. In media processing, transposition of a matrix may be necessary, and there are many cases where it is desired to change the arrangement of matrix elements. Therefore, in this embodiment, transpose transformation of a matrix is realized. Note that the description will be complicated if it is described with an example of vertical 16 × horizontal 16. Therefore, the following description will be simplified for the case of transposing a matrix composed of 4 × 4 elements. Expect. It shows that the data stored in the register file can be transposed by the parallel processor shown in the first embodiment. In an IDCT (Inverse Discrete Cosine Transform) operation, data transposition is used when performing a horizontal IDCT operation after a vertical IDCT operation.
続いて、図29に2系統のネットワークとレジスタオフセットの機能を用いることによって、データの転置が行えることを示す。本実施形態では、転置を行うために動作モードをモジュロモードに設定する。図29(a)は初期のデータの状態を示している。PE0〜PE3のr0〜r3にデータx0〜x15が格納されている。ここで、転置を行うには対角線を挟んで対称にある位置のデータを入れ替える必要がある。つまり、x0、x5、x10、x15で形成される対角線を挟んで対象の位置にあるx4、x9、x14とx1、x6、x11を、x8、x13とx2、x7を、x12とx3を入れ替える必要がある。斜線を付けたデータはネットワーク30a、30bが読み出すレジスタを表している。図29(b)は、ネットワーク30a、ネットワーク30bが読み出したデータのプロセッシングエレメント間の移動を示している。図29(c)は図29(b)での移動の結果書き込まれたデータを示している。図29(d)はネットワーク30aが読み出したデータのプロセッシングエレメント間の移動を示す。図29(e)はネットワーク30aによるデータの書き込みを示す。図29(f)は図29(a)から(c)へデータを移動するための、レジスタオフセット値とネットワークパタン値を示している。図29(g)は図29(c)から(e)へデータを移動するための、レジスタオフセット値とネットワークパタン値を示している。
Next, FIG. 29 shows that data can be transposed by using a two-system network and a register offset function. In this embodiment, the operation mode is set to the modulo mode in order to perform transposition. FIG. 29A shows the initial data state. Data x0 to x15 are stored in r0 to r3 of PE0 to PE3. Here, in order to perform transposition, it is necessary to replace data at positions that are symmetrical with respect to a diagonal line. That is, x4, x9, x14 and x1, x6, x11 at the target position across the diagonal line formed by x0, x5, x10, x15 need to be replaced with x8, x13 with x2, x7, and x12 with x3. There is. The hatched data represents a register read by the
図29(a)において、転置を行うためにまず、x4、x9、x14、x3とx1、x6、x11、x12を入れ替える。そのために図29(f)に示すリード用レジスタオフセット値に従い、ネットワーク30aはPE0から順にr1、r2、r3、r0を読み出し、ネットワーク30bはPE0から順にr3、r0、r1、r2を読み出す。図29(b)において、図29(f)に示すネットワークパタン値に従い、ネットワーク30a、30bともに異なる移動を行う。具体的にはネットワーク30aについて、x4はx1と入れ替えるため、PE0からPE1に移動する。同様にx9はPE2、x14はPE3、x3はPE0にそれぞれ移動する。ネットワーク30bについてもネットワーク30aと同様である。つまり、x1はx4と入れ替えるため、PE1からPE0に移動する。同様にx6はPE1、x11はPE2、x12はPE3にそれぞれ移動する。図29(c)において、図29(f)に示すライト用レジスタオフセット値に従い、ネットワーク30aはPE0から順に、r3、r0、r1、r2に書き込み、ネットワーク30bはPE0から順に、r1、r2、r3、r0に書き込む。これにより、x4、x9、x14、x3とx1、x6、x11、x12が入れ替わる。また、残りのx8、x13とx2、x7についてデータの入れ替えを行うために、次の転置動作での、ネットワーク30aが読み出すデータをハッチングで示している。図29(g)に示すリード用レジスタオフセット値に従い、ネットワーク30aは、PE0から順にr2、r3、r0、r1を読み出す。図29(d)において、図29(g)に示すネットワークパタン値に従い、移動を行う。つまり、x8をPE2、x13をPE3、x2をPE0、x7をPE1にそれぞれ移動する。このとき、ネットワーク30bは動作しない。図29(e)において、図29(g)に示すライト用レジスタオフセット値に従い書き込む。この書き込みの結果、図29(a)のデータの行と列が転置される。
In FIG. 29A, in order to perform transposition, first, x4, x9, x14, x3 and x1, x6, x11, x12 are interchanged. Therefore, according to the read register offset value shown in FIG. 29F, the
次に、このような転置の動作を第一実施形態に示した並列演算プロセッサで行う方法について図17を用いて説明する。ネットワーク転置命令の書式を以下に示す。
ntrpd.a <dst>,<src>,<ネットワークパタンレジスタ>,<ネットワークパタン値変化量>
ntrpd.a命令の“.a”は2系統あるネットワークのうち、ネットワーク30aのネットワークを使用することを示し、<dst>は出力先レジスタ、<src>は入力元レジスタ、<ネットワークパタンレジスタ>はデータの移動に使用するネットワークパタンレジスタ、<ネットワークパタン値変化量>はデータの移動後のネットワークパタン値に減算する値を指定する。このntrpd.a命令の実際の記述の一例を以下に示し、その動作を説明する。
Next, a method for performing such a transposition operation by the parallel arithmetic processor shown in the first embodiment will be described with reference to FIG. The format of the network transposition instruction is shown below.
ntrpd. a <dst>, <src>, <network pattern register>, <network pattern value change amount>
ntrpd. The “.a” of the a instruction indicates that the
ntrpd.a r0,r0,NPA,0x2
本実施形態では、ネットワーク30aは、図29(f)に示すように、リード用レジスタオフセットパタンとしてPE0Hから順に01、01、02、02、03、03、00、00という値を、ライト用レジスタオフセットパタンとしてPE0Hから順に03、03、00、00、01、01、02、02という値を設定しているものとする。また、ネットワークパタン値としてPE0Hから順に06、07、00、01、02、03、04、05という値を設定しているものとする。更にリード用レジスタオフセット変化量レジスタ80aに“+1”を、ライト用レジスタオフセット変化量レジスタ80bに“−1”を、レジスタオフセットモジュロ値レジスタ81に“4”が設定されているものとする。また、PEモードレジスタ82は4PEモード、動作モードレジスタ83はモジュロモードに設定されているものとする。
ntrpd. a r0, r0, NPA, 0x2
In the present embodiment, as shown in FIG. 29 (f), the
このntrpd.a命令では、オペランドのr0が命令デコーダ11によって、リードするレジスタ番号として、レジスタ番号変換部20に渡される。レジスタ番号変換部20aでは、セレクト処理部50がモジュロモードであるので、論理和回路16からのレジスタオフセット選択信号が常に“1”であり、r0にレジスタオフセット値を加算したレジスタ番号をレジスタファイル15に出力する。リード用のレジスタオフセット値は図29(f)に示すようにPE0Hから順に01、01、02,02、03,03,00,00であるので、リードするレジスタはr01、r01、r02、r02、r03、r03、r00、r00となる。レジスタファイル15は指定されたレジスタから読み出したデータを出力する。
This ntrpd. In the a instruction, r0 of the operand is passed to the register
また、同時にリード用レジスタオフセット値に、レジスタオフセット変化量レジスタ80aの値を加算し、レジスタオフセットモジュロ値レジスタ81に従ってモジュロ演算を行い、結果をレジスタオフセット値保持部28に格納する。このときのリード用レジスタオフセット値の変化を図29(f)と図29(g)に示す。NPAはネットワークパタンレジスタを指すオペランドである。オペランドのNPAは、セレクト処理部のネットワークパタンレジスタによって、ネットワークによるデータの選択動作および、レジスタオフセット選択信号セレクト動作が行われることを示している。オペランドの0x2はネットワークパタン値変化量を指し、データのセレクトと同時に、NPAの値をすべてのプロセッシングエレメントで2減算する。このときのネットワークパタン値の変化を図29(f)と図29(g)に示す。
At the same time, the value of the register offset change amount register 80 a is added to the read register offset value, modulo operation is performed according to the register offset modulo
ネットワークによるデータ選択の結果出力されたデータはr0をレジスタ番号変換部20bで変換されたレジスタに格納する。ライト用のレジスタオフセット値は図29(f)に示すようにPE0Hから順に03、03、00、00、01、01、02,02であるので、リードするレジスタはr03、r03、r00、r00、r01、r01、r02、r02となる。レジスタファイル15は指定されたレジスタにデータを書き込む。
The data output as a result of data selection by the network stores r0 in the register converted by the register
また、同時にライト用レジスタオフセット値に、レジスタオフセット変化量レジスタ80bの値を減算し、レジスタオフセットモジュロ値レジスタ81に従ってモジュロ演算を行い、結果をレジスタオフセット値保持部28に格納する。このときのライト用レジスタオフセット値の変化を図29(f)と図29(g)に示す。
ネットワーク30bは、レジスタオフセット更新動作や、ネットワークパタン値の更新動作を行う必要がないので、nsel.b命令を発行する。このnsel.b命令の実際の記述の一例を以下に示す。
At the same time, the value of the register offset change amount register 80 b is subtracted from the write register offset value, a modulo operation is performed according to the register offset modulo
The
nsel.b r0,r0,NPB
nsel.b命令は第一実施形態で説明したnsel.a命令と同じ動作である。
図49に転置を行うための命令シーケンスを示す。図49(a)のようにntrpd.a命令をネットワーク30aで発行し、ネットワーク30bではnsel.b命令を発行することにより、図29(a)から(c)に変化する転置演算を行うことができる。
nsel. b r0, r0, NPB
nsel. The b instruction is the nsel. It is the same operation as the a instruction.
FIG. 49 shows an instruction sequence for performing transposition. As shown in FIG. 49 (a), ntrpd. a command is issued on the
次に、図29(c)から(e)に変化する転置演算では、先のntrpd.a命令により、レジスタオフセット値およびネットワークパタン値が更新されているので、図49(b)のようにnsel.a命令を発行することにより転置動作が行える。このとき、ネットワーク30bは使用しないので、命令は発行しなくてよい。このnsel.a命令の実際の記述の一例を以下に示す。
Next, in the transposition operation which changes from FIG. 29 (c) to (e), the previous ntrpd. Since the register offset value and the network pattern value have been updated by the a instruction, the nsel. A transposition operation can be performed by issuing an a command. At this time, since the
nsel.a r0,r0,NPA
このようにして、図49(a)および(b)の命令シーケンスを用いることにより、図29(a)から(e)に変化するデータの転置を行うことができる。
引き続き、転置動作を行う場合には、先に述べた転置手順を逆に行うことにより、レジスタオフセット値やネットワークパタン値を変更することなく、連続して転置動作を行うことができる。
nsel. a r0, r0, NPA
In this way, by using the instruction sequences of FIGS. 49A and 49B, the data changing from FIGS. 29A to 29E can be transposed.
Subsequently, when performing the transposition operation, the transposition operation can be continuously performed without changing the register offset value or the network pattern value by performing the transposition procedure described above in reverse.
この際には、ntrpi.a命令をネットワークAで発行する。ntrpi.a命令は、ntrpd.a命令とは、リード用レジスタオフセット・ライト用レジスタオフセット・ネットワークパタン値更新動作において減算でなく、加算を用いること以外は全く同じ動作である。
図49(c)のように、ネットワーク30aでntrpi.a命令を発行することにより、図29(e)から(c)への転置演算を行うことができる。次に、図49(d)のように、ネットワーク30aでnsel.a命令、ネットワーク30bでnsel.b命令を発行することにより、図29(c)から(a)の転置演算を行うことができ、結果として転置演算が完了する。連続して転置演算を行う場合には、ネットワークパタン値やレジスタオフセットの値を書き換えることなく、転置演算を逆に行う命令を発行することにより、続けて転置演算を行うことができる。
At this time, ntrpi. Issue a command on network A. ntrpi. The a instruction is ntrpd. The a instruction is exactly the same operation except that addition is used instead of subtraction in the read register offset / write register offset / network pattern value update operation.
As shown in FIG. 49 (c), ntrpi. By issuing the a instruction, the transposition operation from FIG. 29E to FIG. 29C can be performed. Next, as shown in FIG. 49 (d), nsel. a command, nsel. By issuing the b instruction, the transposition operation of FIG. 29C to FIG. 29A can be performed, and as a result, the transposition operation is completed. When performing transpose operations continuously, transpose operations can be performed continuously by issuing an instruction to perform the transpose operations in reverse without rewriting the network pattern value or the register offset value.
以上のように本実施形態によれば、並列処理プロセッサにおいて転置の演算を行うことができ、IDCTをはじめとする転置演算が必要な場合の処理を効率的に行うことが出来る。
なお、使用するレジスタについては、r4〜r7で転置することや、r0、r2、r4、r6の間で転置するような演算も可能である。
As described above, according to the present embodiment, transposition computation can be performed in a parallel processor, and processing in the case where transposition computation including IDCT is necessary can be performed efficiently.
Note that the registers to be used can be transposed at r4 to r7, or can be operated to transpose between r0, r2, r4, and r6.
また、本実施形態では、説明の簡単のため、16ビットデータの4x4転置の手順について説明したが、8ビットデータや8x8の転置などについても同様に行うことができる。図30から図33は、8x8のデータ転置の説明図である。図30(a)が初期状態を示す図である。図30(d)に示す値を用い、図30(b)で示すようにデータをリードし、図30(c)に示すようにライトする。次に、図31(g)に示す値を用い、図31(e)で示すようにデータをリードし、図31(f)に示すようにライトする。更に、図32(j)に示す値を用い、図32(h)で示すようにデータをリードし、図32(i)に示すようにライトする。最後に図33(m)に示す値を用い、図33(k)で示すようにデータをリードし、図33(l)に示すようにライトする。この書き込みの結果、図30(a)のデータの行と列が転置される。図50に8x8の転置を行うための命令シーケンスを示す。 Further, in this embodiment, for the sake of simplicity of explanation, the procedure of 4 × 4 transposition of 16-bit data has been described, but 8-bit data and 8 × 8 transposition can be similarly performed. 30 to 33 are explanatory diagrams of 8 × 8 data transposition. FIG. 30A shows an initial state. Using the values shown in FIG. 30 (d), data is read as shown in FIG. 30 (b) and written as shown in FIG. 30 (c). Next, using the values shown in FIG. 31 (g), data is read as shown in FIG. 31 (e) and written as shown in FIG. 31 (f). Further, using the values shown in FIG. 32 (j), data is read as shown in FIG. 32 (h) and written as shown in FIG. 32 (i). Finally, using the values shown in FIG. 33 (m), data is read as shown in FIG. 33 (k) and written as shown in FIG. 33 (l). As a result of this writing, the row and column of data in FIG. FIG. 50 shows an instruction sequence for performing 8 × 8 transposition.
(第六実施形態)
第三実施形態、及び第四実施形態では、ネットワークパタン値が0x00より小さい場合に0x00に飽和し、0x0fより大きい場合には0x0fに飽和していた。本実施形態は飽和を予め設定されている最大値、最小値で決める場合の実施形態である。
図34は本発明の第六実施形態に関するセレクト信号変換部60の構成図である。最大値及び最小値は、制御レジスタに保持されているものとする。図34と図8の差異は、飽和演算部63に最大値及び最小値が入力される点である。
(Sixth embodiment)
In the third embodiment and the fourth embodiment, when the network pattern value is smaller than 0x00, it is saturated to 0x00, and when it is larger than 0x0f, it is saturated to 0x0f. This embodiment is an embodiment in which saturation is determined by a preset maximum value and minimum value.
FIG. 34 is a block diagram of the
飽和演算部63は、PEモード信号が8PEモードの場合、ネットワークパタン値が入力された最小値より小さい場合は最小値の下位4ビットを、入力された最大値より大きい場合は最大値の下位4ビットをセレクト信号とし、いずれでもない場合はネットワークパタン値の下位4ビットをセレクト信号とする。そして、レジスタオフセット選択信号は、この変換後の値の5ビット目とする。最大値及び最小値が0x00から0x0fの範囲内の場合には、レジスタオフセット選択信号は“0”になる。
When the PE mode signal is 8PE mode, the
PEモード信号が4PEモードの場合、PE0〜3ではネットワークパタン値が入力された最小値より小さい場合は最小値の下位3ビットを、入力された最大値より大きい場合は最大値の下位3ビットをセレクト信号とし、いずれでもない場合はネットワークパタン値の下位3ビットをセレクト信号とする。レジスタオフセット選択信号は、変換後のネットワークパタン値の4ビット目とする。最大値及び最小値が0x00から0x07の範囲内の場合には、レジスタオフセット選択信号は“0”になる。セレクト信号の4ビット目は常に“0”にセットする。PE4〜7ではネットワークパタン値が入力された最小値より小さい場合は最小値の下位3ビットを、入力された最大値より大きい場合は最大値の下位3ビットをセレクト信号とし、いずれでもない場合はネットワークパタン値の下位3ビットをセレクト信号とする。レジスタオフセット選択信号は、変換後のネットワークパタン値の4ビット目とする。最大値及び最小値が0x00から0x07の範囲内の場合には、レジスタオフセット選択信号は“0”になる。セレクト信号の4ビット目は常に“1”にセットする。 When the PE mode signal is 4PE mode, in PE0-3, the lower 3 bits of the minimum value if the network pattern value is smaller than the inputted minimum value, and the lower 3 bits of the maximum value if larger than the inputted maximum value. If it is neither, the lower 3 bits of the network pattern value are used as the select signal. The register offset selection signal is the fourth bit of the converted network pattern value. When the maximum value and the minimum value are within the range of 0x00 to 0x07, the register offset selection signal is “0”. The fourth bit of the select signal is always set to “0”. In PE4-7, if the network pattern value is smaller than the input minimum value, the lower 3 bits of the minimum value are used as the select signal, and if it is larger than the input maximum value, the lower 3 bits of the maximum value are used as the select signal. The lower 3 bits of the network pattern value are used as a select signal. The register offset selection signal is the fourth bit of the converted network pattern value. When the maximum value and the minimum value are within the range of 0x00 to 0x07, the register offset selection signal is “0”. The fourth bit of the select signal is always set to “1”.
続いて、飽和演算部63の動作を図35に示す。PEモード信号が8PEモードの場合の動作概要を図35(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図35(a)、図35(b)及び図35(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。最大値は0x0cとし、最小値は0x00とする。図35(a)では、ネットワークパタン値が0x00〜0x0cの範囲にあると、セレクト信号はネットワークパタン値と同一になる。PE6L、PE7H及びPE7Lでは、ネットワークパタン値が0x0cより大きいので、セレクト信号は0x0cとなる。レジスタオフセット選択信号はすべて“0”である。図35(b)では、ネットワークパタン値が0x00〜0x0cの範囲にあると、セレクト信号はネットワークパタン値と同一になる。PE5L、PE6H、PE6L、PE7H及びPE7Lでは、ネットワークパタン値が0x0cより大きいので、セレクト信号は0x0cとなる。レジスタオフセット選択信号はすべて“0”である。図35(c)では、ネットワークパタン値が0x00〜0x0cの範囲にある場合には、図35(a)と同様であり、PE0H、PE0Lではネットワークパタン値が0x00より小さいので、セレクト信号は0x00となる。PE7Lでは、ネットワークパタン値が0x0cより大きいので、セレクト信号は0x0cとなる。レジスタオフセット選択信号はすべて“0”である。
Subsequently, the operation of the
続いて、PEモード信号が4PEモードの場合の動作概要を図36(a)〜(c)に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図36(a)、図36(b)及び図36(c)の第一段はネットワークパタン値を示す。第二段はセレクト信号出力を示し、第三段はレジスタオフセット選択信号出力を示す。最大値は0x06とし、最小値は0xffとする。図36(a)では、ネットワークパタン値が0x00〜0x06の範囲にあると、PE0〜3ではセレクト信号はネットワークパタン値と同一になる。PE3Lではネットワークパタン値が0x06より大きいので、セレクト信号は0x06となる。レジスタオフセット選択信号はすべて“0”である。PE4〜7ではセレクト信号はネットワークパタン値の下位3ビットに8を加算した値となる。よって、PE7Lではネットワークパタン値が0x06より大きいので、セレクト信号は0x0eとなる。レジスタオフセット選択信号はすべて“0”である。図36(b)では、ネットワークパタン値が0x00〜0x06の範囲にあると、PE0〜3ではセレクト信号はネットワークパタン値と同一になる。PE3H及びPE3Lでは、ネットワークパタン値が0x06より大きいので、セレクト信号は0x06となる。レジスタオフセット選択信号はすべて“0”である。PE4〜7については、PE7H及びPE7Lでネットワークパタン値が0x06より大きいので、セレクト信号は0x0eとなる。レジスタオフセット選択信号はすべて“0”である。図36(c)では、ネットワークパタン値が0x00〜0x06の範囲にある場合には、図36(a)と同様である。PE0〜3については、PE0Hでネットワークパタン値が0xffより小さいので、セレクト信号は0x07となる。レジスタオフセット選択信号はPE0H及びPE0Lで“1”となる。PE4〜7では、PE4Hでネットワークパタン値が0xffより小さく、セレクト信号の4ビット目には“1”が入るので、セレクト信号は0x0eとなる。レジスタオフセット選択信号はPE4H及びPE4Lで“1”となる。 Subsequently, an outline of the operation when the PE mode signal is in the 4PE mode is shown in FIGS. PE0 to PE7 in the figure indicate processing element numbers, and H and L indicate that each processing element stores a pixel value in units of half words. The first stage of FIG. 36A, FIG. 36B, and FIG. 36C shows network pattern values. The second stage shows the select signal output, and the third stage shows the register offset selection signal output. The maximum value is 0x06, and the minimum value is 0xff. In FIG. 36A, when the network pattern value is in the range of 0x00 to 0x06, the select signal is the same as the network pattern value in PE0 to PE3. In PE3L, since the network pattern value is larger than 0x06, the select signal is 0x06. All register offset selection signals are “0”. In PE4-7, the select signal is a value obtained by adding 8 to the lower 3 bits of the network pattern value. Therefore, in PE7L, the network pattern value is larger than 0x06, so the select signal is 0x0e. All register offset selection signals are “0”. In FIG. 36B, when the network pattern value is in the range of 0x00 to 0x06, the select signal is the same as the network pattern value in PE0 to PE3. In PE3H and PE3L, since the network pattern value is larger than 0x06, the select signal is 0x06. All register offset selection signals are “0”. For PE4 to PE7, since the network pattern value is larger than 0x06 in PE7H and PE7L, the select signal is 0x0e. All register offset selection signals are “0”. FIG. 36C is the same as FIG. 36A when the network pattern value is in the range of 0x00 to 0x06. For PE0 to PE3, since the network pattern value is smaller than 0xff at PE0H, the select signal is 0x07. The register offset selection signal becomes “1” at PE0H and PE0L. In PE4-7, the network pattern value is smaller than 0xff in PE4H, and "1" is entered in the fourth bit of the select signal, so the select signal is 0x0e. The register offset selection signal becomes “1” at PE4H and PE4L.
以上のように本実施形態によれば、画面の端がPE0H又はPE7Lではない場合でも、画面端のデータの繰り返し処理が行えるようになる。また、様々な大きさの画像に対してFIRフィルタ処理などを施すことができるようになり、適用範囲を拡大することができる。
(第七実施形態)
本実施形態は、画面の端において、データを鏡のように折り返す場合の実施形態である。
As described above, according to the present embodiment, even when the edge of the screen is not PE0H or PE7L, it is possible to repeatedly process the data at the edge of the screen. In addition, it becomes possible to perform FIR filter processing and the like on images of various sizes, and the application range can be expanded.
(Seventh embodiment)
This embodiment is an embodiment in which data is folded back like a mirror at the edge of the screen.
図34は本発明の第七実施形態に関するセレクト信号変換部60の構成図である。本実施形態では、飽和演算部63の動作が、第六実施形態とは異なる。
飽和演算部63は、PEモード信号が8PEモードの場合、ネットワークパタン値が入力された最小値より小さい場合は最小値−(最小値−ネットワークパタン値)+1の値をセレクト信号とする。ネットワークパタン値が入力された最大値より大きい場合は最大値−(ネットワークパタン値−最大値)+1の値をセレクト信号とする。
FIG. 34 is a block diagram of the
When the PE mode signal is the 8PE mode, the
このときの、画面の端におけるデータの配置を図37に、飽和演算部63の動作を図38に示す。図中のPE0からPE7はプロセッシングエレメントの番号を示し、HとLはそれぞれのプロセッシングエレメントがハーフワード単位で画素値を格納していることを示す。図38の第一段はネットワークパタン値を示す。第二段はセレクト値出力を示し、第三段はレジスタオフセット選択信号出力を示す。最大値は0x0fとし、最小値は0xf0とする。ネットワークパタン値が0x0fより大きいと、セレクト信号は最大値−(ネットワークパタン値−最大値)+1で求まる値になる。よって、PE6Hではセレクト値出力が0fとなる。PE6L及びPE7についても同様である。
The arrangement of data at the edge of the screen at this time is shown in FIG. 37, and the operation of the
PEモード信号が4PEモードの場合も同様である。つまり、PE0〜3ではネットワークパタン値が0x0fより大きいと、セレクト信号は“最大値−(ネットワークパタン値−最大値)+1”となる。PE4〜7ではセレクト信号はネットワークパタン値の下位3ビットに8を加算した値となる。ネットワークパタン値が0xf0より小さい場合は、PE0〜3については、セレクト信号は“最小値−(最小値−ネットワークパタン値)+1”となる。PE4〜7では、ネットワークパタン値が0xf0より小さい場合は、セレクト信号は“最小値−(最小値−ネットワークパタン値)+1”に8を加算した値となる。 The same applies when the PE mode signal is the 4PE mode. That is, in PE0 to PE3, if the network pattern value is larger than 0x0f, the select signal becomes “maximum value− (network pattern value−maximum value) +1”. In PE4-7, the select signal is a value obtained by adding 8 to the lower 3 bits of the network pattern value. When the network pattern value is smaller than 0xf0, for PE0 to PE3, the select signal is “minimum value− (minimum value−network pattern value) +1”. In PE4-7, when the network pattern value is smaller than 0xf0, the select signal is a value obtained by adding 8 to "minimum value- (minimum value-network pattern value) +1".
以上のように本実施形態によれば、画面の端において、データを鏡のように折り返す処理が行え、FIRフィルタ演算などを行う際のさらなる高画質化が可能になる。
なお、本実施形態では、折り返す際に端のデータを繰り返す偶対称の折り返しとしたが、端のデータを繰り返さない奇対称の折り返しとしてもよい。
(第八実施形態)
図39は本発明の第八実施形態に関するセレクト処理部50の構成図である。図39と図6の差異は、セレクト信号変換部90である。
As described above, according to the present embodiment, data can be folded back at the edge of the screen like a mirror, and further image quality can be improved when performing FIR filter calculation and the like.
Note that in this embodiment, even symmetric wrapping that repeats end data when wrapping is used, but odd symmetric wrapping that does not repeat end data may be used.
(Eighth embodiment)
FIG. 39 is a block diagram of the
セレクト信号変換部90は、ネットワークパタン値から16to1セレクタ51のセレクト信号のみを生成する。
図40は本発明の第八実施形態に関するセレクト信号変換部90の構成図である。
モジュロ演算部91及び飽和演算部92は、PEモード信号に従い、ネットワークパタン値からセレクト信号を生成する。レジスタオフセット選択信号を出力しないこと以外は、第一実施形態と同じである。
The select
FIG. 40 is a block diagram of the
The modulo
セレクタA93は、動作モード信号によりモジュロ演算部91又は飽和演算部92のいずれかの出力を選択し、セレクト信号とする。
図41は本発明の第八実施形態のレジスタ番号変換部20とレジスタオフセットパタンレジスタの接続を示す図である。本実施形態では並列演算プロセッサは更に、レジスタオフセットパタンレジスタ102と、ローテート演算部103とを含む。
The selector A93 selects the output of either the modulo
FIG. 41 is a diagram showing the connection between the register
レジスタオフセットパタンレジスタ102は、各プロセッシングエレメントのレジスタ番号変換部20がレジスタオフセットを使用するかどうかを示す値を格納したレジスタである。つまり、レジスタオフセットパタンレジスタ102の各ビットが各プロセッシングエレメントのレジスタ番号変換部20のレジスタオフセット選択信号となる。レジスタオフセットパタンレジスタ102は、プログラムによって書き込むことが可能であり、必要に応じて、ローテート演算部103で演算された結果が書き込まれる。
The register offset pattern register 102 is a register that stores a value indicating whether or not the register
ローテート演算部103は、変化量、PEモード信号、ローテートモード信号が入力され、これらによって、動作を変更する。
ローテートモード信号は、ローテート又は反転ローテートを指定する。ローテートモードでは、PEモード信号が8PEモードであるとき、図42(a)のように、MSBからLSB又は、LSBからMSBに、変化量で指定されたビット数だけ、ローテート演算が行われ、結果がレジスタオフセットパタンレジスタ102に書き込まれる。PEモード信号が4PEモードであるとき、図42(b)のように、15ビット目と8ビット目の間及び7ビット目と0ビット目の間で、変化量で指定されたビット数だけ、ローテート演算が行われ、結果がレジスタオフセットパタンレジスタ102に書き込まれる。
The
The rotate mode signal designates rotation or reverse rotation. In the rotate mode, when the PE mode signal is the 8PE mode, as shown in FIG. 42 (a), the rotation operation is performed by the number of bits specified by the change amount from the MSB to the LSB or from the LSB to the MSB. Is written into the register offset
反転ローテートモードでは、PEモード信号が8PEモードであるとき、図42(c)のように、MSBからLSB又は、LSBからMSBに、変化量で指定されたビット数だけ、ローテート演算が行われ、ローテートされたビットが反転されて、結果がレジスタオフセットパタンレジスタ102に書き込まれる。PEモード信号が4PEモードであるとき、図42(d)のように、15ビット目と8ビット目の間及び7ビット目と0ビット目の間で、変化量で指定されたビット数だけ、ローテート演算が行われ、ローテートされたビットが反転されて、結果がレジスタオフセットパタンレジスタ102に書き込まれる。
In the reverse rotation mode, when the PE mode signal is the 8PE mode, as shown in FIG. 42 (c), the rotation operation is performed by the number of bits designated by the change amount from the MSB to the LSB or from the LSB to the MSB. The rotated bit is inverted and the result is written to the register offset
ここで変化量は、ネットワークシフト命令、又はネットワーク転置命令のネットワークパタン値の移動量と同じである。
次に、第一実施形態に示したnsel.a命令が本実施形態においても、実現可能であることを示す。図43に、第一実施形態で示した図18と同じ例を示す。PE動作モードを8PEモード、動作モードをモジュロモードとし、ローテートモードはローテートとする。図43では、レジスタオフセットパタンレジスタ102に0x0000を設定することにより、同様の動作となる。図44では、レジスタオフセットパタンレジスタ102に0x5555を設定することにより、“1”となるプロセッシングエレメントのみが、レジスタオフセットを使用したレジスタr1から読み出すことになり、同様の動作となる。
Here, the change amount is the same as the movement amount of the network pattern value of the network shift instruction or the network transposition instruction.
Next, the nsel. It is shown that the a instruction can also be realized in this embodiment. FIG. 43 shows the same example as FIG. 18 shown in the first embodiment. The PE operation mode is 8PE mode, the operation mode is modulo mode, and the rotate mode is rotate. In FIG. 43, the same operation is performed by setting 0x0000 in the register offset
次に、第二実施形態に示したnsfti.a命令が本実施形態においても、実現可能であることを示す。図45に、第二実施形態で示した図22と同じ例を示す。PE動作モードを8PEモード、動作モードをモジュロモード、ローテートモードを反転ローテートモードとする。図45(a)では、レジスタオフセットパタンレジスタ102に0x0000を設定することにより、同様の動作となる。図45(b)では、図45(a)でのnsfti.a命令により、レジスタオフセットパタンレジスタ102が、シフト量0x01だけ、反転ローテートされることにより、レジスタオフセットパタンレジスタ102の値は0x8000となり、PE0Hがレジスタオフセットを使用したレジスタr2からデータを読み出すことになるため、図22(b)と同じ動作となる。図45(c)では、図45(b)でのnsfti.a命令により、レジスタオフセットパタンレジスタ102が、シフト量0x01だけ、反転ローテートされることにより、レジスタオフセットパタンレジスタ102の値は0xc000となり、PE0H及びPE0Lがレジスタオフセットを使用したレジスタr2からデータを読み出すことになるため、図22(c)と同じ動作となる。
Next, nsfti. It is shown that the a instruction can also be realized in this embodiment. FIG. 45 shows the same example as FIG. 22 shown in the second embodiment. The PE operation mode is the 8PE mode, the operation mode is the modulo mode, and the rotation mode is the reverse rotation mode. In FIG. 45A, the same operation is performed by setting 0x0000 in the register offset
次に、第五実施形態に示したntrpd.a命令が本実施形態においても、実現可能であることを示す。図46に、第五実施形態で示した図29と同じ例を示す。PE動作モードを4PEモード、動作モードをモジュロモード、ローテートモードをローテートモードとする。図46(f)では、レジスタオフセットパタンレジスタ102に0xffffを設定することにより、すべてのプロセッシングエレメントでレジスタオフセットを使用することになり、同様の動作となる。図46(g)では、図46(f)でのntrpd.a命令により、レジスタオフセットパタンレジスタ102が、シフト量0x02だけ、ローテートされることにより、レジスタオフセットパタンレジスタ102の値は変化せず、0xffffとなり、すべてのプロセッシングエレメントでレジスタオフセットを使用することになり、同様の動作となる。 Next, ntrpd. Shown in the fifth embodiment. It is shown that the a instruction can also be realized in this embodiment. FIG. 46 shows the same example as FIG. 29 shown in the fifth embodiment. The PE operation mode is the 4PE mode, the operation mode is the modulo mode, and the rotate mode is the rotate mode. In FIG. 46F, by setting 0xffff in the register offset pattern register 102, register offsets are used in all processing elements, and the same operation is performed. In FIG. 46 (g), the ntrpd. By the a instruction, the register offset pattern register 102 is rotated by the shift amount 0x02, so that the value of the register offset pattern register 102 does not change and becomes 0xffff, and the register offset is used in all the processing elements. The operation is similar.
以上のように本実施形態によれば、第一実施形態で必要であったレジスタオフセット選択信号の信号線の数が大幅に減少し、回路規模が削減される。また、プロセッシングエレメント間をつなぐ信号線が削減されるために、LSI設計時の機能ブロックのレイアウトが容易になる。
(その他の変形例)
以上、本発明に係る並列演算プロセッサについて、実施の形態に基づいて説明したが、本発明は上記の実施の形態に限られないことは勿論である。
As described above, according to the present embodiment, the number of signal lines of the register offset selection signal required in the first embodiment is greatly reduced, and the circuit scale is reduced. In addition, since the signal lines connecting the processing elements are reduced, the layout of functional blocks at the time of LSI design is facilitated.
(Other variations)
The parallel arithmetic processor according to the present invention has been described based on the embodiment, but the present invention is not limited to the above embodiment.
(1)上記の実施形態では、プロセッシングエレメントの数は8、レジスタの数は16、レジスタのビット幅は16ビット、ネットワークは8ビット単位の移動としたが、これらの数やビット幅に限定されるものではなく、用途に応じて自由に選択してもよい。
(2)上記の実施形態では、ネットワークパタン値はネットワークパタンレジスタを使用したが、ネットワークパタンレジスタに相当するレジスタを複数設けてもよいし、汎用レジスタをネットワークパタンレジスタとして使用してもよい。
(1) In the above embodiment, the number of processing elements is 8, the number of registers is 16, the register bit width is 16 bits, and the network is moved in units of 8 bits. However, the number of processing elements is limited to these numbers and bit widths. It may be selected freely according to the application.
(2) In the above embodiment, a network pattern register is used as the network pattern value. However, a plurality of registers corresponding to the network pattern register may be provided, or a general-purpose register may be used as the network pattern register.
(3)上記の実施形態では、PEモードや動作モードはそれぞれ制御レジスタであるPEモードレジスタ82、動作モードレジスタ83によって設定されることとしたが、命令によってこれらのモードを切り替えてもよい。
(4)上記の実施形態では、PEモードは8PEモードと4PEモードの切り替えとしたが、2PEモードや1PEモードを設けてもよい。
(3) In the above embodiment, the PE mode and the operation mode are set by the PE mode register 82 and the
(4) In the above embodiment, the PE mode is switched between the 8PE mode and the 4PE mode, but a 2PE mode or a 1PE mode may be provided.
(5)上記の実施形態では、プロセッシングエレメントはおのおの独立した演算ユニットを保持しているが、長いビット長の演算器を分割してSIMD演算を行う場合には、分割された各演算器をプロセッシングエレメントとしてもよい。
(6)上記の実施形態では、ネットワークパタン値の変化量をオペランド中に指定しているが、汎用レジスタや専用レジスタによって指定してもよい。
(5) In the above embodiment, each processing element holds an independent arithmetic unit. However, when SIMD arithmetic is performed by dividing an arithmetic unit having a long bit length, each processing unit is processed. It may be an element.
(6) In the above embodiment, the change amount of the network pattern value is specified in the operand, but it may be specified by a general-purpose register or a dedicated register.
(7)上記の実施形態では、並列演算プロセッサを用いたが、本発明は上記発明を実現するための方法であっても良い。
(8)上記の実施形態では、並列演算プロセッサを用いたが、本発明は並列演算プロセッサを搭載した信号処理装置であっても良い。信号処理装置とは例えば、画像装置、通信装置及び音声装置である。
(7) Although the parallel processor is used in the above embodiment, the present invention may be a method for realizing the above invention.
(8) In the above embodiment, the parallel arithmetic processor is used. However, the present invention may be a signal processing device equipped with a parallel arithmetic processor. The signal processing device is, for example, an image device, a communication device, and an audio device.
本発明に係る並列演算プロセッサは、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが可能なので、資質において工業上利用することができる。このことから本発明に係る録画再生装置は、産業上の利用可能性を有する。また、本発明に係る並列演算プロセッサは、画像処理に用いるプロセッサとして有用である。また、画像処理だけでなく、通信処理など大量のデータ処理を行う他の用途にも応用できる。 The parallel arithmetic processor according to the present invention has an internal configuration disclosed in the above embodiment, and can be mass-produced based on the internal configuration, so that it can be industrially utilized in qualities. Therefore, the recording / playback apparatus according to the present invention has industrial applicability. The parallel arithmetic processor according to the present invention is useful as a processor used for image processing. Further, it can be applied not only to image processing but also to other uses for performing a large amount of data processing such as communication processing.
10 命令メモリ
11 命令デコーダ
12 全体制御部
13 データメモリ
14 プロセッシングエレメント群
15 レジスタファイル
16 論理和回路
20 レジスタ番号変換部
20a リード用のレジスタ番号変換部
20b ライト用のレジスタ番号変換部
21 レジスタオフセット値保持部
22 加減算器
23 モジュロ演算部
24 加減算器
25 セレクタ
30 ネットワーク
40 演算器ユニット
41a 算術論理演算器(ALU)
41b 算術論理演算器(ALU)
42 バレルシフタ
43 乗算器
50 セレクト処理部
50a セレクト処理部
51 16to1セレクタ
51a 16to1セレクタ
52 セレクタ
52a セレクタ
53 ネットワークパタンレジスタ
53a ネットワークパタンレジスタ
54 加減算器
54a 加減算器
60 セレクト信号変換部
60a セレクト信号変換部
61 レジスタオフセット選択演算部
62 モジュロ演算部
63 飽和演算部
64 セレクタA
65 セレクタB
66 デマルチプレクサ
80 レジスタオフセット変化量レジスタ
81 レジスタオフセットモジュロ値レジスタ
82 PEモードレジスタ
83 動作モードレジスタ
90 セレクト信号変換部
91 モジュロ演算部
92 飽和演算部
93 セレクタA
102 レジスタオフセットパタンレジスタ
103 ローテート演算部
DESCRIPTION OF
41b Arithmetic logic unit (ALU)
42
65 Selector B
66
102 Register offset pattern register 103 Rotate operation unit
Claims (16)
命令の解読を行うデコーダを備え、
前記各プロセッシングエレメントは、
当該プロセッシングエレメントに対し、何れのプロセッシングエレメントからデータを転送するかという転送パターンを示す値を格納した転送パターン格納手段と、
前記転送パターンに基づいて決定されるプロセッシングエレメントとの間のデータ転送を実行する転送手段と、
前記デコーダによる直前の命令の解読結果に従って、前記転送パターン格納手段の値の更新を行う更新手段と
を含むプロセッサ。 A processor comprising a plurality of processing elements,
It has a decoder that decodes instructions,
Each processing element is
A transfer pattern storage means for storing a value indicating a transfer pattern indicating from which processing element data is transferred to the processing element;
Transfer means for executing data transfer with a processing element determined based on the transfer pattern;
Updating means for updating the value of the transfer pattern storage means in accordance with the result of decoding the immediately preceding instruction by the decoder.
請求項1記載のプロセッサ。 The processor according to claim 1, wherein the value indicating the transfer pattern is a number representing a processing element serving as a transfer source.
複数レジスタからなるレジスタセットを備え、
前記データとは、レジスタセットにおける各レジスタの格納値である
請求項2記載のプロセッサ。 Each processing element further comprises:
It has a register set consisting of multiple registers,
The processor according to claim 2, wherein the data is a stored value of each register in a register set.
所定のオフセット信号に基づき、何れかのレジスタに格納されたデータを出力し、
前記更新手段による更新は、
転送パターンを示す値に対する算術演算を含み、
前記オフセット信号は、前記転送パターンを示す値に対する演算に伴う桁上げ又は桁下げに基づき変化する
請求項3記載のプロセッサ。 The register set is
Based on a predetermined offset signal, output the data stored in any register,
The update by the update means is
Including arithmetic operations on values that indicate transfer patterns,
The processor according to claim 3, wherein the offset signal changes based on a carry or a carry accompanying a calculation on a value indicating the transfer pattern.
算術演算手段と、飽和演算手段とを含み、
前記飽和演算手段は、
前記算術演算手段による前記算術演算の結果が所定の範囲外になったか否かを判定し、所定の範囲外になると、前記転送パターンを示す値に対する飽和演算を行い、
前記更新手段により更新された前記転送パターンを示す値は、算術演算の結果、飽和演算の結果の何れかである
請求項2記載のプロセッサ。 The updating means includes
Including arithmetic operation means and saturation operation means,
The saturation calculation means includes
It is determined whether or not the result of the arithmetic operation by the arithmetic operation means is out of a predetermined range, and when it is out of the predetermined range, a saturation operation is performed on the value indicating the transfer pattern,
The processor according to claim 2, wherein the value indicating the transfer pattern updated by the updating unit is one of a result of an arithmetic operation and a result of a saturation operation.
前記飽和演算の際に、前記転送パターンを示す値が前記所定の範囲より大きいと第一の値を飽和値として出力し、前記所定の範囲より小さいと第二の値を飽和値として出力する
請求項5記載のプロセッサ。 The update means includes output means,
In the saturation calculation, if a value indicating the transfer pattern is larger than the predetermined range, a first value is output as a saturated value, and if smaller than the predetermined range, a second value is output as a saturated value. Item 6. The processor according to Item 5.
請求項6記載のプロセッサ。 The predetermined range is a range indicating the processing element number, the first value is a maximum value of the processing element number, and the second value is a minimum value of the processing element number. The processor according to claim 6.
前記飽和演算の際に、所定の最大値及び最小値の入力を受け付け、前記所定の範囲とは、前記入力された所定の最大値及び最小値により示される範囲であり、前記第一の値とは、前記所定の最大値であり、前記第二の値とは、前記所定の最小値である
ことを特徴とする請求項6記載のプロセッサ。 The saturation calculation means further includes
In the saturation calculation, input of a predetermined maximum value and minimum value is accepted, and the predetermined range is a range indicated by the input predetermined maximum value and minimum value, and the first value and The processor according to claim 6, wherein is the predetermined maximum value, and the second value is the predetermined minimum value.
前記飽和演算の際に、所定の最大値及び最小値の入力を受け付け、前記所定の範囲とは、前記入力された所定の最大値及び最小値により示される範囲であり、前記第一の値とは、第一式により求まる値であり、前記第二の値とは、第二式により求まる値である
請求項6記載のプロセッサ。 The saturation calculation means further includes
In the saturation calculation, input of a predetermined maximum value and minimum value is accepted, and the predetermined range is a range indicated by the input predetermined maximum value and minimum value, and the first value and 7 is a value obtained from the first equation, and the second value is a value obtained from the second equation.
前記飽和演算手段は、
上位側と下位側のそれぞれに対し、前記算術演算手段による前記算術演算の結果が所定の範囲外になったか否かを判定し、所定の範囲外になると、上位側のバイトデータに対する飽和演算と、下位側のバイトデータに対する飽和演算とを同時に実行し、
前記出力手段は、
互いに異なる2つの飽和値を出力する
請求項6記載のプロセッサ。 Each register of the register set stores two byte-sized data,
The saturation calculation means includes
For each of the upper side and the lower side, it is determined whether or not the result of the arithmetic operation by the arithmetic operation means is out of a predetermined range. , Execute saturation operation on lower byte data at the same time,
The output means includes
The processor according to claim 6, wherein two different saturation values are output.
算術演算手段と、モジュロ式の算術演算を行うモジュロ演算手段とを含み、
前記モジュロ演算手段は、
前記算術演算手段による前記算術演算の結果が前記転送パターンを示す値の範囲外になったか否かを判定し、範囲外になると、前記転送パターンを示す値に対するモジュロ演算を行い、
前記更新手段により更新された前記転送パターンを示す値は、算術演算の結果、モジュロ演算の結果の何れかである
請求項3記載のプロセッサ。 The updating means includes
An arithmetic operation means, and a modulo arithmetic means for performing a modulo arithmetic operation,
The modulo arithmetic means is
It is determined whether or not the result of the arithmetic operation by the arithmetic operation means is out of the range of the value indicating the transfer pattern, and when it is out of the range, a modulo operation is performed on the value indicating the transfer pattern,
The processor according to claim 3, wherein the value indicating the transfer pattern updated by the updating unit is one of a result of arithmetic operation and a result of modulo operation.
リードオフセット値に対してモジュロ式の算術演算を行うことで、リードオフセット値を変化させる第1変化部と、
ライトオフセット値に対してモジュロ式の算術演算を行うことで、ライトオフセット値を変化させる第2変化部とを備え、
前記レジスタセットは、
リードオフセット値に基づき、何れかのレジスタに格納されたデータを読み出し、
ライトオフセット値に基づき、何れかのレジスタにデータを書き込む
請求項11記載のプロセッサ。 Each processing element in the previous term is further
A first changing unit that changes the lead offset value by performing a modulo arithmetic operation on the lead offset value;
A second changing unit that changes the write offset value by performing a modulo arithmetic operation on the write offset value;
The register set is
Based on the read offset value, read the data stored in one of the registers,
The processor according to claim 11, wherein data is written to any of the registers based on the write offset value.
前記デコード処理が行われた1サイクルの内に行われる
請求項2記載の並列演算プロセッサ。 The decoding process, the update process of the transfer pattern storage means,
The parallel arithmetic processor according to claim 2, wherein the parallel arithmetic processor is performed within one cycle in which the decoding process is performed.
前記プロセッサは更に、
レジスタオフセット値を使用するか否かを示す値を格納したレジスタオフセット格納手段と
前記命令において指定された転送パターンの変化量と同じビット数だけ、ローテート演算又はビット反転機能つきのローテート演算を行い、演算結果を前記レジスタオフセット格納手段に格納するローテート演算手段とを備える
請求項2記載のプロセッサ。 The instruction includes an operand that specifies a transfer pattern change amount;
The processor further includes:
Register offset storage means that stores the value indicating whether or not to use the register offset value, and rotate operation or rotate operation with bit inversion function for the same number of bits as the transfer pattern change amount specified in the instruction The processor according to claim 2, further comprising: a rotation calculation unit that stores a result in the register offset storage unit.
前記プロセッサは、
命令の解読を行うデコーダを備え、
前記各プロセッシングエレメントは、
当該プロセッシングエレメントに対し、何れのプロセッシングエレメントからデータを転送するかという転送パターンを示す値を格納した転送パターン格納手段を備え、
前記転送パターンに基づいて決定されるプロセッシングエレメントとの間のデータ転送を実行する転送ステップと、
前記デコーダによる直前の命令の解読結果に従って、前記転送パターン格納手段の値の更新を行う更新ステップと
を含む請求項1記載の方法。 A method used in a processor with a plurality of processing elements, comprising:
The processor is
It has a decoder that decodes instructions,
Each processing element is
A transfer pattern storage means for storing a value indicating a transfer pattern indicating from which processing element data is transferred to the processing element,
A transfer step of performing data transfer with a processing element determined based on the transfer pattern;
The method according to claim 1, further comprising: an update step of updating a value of the transfer pattern storage unit according to a result of decoding the immediately preceding instruction by the decoder.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005025558A JP4698242B2 (en) | 2004-02-16 | 2005-02-01 | Parallel processing processor, control program and control method for controlling operation of parallel processing processor, and image processing apparatus equipped with parallel processing processor |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004038210 | 2004-02-16 | ||
JP2004038210 | 2004-02-16 | ||
JP2005025558A JP4698242B2 (en) | 2004-02-16 | 2005-02-01 | Parallel processing processor, control program and control method for controlling operation of parallel processing processor, and image processing apparatus equipped with parallel processing processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005267615A true JP2005267615A (en) | 2005-09-29 |
JP4698242B2 JP4698242B2 (en) | 2011-06-08 |
Family
ID=35092042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005025558A Active JP4698242B2 (en) | 2004-02-16 | 2005-02-01 | Parallel processing processor, control program and control method for controlling operation of parallel processing processor, and image processing apparatus equipped with parallel processing processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4698242B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009110497A1 (en) | 2008-03-04 | 2009-09-11 | 日本電気株式会社 | Simd processor array system and data transfer method thereof |
JP2011048735A (en) * | 2009-08-28 | 2011-03-10 | Ricoh Co Ltd | Simd microprocessor |
JP2011065234A (en) * | 2009-09-15 | 2011-03-31 | Mitsubishi Electric Corp | Parallel processor |
US8219783B2 (en) | 2007-07-04 | 2012-07-10 | Ricoh Company, Ltd. | SIMD type microprocessor having processing elements that have plural determining units |
JP2012190389A (en) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | Processor device and its operation method |
JP2013512479A (en) * | 2009-11-26 | 2013-04-11 | 日本電気株式会社 | Apparatus and method enabling efficient time and area access to square matrix distributed and stored in internal memory of processing element operating in SIMD mode and its transpose matrix |
JP2014501008A (en) * | 2010-11-18 | 2014-01-16 | 日本テキサス・インスツルメンツ株式会社 | Method and apparatus for moving data |
JP2016009907A (en) * | 2014-06-23 | 2016-01-18 | 日本電信電話株式会社 | Programmable device and control method for the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084229A (en) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd-type processor |
JP2002207706A (en) * | 2001-01-09 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor for calculating totalized value among processor elements and for detecting peak |
JP2003337696A (en) * | 2002-03-06 | 2003-11-28 | Matsushita Electric Ind Co Ltd | Data processing device and program |
-
2005
- 2005-02-01 JP JP2005025558A patent/JP4698242B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084229A (en) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd-type processor |
JP2002207706A (en) * | 2001-01-09 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor for calculating totalized value among processor elements and for detecting peak |
JP2003337696A (en) * | 2002-03-06 | 2003-11-28 | Matsushita Electric Ind Co Ltd | Data processing device and program |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219783B2 (en) | 2007-07-04 | 2012-07-10 | Ricoh Company, Ltd. | SIMD type microprocessor having processing elements that have plural determining units |
WO2009110497A1 (en) | 2008-03-04 | 2009-09-11 | 日本電気株式会社 | Simd processor array system and data transfer method thereof |
US8635432B2 (en) | 2008-03-04 | 2014-01-21 | Nec Corporation | SIMD processor array system and data transfer method thereof |
JP2011048735A (en) * | 2009-08-28 | 2011-03-10 | Ricoh Co Ltd | Simd microprocessor |
JP2011065234A (en) * | 2009-09-15 | 2011-03-31 | Mitsubishi Electric Corp | Parallel processor |
JP2013512479A (en) * | 2009-11-26 | 2013-04-11 | 日本電気株式会社 | Apparatus and method enabling efficient time and area access to square matrix distributed and stored in internal memory of processing element operating in SIMD mode and its transpose matrix |
JP2014501008A (en) * | 2010-11-18 | 2014-01-16 | 日本テキサス・インスツルメンツ株式会社 | Method and apparatus for moving data |
JP2014501009A (en) * | 2010-11-18 | 2014-01-16 | 日本テキサス・インスツルメンツ株式会社 | Method and apparatus for moving data |
JP2012190389A (en) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | Processor device and its operation method |
JP2016009907A (en) * | 2014-06-23 | 2016-01-18 | 日本電信電話株式会社 | Programmable device and control method for the same |
Also Published As
Publication number | Publication date |
---|---|
JP4698242B2 (en) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4698242B2 (en) | Parallel processing processor, control program and control method for controlling operation of parallel processing processor, and image processing apparatus equipped with parallel processing processor | |
US7725520B2 (en) | Processor | |
JP2959104B2 (en) | Signal processor | |
US7412587B2 (en) | Parallel operation processor utilizing SIMD data transfers | |
JP3852895B2 (en) | Method of performing two-dimensional discrete cosine transform capable of reducing multiplicative operation and its inverse transform | |
US8352528B2 (en) | Apparatus for efficient DCT calculations in a SIMD programmable processor | |
JP2005309499A (en) | Processor | |
RU2279706C2 (en) | Method for processing with use of one commands stream and multiple data streams | |
JP5903598B2 (en) | Symmetric filter arithmetic device and symmetric filter arithmetic method | |
JP2008108220A (en) | Arithmetic unit | |
JP4020804B2 (en) | Data processing device | |
JP2000322235A (en) | Information processor | |
JP6687803B2 (en) | Systems and methods for piecewise linear approximation | |
US6732131B1 (en) | Discrete cosine transformation apparatus, inverse discrete cosine transformation apparatus, and orthogonal transformation apparatus | |
CN113841134A (en) | Processing device with vector transformation execution | |
JP3982324B2 (en) | Vector operation processing device, vector operation method, and vector operation program | |
JPH07146781A (en) | Processor | |
JP2790911B2 (en) | Orthogonal transform operation unit | |
JP2005038185A (en) | Vector processing device | |
JP2004302647A (en) | Vector processor and address designation method for register | |
JP4203480B2 (en) | Image processor | |
JP3895031B2 (en) | Matrix vector multiplier | |
JP3781476B2 (en) | Signal processing device | |
JP3547316B2 (en) | Processor | |
JP6191172B2 (en) | Memory controller, processor, arithmetic processing method, and arithmetic instruction library. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101029 |
|
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: 20110201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4698242 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |