JP4537420B2 - SIMD type microprocessor - Google Patents

SIMD type microprocessor Download PDF

Info

Publication number
JP4537420B2
JP4537420B2 JP2007096152A JP2007096152A JP4537420B2 JP 4537420 B2 JP4537420 B2 JP 4537420B2 JP 2007096152 A JP2007096152 A JP 2007096152A JP 2007096152 A JP2007096152 A JP 2007096152A JP 4537420 B2 JP4537420 B2 JP 4537420B2
Authority
JP
Japan
Prior art keywords
processor
register
processor element
data
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007096152A
Other languages
Japanese (ja)
Other versions
JP2007193838A (en
Inventor
貴雄 片山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007096152A priority Critical patent/JP4537420B2/en
Publication of JP2007193838A publication Critical patent/JP2007193838A/en
Application granted granted Critical
Publication of JP4537420B2 publication Critical patent/JP4537420B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Description

本発明は、画像データ等を高速処理するために単一の命令で複数データに対して同じ処理を行うSIMD(Single Instruction−stream Multiple Data− stream)型マイクロプロセッサに関し、特に、プロセッサエレメントのネイバーフッドオペレーション(隣接処理)を行なうSIMD型マイクロプロセッサに関わる。   The present invention relates to a single instruction-stream multiple data-stream (SIMD) type microprocessor that performs the same processing on a plurality of data with a single instruction in order to process image data or the like at high speed, and in particular, a neighborhood operation of a processor element. The present invention relates to a SIMD type microprocessor that performs (adjacent processing).

近年、デジタル複写機やファクシミリ装置等の画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。こういった画像処理では複数のデータに対して同一の処理をすることが多く、1命令で1つのデータを処理するSISD(Single Instruction−stream Single Data−stream)型マイクロプロセッサよりも、1命令で複数のデータを同時処理するSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサが用いられることが多い。   In recent years, in image processing such as digital copying machines and facsimile machines, image quality has been improved by increasing the number of pixels and diversifying image processing. In such image processing, the same processing is often performed for a plurality of data, and a single instruction-stream single data-stream (SISD) type microprocessor that processes one piece of data with one instruction. A SIMD (Single Instruction-stream Multiple Data-stream) type microprocessor that frequently processes a plurality of data is often used.

SIMD型マイクロプロセッサ2は、図5のようにグローバルプロセッサ4と、演算アレイ6と、レジスタファイル8からなる。図5はデータの流れを説明するため簡略化されており、図5のプロセッサエレメントグループ10はプロセッサエレメント(PE)の集合体である。   The SIMD type microprocessor 2 includes a global processor 4, an operation array 6, and a register file 8 as shown in FIG. FIG. 5 is simplified for explaining the flow of data, and the processor element group 10 in FIG. 5 is a collection of processor elements (PE).

なお、本明細書では便宜上、プロセッサエレメントは256個という構成にして説明している。個々のプロセッサエレメントの構成は、後で説明する。   In the present specification, for the sake of convenience, a description is given of a configuration having 256 processor elements. The configuration of each processor element will be described later.

例えば、スキャナやカメラなどの外部入力装置から入力された画像データは、レジスタファイル8に書き込まれ、演算アレイ6にて論理算術演算等の含まれた画像処理が行われ、再度レジスタファイル8に書き込まれ、プリンタ・記憶装置などの外部出力装置に出力される。グローバルプロセッサ4は、プログラムを解読し制御信号をレジスタファイル8や演算アレイ6に送信する。グローバルプロセッサ4はグローバルプロセッサそのものでの演算処理・データ転送・逐次処理等も行う。   For example, image data input from an external input device such as a scanner or a camera is written to the register file 8, and image processing including logical arithmetic operation is performed by the arithmetic array 6, and is written to the register file 8 again. And output to an external output device such as a printer / storage device. The global processor 4 decodes the program and transmits a control signal to the register file 8 and the arithmetic array 6. The global processor 4 also performs arithmetic processing, data transfer, sequential processing, etc. in the global processor itself.

図6は、図5のプロセッサエレメント(PE)12をより詳しく示す従来技術例である。図6では、プロセッサエレメント12はPE〔0〕〜PE〔255〕までの256個用意されている。なお個々のプロセッサエレメントは順に0乃至255の序数が「PE番号」として付番されている。本明細書では、各図面の左方から順に付番されているものとする。   FIG. 6 is a prior art example showing the processor element (PE) 12 of FIG. 5 in more detail. In FIG. 6, 256 processor elements 12 from PE [0] to PE [255] are prepared. Each processor element is numbered with an ordinal number of 0 to 255 as a “PE number”. In the present specification, numbers are assigned sequentially from the left side of each drawing.

1つのプロセッサエレメント12は、レジスタ14と、ALU(算術論理演算器)16を中心とした演算部からなる。レジスタ14は、例えばR0〜R31の32本用意されており、そのうちの一部のレジスタが外部入出力に接続されている。R0〜R31のレジスタは、データをシフト・拡張するシフト・拡張器18に接続されALU16の片側のデータとして第2の記憶部22にラッチされる。ALU16のもう片側のデータは、演算部に備わるAレジスタ24の値を第1の記憶部20にラッチしたものとなる。図6の例では、レジスタ1本のサイズを8ビットとしている。更に、レジスタのうちR0〜R23の24本が外部入出力に接続され、レジスタ14からシフト・拡張器18までは8ビット、シフト・拡張器18はその8ビットを16ビットに拡張して第2の記憶部22に出力する、としている。よって、ALU16、Aレジスタ24及び第1の記憶部20は、対応して16ビットとなる。   One processor element 12 includes a register 14 and an arithmetic unit centering on an ALU (arithmetic logic unit) 16. For example, 32 registers R0 to R31 are prepared, and some of the registers 14 are connected to an external input / output. The registers R0 to R31 are connected to a shift / expansion unit 18 that shifts / expands data, and are latched in the second storage unit 22 as data on one side of the ALU 16. The data on the other side of the ALU 16 is obtained by latching the value of the A register 24 provided in the arithmetic unit in the first storage unit 20. In the example of FIG. 6, the size of one register is 8 bits. Further, 24 registers R0 to R23 of the registers are connected to an external input / output. The registers 14 to the shift / extension unit 18 are 8 bits, and the shift / extension unit 18 expands the 8 bits to 16 bits. Are output to the storage unit 22. Therefore, the ALU 16, the A register 24, and the first storage unit 20 have 16 bits correspondingly.

図6でのデータの流れは概略次のようになる。まず、外部入力からRレジスタ14に転送された8ビット画像データは、シフト・拡張器18によって16ビットデータに拡張もしくはシフト処理され、第2の記憶部22に転送され、ALU16でデータ処理を施される。その結果Aレジスタ24に書き込まれたデータは、シフト・拡張器18からRレジスタ14に書きこまれ外部出力に出力される。   The data flow in FIG. 6 is roughly as follows. First, the 8-bit image data transferred from the external input to the R register 14 is expanded or shifted to 16-bit data by the shift / extension unit 18, transferred to the second storage unit 22, and subjected to data processing by the ALU 16. Is done. As a result, the data written to the A register 24 is written from the shift / extension unit 18 to the R register 14 and output to the external output.

更に図7の従来技術例では、Rレジスタ14とシフト・拡張器18との経路が、近接するプロセッサエレメントの範囲内でのRレジスタ14とシフト・拡張器18との間に設定できるようにしている。なお図7の演算器26は、ALU16、第1の記憶部20と第2の記憶部22、及びAレジスタ24をまとめて示している。ここで注目のPEを「PE〔n〕」とすると、PE〔n〕の演算器26は、PE〔n〕のRレジスタ14とのデータ通信を行うほか、1つ左のPE(PE〔n−1〕)、2つ左のPE(PE〔n−2〕)、3つ左のPE(PE〔n−3〕)、1つ右のPE(PE〔n+1〕)、2つ右のPE(PE〔n+2〕)、3つ右のPE(PE〔n+3〕)の計7つのPEのRレジスタ14とデータ通信することができる。このとき、バス選択器が必要であるが、図7の従来技術例では、シフト・拡張器18とまとめて符号28により示している。   Further, in the prior art example of FIG. 7, the path between the R register 14 and the shift / expander 18 can be set between the R register 14 and the shift / expander 18 within the range of adjacent processor elements. Yes. 7 shows the ALU 16, the first storage unit 20 and the second storage unit 22, and the A register 24 together. Here, if the PE of interest is “PE [n]”, the computing unit 26 of PE [n] performs data communication with the R register 14 of PE [n], and the left PE (PE [n] -1]), two left PEs (PE [n-2]), three left PEs (PE [n-3]), one right PE (PE [n + 1]), two right PEs Data communication can be performed with the R registers 14 of a total of seven PEs (PE [n + 2]) and three right PEs (PE [n + 3]). At this time, a bus selector is necessary. In the prior art example of FIG.

本明細書では、この近接するPEにおけるRレジスタ14と演算部26とのデータ通信を、「PEシフト」と称することにする。一般的には、ネイバーフッドオペレーション(隣接処理)とも呼ばれている。   In this specification, data communication between the R register 14 and the arithmetic unit 26 in the adjacent PE is referred to as “PE shift”. Generally, it is also called a neighborhood operation (adjacent processing).

PEシフトが使用される画像処理には、MTF(Modulation Transfer Function)補正、フレアデータ除去などがある。   Image processing using PE shift includes MTF (Modulation Transfer Function) correction and flare data removal.

上記のMTF補正は、注目画素を除く周辺画素の強調成分を計算して、その結果に強度倍率を乗じて、注目画素に加算することにより実現する補正である。図8のような3ライン×5画素のフィルタマトリクスにおいて中央の注目画素をd21とし、MTFフィルタ係数をM00〜M42、強度倍率をmag、フィルタへの入力画素データのマトリクスをd00〜d42、フィルタの出力をmtfoとすると、MTF補正演算は以下の式で表される。   The above MTF correction is a correction realized by calculating an emphasis component of peripheral pixels excluding the target pixel, multiplying the result by the intensity magnification, and adding the result to the target pixel. In the filter matrix of 3 lines × 5 pixels as shown in FIG. 8, the pixel of interest at the center is d21, the MTF filter coefficient is M00 to M42, the intensity magnification is mag, the matrix of input pixel data to the filter is d00 to d42, When the output is mtfo, the MTF correction calculation is expressed by the following equation.

mtfo=d21×M21+
mag×(d00×M00+d10×M10+d20×M20+d30×M30+d40×M40+d01×M01+d11×M11+d31×M31+d41×M41+d02×M02+d12×M12+d22×M22+d32×M33+d42×M42)
mtfo = d21 × M21 +
mag × (d00 × M00 + d10 × M10 + d20 × M20 + d30 × M30 + d40 × M40 + d01 × M01 + d11 × M11 + d31 × M31 + d41 × M41 + d02 × M02 + d12 × M12 + d22 × M22 + d32 × M33 + d42 × M42)

上記のフレアデータ除去は、スキャナ等の読み取りで発生するフレア光(原稿面から反射された拡散光以外の光)を除去する処理である。図9に示す3ライン×5画素の領域内で、しきい値T未満の値を持つ画素の値を積算して、画素数Nで割ることにより平均値(フレア補正量)を求め、この値を注目画素データから減算する。   The flare data removal is a process for removing flare light (light other than diffused light reflected from the document surface) generated by reading with a scanner or the like. In the region of 3 lines × 5 pixels shown in FIG. 9, the values of pixels having a value less than the threshold value T are integrated and divided by the number of pixels N to obtain an average value (flare correction amount). Is subtracted from the target pixel data.

以上の演算は、いずれも注目画素の前後のデータを参照する必要がある演算である。フィルタは3ライン×5画素を例に挙げたが、5ライン×7画素、それ以上のマトリクス範囲のフィルタも存在する。   All of the above operations are operations that need to refer to data before and after the pixel of interest. The filter is exemplified by 3 lines × 5 pixels, but there are also filters in a matrix range of 5 lines × 7 pixels or more.

通常、SIMD型マイクロプロセッサでの1命令の処理分を「1SIMD」と称する。例えばデジタルコピアの場合、1枚の原稿の画像処理は、原稿1ラインにおける画素数を「1SIMD」で処理できる画素数で割った回数に、ライン数を乗じて算出された全体回数の「SIMD」によって行なわれる。また、通常、ラインの方向を横方向として主走査方向と称し、縦方向を副走査方向と称する。よって、主走査方向の処理を行う場合、図10のように「1SIMD」ずつぴたりと連続してデータの処理ができれば効率が良い。   Usually, the processing of one instruction in the SIMD type microprocessor is referred to as “1 SIMD”. For example, in the case of a digital copier, the image processing of one original is performed by multiplying the number of pixels in one line of the original by the number of pixels that can be processed by “1 SIMD” and the total number of times “SIMD” calculated by multiplying the number of lines. Is done by. Also, the line direction is generally referred to as the main scanning direction, and the vertical direction is referred to as the sub-scanning direction. Therefore, when processing in the main scanning direction is performed, it is efficient if data can be processed continuously by “1 SIMD” as shown in FIG.

けれども、前述した処理のように近隣の画素データを参照する場合には、図11のように「1SIMD」のデータの両端の数個(この数個はフィルタの画素数で決まる)をオーバーラップさせた形で取り込み参照しなければならない。言うまでも無く、オーバーラップが無いほうが、処理効率は良い。   However, when neighboring pixel data is referred to as in the above-described processing, several data at the both ends of “1 SIMD” data (this number is determined by the number of pixels of the filter) are overlapped as shown in FIG. It must be imported and referenced in the form. Needless to say, the processing efficiency is better when there is no overlap.

ところで、下記の特許文献1、特許文献2、特許文献3及び特許文献4では、ネイバーフッドオペレーション(隣接処理)の改良を目指すものであるが、上記のようなオーベーラップの問題点を解決するものではない。
特開平11−15801号 特許第2756257号 特許第2812292号 特開2002−247347号
By the way, in the following Patent Document 1, Patent Document 2, Patent Document 3 and Patent Document 4, the improvement of the neighborhood operation (adjacent processing) is aimed at, but it does not solve the above-described problem of overwrap. .
JP-A-11-15801 Japanese Patent No. 2756257 Japanese Patent No. 2812292 JP 2002-247347 A

本発明は、SIMD型マイクロプロセッサにて、1ラインを複数「SIMD」により処理する場合に、上記のようなオーバーラップをなくし効率良くデータを処理できることを目的とする。   An object of the present invention is to eliminate the above-described overlap and efficiently process data when a single line is processed by a plurality of “SIMDs” in a SIMD type microprocessor.

本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
シーケンシャルユニットを含むグローバルプロセッサと、max個のプロセッサエレメントを有し、各プロセッサエレメントには0から(max−1)の序数が配置に従い順に付番され、
更に各プロセッサエレメントは、データを処理する演算器と、演算器の入力・出力のバスに接続された複数のレジスタとを含み、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、端からi番目(iは自然数、且つ、1≦i≦(第1の個数))のプロセッサエレメントからの上記バスは、反対の端のプロセッサエレメントから((第1の個数)−i)番目のプロセッサエレメントまで、夫々のバスと選択器を挟んで経路により接続しており、
プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントでは、夫々のプロセッサエレメントを中心にして第1の個数の範囲内の、左右に隣接するプロセッサエレメントのバスと、経路により接続しており、
プロセッサエレメント配置の両端のプロセッサエレメントが近傍に配置されており、
更に、
上記シーケンシャルユニットから各プロセッサエレメントへ送られるレジスタ制御信号が全てのプロセッサエレメントで一対であり、上記レジスタ制御信号に含まれる、レジスタの選択モードを表す信号が1本用意されており、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントが夫々、レジスタ選択変更装置を備え、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、上記レジスタ選択変更装置が、上記選択モードに従って、プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントと異なるレジスタを選択し得るように構成されている
ことを特徴とする。
The present invention has been made to achieve the above object. According to the first aspect of the present invention, there is provided a SIMD type microprocessor.
A global processor including sequential units, and max processor elements, each processor element is numbered in order from 0 to (max-1) ordinal,
Each processor element further includes an arithmetic unit for processing data and a plurality of registers connected to the input / output bus of the arithmetic unit.
With respect to processor elements within a predetermined first number range as viewed from both ends of the processor element arrangement, the i-th (i is a natural number and 1 ≦ i ≦ (first number)) processor element from the end The bus is connected from the processor element at the opposite end to the ((first number) -i) -th processor element by a path across each bus and a selector,
In the processor elements other than the processor elements within the first number range when viewed from both ends of the processor element arrangement, the buses of the processor elements adjacent to the left and right within the first number range centering on the respective processor elements , Connected by route,
The processor elements at both ends of the processor element arrangement are arranged in the vicinity,
Furthermore,
A register control signal sent from the sequential unit to each processor element is a pair in all the processor elements, and one signal indicating a register selection mode included in the register control signal is prepared.
Each of the processor elements within a predetermined first number range as viewed from both ends of the processor element arrangement includes a register selection changing device,
For the processor elements within a predetermined first number range when viewed from both ends of the processor element arrangement, the register selection changing device is within the first number range when viewed from both ends of the processor element arrangement according to the selection mode. A register different from a processor element other than the processor element can be selected .

本発明を利用することにより、以下のような効果を得ることができる。   By using the present invention, the following effects can be obtained.

まず、1ラインの画素数が多い画像処理において、余分なオーバーヘッドを減少させることができる。   First, in image processing with a large number of pixels in one line, extra overhead can be reduced.

プロセッサエレメントの配置をミラー配置にすることで、両端のプロセッサエレメント間の距離を減らすことができ、よって配線遅延による速度低下を防ぐことができる。   By making the arrangement of the processor elements into a mirror arrangement, the distance between the processor elements at both ends can be reduced, thereby preventing a reduction in speed due to wiring delay.

以下、図面を参照して本発明に係る好適な実施の形態を説明する。     DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments according to the present invention will be described below with reference to the drawings.

≪第1の実施の形態≫
図1は、本発明の第1の実施の形態に係るプロセッサエレメント12のブロック図である。図1は特にプロセッサエレメントグループ10の両端におけるプロセッサエレメント12を示す。
<< First Embodiment >>
FIG. 1 is a block diagram of a processor element 12 according to the first embodiment of the present invention. FIG. 1 particularly shows the processor elements 12 at both ends of the processor element group 10.

第1の実施の形態は、図7の従来技術例に加えて、PEシフトのためのバス接続を変更している。つまり、PEシフト選択器30を新たに設定している。   In the first embodiment, the bus connection for PE shift is changed in addition to the prior art example of FIG. That is, the PE shift selector 30 is newly set.

通常、両端のPE12のPEシフト用バスは、特定の値を入力、例えばGND接続して“0”を入力するようになっている。   Normally, the PE shift buses of the PEs 12 at both ends are inputted with a specific value, for example, “0” is connected by GND connection.

図1では、左隣に3個のプロセッサエレメントまで、右隣に3個のプロセッサエレメントまでの間でデータ通信できる仕様となっている。この個数は増減されてもよい。図1では、自プロセッサエレメントを含めて7ヶ所(のPE)から選択できる。また、図1では図示してないが、レジスタ14とシフト・拡張・バス選択器28’とのバスのサイズは、8ビットである。   In FIG. 1, the specification allows data communication between up to three processor elements on the left and up to three processor elements on the right. This number may be increased or decreased. In FIG. 1, it is possible to select from seven (PE) including its own processor element. Although not shown in FIG. 1, the bus size of the register 14 and the shift / extension / bus selector 28 'is 8 bits.

PE〔253〕、PE〔254〕、PE〔255〕とPE〔0〕、PE〔1〕、PE〔2〕とが、PEシフト選択器30により接続することで、図12のようなデータ通信が可能となる。図12にて、「注目PE」とは注目する演算器26が存在するPEを示し、「データ転送可能なPE」とは注目PEの演算器26と接続しデータをリード/ライトする対象のレジスタが属するPEを示す。L3は注目PEから左に3つ隣、L2は左に2つ隣、L1は左に1つ隣、Cは自PE、R1は右に1つ隣、R2は右に2つ隣、R3は右に3つ隣を表す。   PE [253], PE [254], PE [255] and PE [0], PE [1], and PE [2] are connected by the PE shift selector 30 so that data communication as shown in FIG. Is possible. In FIG. 12, “target PE” indicates a PE in which the notable calculator 26 exists, and “data transferable PE” indicates a register to which data is read / written by connecting to the notable PE calculator 26. Indicates the PE to which. L3 is 3 neighbors to the left from the PE of interest, L2 is 2 neighbors to the left, L1 is 1 neighbor to the left, C is its own PE, R1 is 1 neighbor to the right, R2 is 2 neighbors to the right, R3 is Three neighbors on the right.

例えば、図12ではPE〔254〕のバスは、左側ではPE〔251〕、PE〔252〕、及びPE〔253〕と接続され、右側ではPE〔255〕、PEシフト選択器30を介してPE〔0〕、及び同じくPEシフト選択器30を介してPE〔1〕と接続されている。PEシフト選択器30では、(PE〔0〕やPE〔1〕ではなく)“0”もしくは“0FFh”(全ビット“1”)を選択する。   For example, in FIG. 12, the PE [254] bus is connected to PE [251], PE [252], and PE [253] on the left side, and PE [255] and PE shift selector 30 on the right side. [0] and also connected to PE [1] via the PE shift selector 30. The PE shift selector 30 selects “0” or “0FFh” (all bits “1”) (not PE [0] or PE [1]).

PEシフト選択器30は、PE〔253〕、PE〔254〕、PE〔255〕、PE〔0〕、PE〔1〕及びPE〔2〕に接続される。これら両端3つずつのPEシフト選択器は、それぞれのPE12のブロックにある(図1では、説明の便宜により、ブロックの外に置いている。)。PEシフト選択器30の制御信号は、グローバルプロセッサ4のSCU5から供給される。PEシフト選択器30は、制御信号(“0”、“1”)によって、反対側のPEの選択が制御される。“0”とするならば、全ビット0であるからGNDに繋げば問題ない。“0ffh”とするならば、全ビット1であるからVCC接続でよい。PEシフト選択器30はセレクタを含むが、該セレクタは、セレクト信号2ビットであり且つ3to1のマルチプレクサでよい。   The PE shift selector 30 is connected to PE [253], PE [254], PE [255], PE [0], PE [1], and PE [2]. These three PE shift selectors at both ends are in the block of each PE 12 (in FIG. 1, they are placed outside the block for convenience of explanation). The control signal of the PE shift selector 30 is supplied from the SCU 5 of the global processor 4. The PE shift selector 30 controls the selection of the opposite PE by a control signal (“0”, “1”). If “0” is set, all bits are 0, so there is no problem if connected to GND. If “0ffh” is set, since all bits are 1, VCC connection is sufficient. The PE shift selector 30 includes a selector, which may be a 2-bit select signal and a 3-to-1 multiplexer.

なお、上記の「反対側」とは、PE〔0〕を対象としたときには、PE〔253〕、PE〔254〕もしくはPE〔255〕である。PE1を対象としたときには、PE〔254〕もしくはPE〔255〕である。PE2を対象としたときには、PE〔255〕である。一方、PE〔255〕を対象としたときには、PE〔0〕、PE〔1〕もしくはPE〔2〕である。PE〔254〕を対象としたときには、PE〔0〕もしくはPE〔1〕である。PE〔253〕を対象としたときには、PE〔0〕である。   The “opposite side” is PE [253], PE [254], or PE [255] when PE [0] is targeted. When PE1 is targeted, PE [254] or PE [255]. When PE2 is targeted, PE [255]. On the other hand, when PE [255] is targeted, it is PE [0], PE [1] or PE [2]. When PE [254] is targeted, it is PE [0] or PE [1]. When PE [253] is targeted, PE [0].

図2は、第1の実施の形態でのレジスタ14の制御信号を示す。レジスタ12の制御信号は、図2のようにグローバルプロセッサ4のシーケンシャルユニット(SCU)5から各PEに送られる。シーケンシャルユニット5は、グローバルプロセッサ4のメモリに書きこまれているプログラムをデコードし、制御信号をグローバルプロセッサ4並びにプロセッサエレメント12に送信し、各ブロックを動かす。   FIG. 2 shows control signals of the register 14 in the first embodiment. The control signal of the register 12 is sent from the sequential unit (SCU) 5 of the global processor 4 to each PE as shown in FIG. The sequential unit 5 decodes a program written in the memory of the global processor 4, sends a control signal to the global processor 4 and the processor element 12, and moves each block.

レジスタの選択は、第1のレジスタ選択信号32と第2のレジスタ選択信号34とによって為される。第1のレジスタ選択信号32は、PE〔3〕乃至PE〔252〕のレジスタ12に送られ、第2のレジスタ選択信号34は、PE〔0〕乃至PE〔〕、PE〔253〕乃至PE〔255〕に送られる。ここで、レジスタ選択信号(第1のレジスタ選択信号32、第2のレジスタ選択信号34)は、複数の選択信号の集合である。つまり、各PEにてレジスタが32本あったとしたら、読み取り処理及び書きこみ処理で1本ずつ必要であるので、最低64本の制御信号が、それぞれのレジスタ選択信号に必要となる。
The register is selected by the first register selection signal 32 and the second register selection signal 34. The first register selection signal 32 is sent to the registers 12 of PE [3] to PE [252], and the second register selection signal 34 is sent to PE [0] to PE [ 2 ], PE [253] to PE [255]. Here, the register selection signals (the first register selection signal 32 and the second register selection signal 34) are a set of a plurality of selection signals. In other words, if there are 32 registers in each PE, one register is required for the reading process and the writing process, so at least 64 control signals are required for each register selection signal.

例えば、図7において、1ラインのデータは左から順に「1SIMD」ずつ図6の外部入出力からロードされる。ここで、1番最初の「1SIMD」分のデータはR1に、2番目の「1SIMD」分のデータはR2に、更に、3番目の「1SIMD」分のデータはR3にロードするものとする。つまり、例えばR1を現在処理するべきデータとすると、処理すべき「1SIMD」分のデータの前後の「SIMD」分のデータを常に別のレジスタに置いておくことになる。言い換えると、R0には前回R1がロードしていた前SIMD分のデータが格納されており、R2には次回R1がロードする次SIMDのデータが格納されていることになる。   For example, in FIG. 7, one line of data is loaded from the external input / output of FIG. 6 in order of “1 SIMD” from the left. Here, the first “1 SIMD” data is loaded into R 1, the second “1 SIMD” data is loaded into R 2, and the third “1 SIMD” data is loaded into R 3. In other words, for example, if R1 is data to be processed at present, data of “SIMD” before and after “1 SIMD” of data to be processed is always placed in another register. In other words, data for the previous SIMD that was previously loaded by R1 is stored in R0, and data for the next SIMD that will be loaded by R1 next time is stored in R2.

ここで、あるフィルタ処理にて、例えばPE番号が1だけ大きいPEのR1レジスタからデータを参照し、それぞれのPEの演算器26の中のAレジスタ24の値と演算し、結果をAレジスタ24に格納する、とする。つまり、PE〔0〕のAレジスタ24はPE〔1〕のR1と、PE〔1〕のAレジスタ24はPE〔2〕のR1と、というように、PE〔0〕からPE〔254〕までのAレジスタ24は、夫々PE〔1〕からPE〔255〕のR1の値と演算することになる。   Here, in a certain filter process, for example, data is referred to from the R1 register of the PE whose PE number is larger by 1, and the data is calculated with the value of the A register 24 in the calculator 26 of each PE, and the result is stored in the A register 24 And store it in That is, the PE [0] A register 24 is PE [1] R1, the PE [1] A register 24 is PE [2] R1, and so on, from PE [0] to PE [254]. The A register 24 calculates the value of R1 from PE [1] to PE [255].

ここで、PE〔255〕のAレジスタ24は、PE〔0〕のR2の値と演算すれば、他のPEと同要件の演算を行なうことになり、且つ、第1の実施の形態を利用すればそれが容易に可能であることになる。この演算を実施するには、命令でレジスタを指定すればよい。命令の仕様は、「1SIMD」の範囲を超えるPEを参照するとき(即ち、反対側のPEを参照するとき)のレジスタを変える、というものになる。   Here, if the A register 24 of the PE [255] calculates the value of the R2 of the PE [0], the calculation of the same requirement as the other PEs is performed, and the first embodiment is used. This is easily possible. To perform this operation, a register may be specified by an instruction. The specification of the instruction is to change the register when referring to the PE exceeding the range of “1 SIMD” (that is, when referring to the PE on the opposite side).

また、前SIMDのデータを参照する場合、例えば、〔PE番号−3〕のPEのR1レジスタからデータを参照し、それぞれのPEの演算器26の中のAレジスタ24と演算し、結果をAレジスタ24に格納するような場合を、想定する。つまり、PE〔3〕のAレジスタ24はPE〔0〕のR1と、PE〔4〕のAジスタ24はPE〔1〕のR1と、というように、PE〔3〕からPE〔255〕までのAレジスタ24は、夫々PE〔0〕からPE〔252〕までのR1の値と演算することになる。ここで、PE〔0〕のAレジスタ24は、PE〔253〕のR0の値と演算すれば、他のPEと同要件の演算を行なうことになり、且つ、第1の実施の形態を利用すればそれが容易に可能であることになる。よって同様に、PE〔1〕のAレジスタ24はPE〔254〕のR0の値と演算し、PE〔2〕のAレジスタ24はPE〔255〕のR0の値と演算する。   Further, when referring to the data of the previous SIMD, for example, the data is referred to from the R1 register of the PE of [PE number-3], and is operated with the A register 24 in the calculator 26 of each PE, and the result is A A case where data is stored in the register 24 is assumed. That is, PE [3] A register 24 is PE [0] R1, PE [4] A register 24 is PE [1] R1, and so on, from PE [3] to PE [255]. The A register 24 calculates the value of R1 from PE [0] to PE [252]. Here, if the A register 24 of PE [0] calculates the value of R0 of PE [253], it will perform the same calculation as other PEs and use the first embodiment. This is easily possible. Similarly, the A register 24 of PE [1] operates with the value R0 of PE [254], and the A register 24 of PE [2] operates with the value R0 of PE [255].

上記の第1の実施の形態では、第1のレジスタ選択信号32と第2のレジスタ選択信号34とが、設定されている。更に、図示していないが、SCU5からレジスタの選択モードを表す信号を1本用意し、PE〔0〕乃至PE〔2〕、PE〔253〕乃至PE〔255〕の夫々のブロックにレジスタ選択変更装置を加え、レジスタ制御信号を全てのPEで一対とし、PE〔0〕乃至PE〔2〕、PE〔253〕乃至PE〔255〕のブロックでは選択モードに従い、他のPEで選択されるレジスタと異なるレジスタが選択され得る、という構成にしてもよい。   In the first embodiment, the first register selection signal 32 and the second register selection signal 34 are set. Further, although not shown, one signal indicating the register selection mode is prepared from the SCU 5, and the register selection is changed to each block of PE [0] to PE [2] and PE [253] to PE [255]. A device is added, and register control signals are paired for all PEs. In the PE [0] to PE [2] and PE [253] to PE [255] blocks, the registers selected by other PEs are selected according to the selection mode. A different register may be selected.

≪第2の実施の形態≫
第2の実施の形態では、次に説明するように、プロセッサエレメントの配置に工夫が施されている。それ以外の構成は、第1の実施の形態と同様である。
<< Second Embodiment >>
In the second embodiment, as will be described below, the arrangement of the processor elements is devised. The other configuration is the same as that of the first embodiment.

ウェハにプロセッサエレメント12をレイアウトする場合、図3のようなレイアウト配置にすると、PE〔0〕乃至PE〔2〕と、PE〔253〕乃至PE〔255〕との間のバス配線が非常に長くなる。すると、配線抵抗が増え、遅延が増大し、PEシフトの致命的なスピード劣化の決定的な要因となる。それら以外のPE間では、隣接処理の配線遅延は均等である。   When the processor element 12 is laid out on the wafer, the bus wiring between PE [0] to PE [2] and PE [253] to PE [255] is very long if the layout arrangement shown in FIG. Become. Then, wiring resistance increases, delay increases, and becomes a decisive factor of fatal speed deterioration of PE shift. Between the other PEs, the wiring delay of the adjacent processing is equal.

図4は、本発明の第2の実施の形態に係るプロセッサエレメントの配置である。全プロセッサエレメントの前半、後半で2分し、ミラー配置としている。このようにすれば、全プロセッサエレメントにて、隣接処理の配線遅延は略均等である。   FIG. 4 shows an arrangement of processor elements according to the second embodiment of the present invention. The first half and the second half of all the processor elements are divided into two, and the mirror arrangement is adopted. In this way, the wiring delay of the adjacent processing is substantially equal in all the processor elements.

本発明の第1の実施の形態に係るプロセッサエレメントのブロック図である。It is a block diagram of a processor element concerning a 1st embodiment of the present invention. 第1の実施の形態でのレジスタの制御信号を示す。The control signal of the register | resistor in 1st Embodiment is shown. 本発明に係るプロセッサエレメントの配置である。3 is an arrangement of processor elements according to the present invention. 本発明の第2の実施の形態に係るプロセッサエレメントの配置である。It is arrangement | positioning of the processor element which concerns on the 2nd Embodiment of this invention. SIMD型マイクロプロセッサの概略のブロック図である。It is a schematic block diagram of a SIMD type microprocessor. 図5のプロセッサエレメントをより詳しく示すブロック図である。FIG. 6 is a block diagram illustrating the processor element of FIG. 5 in more detail. 従来技術に係るプロセッサエレメントのブロック図である。It is a block diagram of the processor element which concerns on a prior art. MTF補正を示す模式図である。It is a schematic diagram which shows MTF correction | amendment. フレアデータ除去を示す模式図である。It is a schematic diagram which shows flare data removal. 1ラインと1SIMDの関係図(1)である。It is a relational diagram (1) of 1 line and 1 SIMD. 1ラインと1SIMDの関係図(2)である。It is a relational diagram (2) of 1 line and 1 SIMD. 本発明に係るデータ通信を示す表である。It is a table | surface which shows the data communication which concerns on this invention.

符号の説明Explanation of symbols

2・・・SIMD型マイクロプロセッサ、4・・・グローバルプロセッサ、12・・・プロセッサエレメント、26・・・演算器、28、28’・・・シフト・拡張・バス選択器、30・・・PEシフト選択器。 2 ... SIMD type microprocessor, 4 ... global processor, 12 ... processor element, 26 ... arithmetic unit, 28, 28 '... shift / expansion / bus selector, 30 ... PE Shift selector.

Claims (1)

シーケンシャルユニットを含むグローバルプロセッサと、max個のプロセッサエレメントを有し、各プロセッサエレメントには0から(max−1)の序数が配置に従い順に付番され、
更に各プロセッサエレメントは、データを処理する演算器と、演算器の入力・出力のバスに接続された複数のレジスタとを含み、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、端からi番目(iは自然数、且つ、1≦i≦(第1の個数))のプロセッサエレメントからの上記バスは、反対の端のプロセッサエレメントから((第1の個数)−i)番目のプロセッサエレメントまで、夫々のバスと選択器を挟んで経路により接続しており、
プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントでは、夫々のプロセッサエレメントを中心にして第1の個数の範囲内の、左右に隣接するプロセッサエレメントのバスと、経路により接続しており、
プロセッサエレメント配置の両端のプロセッサエレメントが近傍に配置されており、
更に、
上記シーケンシャルユニットから各プロセッサエレメントへ送られるレジスタ制御信号が全てのプロセッサエレメントで一対であり、上記レジスタ制御信号に含まれる、レジスタの選択モードを表す信号が1本用意されており、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントが夫々、レジスタ選択変更装置を備え、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、上記レジスタ選択変更装置が、上記選択モードに従って、プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントと異なるレジスタを選択し得るように構成されている
ことを特徴とするSIMD型マイクロプロセッサ。
A global processor including sequential units, and max processor elements, each processor element is numbered in order from 0 to (max-1) ordinal,
Each processor element further includes an arithmetic unit for processing data and a plurality of registers connected to the input / output bus of the arithmetic unit.
With respect to processor elements within a predetermined first number range as viewed from both ends of the processor element arrangement, the i-th (i is a natural number and 1 ≦ i ≦ (first number)) processor element from the end The bus is connected from the processor element at the opposite end to the ((first number) -i) -th processor element by a path across each bus and a selector,
In the processor elements other than the processor elements within the first number range when viewed from both ends of the processor element arrangement, the buses of the processor elements adjacent to the left and right within the first number range centering on the respective processor elements , Connected by route,
The processor elements at both ends of the processor element arrangement are arranged in the vicinity,
Furthermore,
A register control signal sent from the sequential unit to each processor element is a pair in all the processor elements, and one signal indicating a register selection mode included in the register control signal is prepared.
Each of the processor elements within a predetermined first number range as viewed from both ends of the processor element arrangement includes a register selection changing device,
For the processor elements within a predetermined first number range when viewed from both ends of the processor element arrangement, the register selection changing device is within the first number range when viewed from both ends of the processor element arrangement according to the selection mode. A SIMD type microprocessor configured to be able to select a register different from a processor element other than the processor element .
JP2007096152A 2007-04-02 2007-04-02 SIMD type microprocessor Expired - Fee Related JP4537420B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007096152A JP4537420B2 (en) 2007-04-02 2007-04-02 SIMD type microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007096152A JP4537420B2 (en) 2007-04-02 2007-04-02 SIMD type microprocessor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003159703A Division JP3971719B2 (en) 2003-06-04 2003-06-04 SIMD type microprocessor

Publications (2)

Publication Number Publication Date
JP2007193838A JP2007193838A (en) 2007-08-02
JP4537420B2 true JP4537420B2 (en) 2010-09-01

Family

ID=38449426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007096152A Expired - Fee Related JP4537420B2 (en) 2007-04-02 2007-04-02 SIMD type microprocessor

Country Status (1)

Country Link
JP (1) JP4537420B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5601817B2 (en) * 2009-10-28 2014-10-08 三菱電機株式会社 Parallel processing unit
JP6072428B2 (en) 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド Control device, storage device, and storage control method
JP5929485B2 (en) 2012-05-08 2016-06-08 ソニー株式会社 Control device, storage device, and data writing method
JP5949122B2 (en) 2012-05-11 2016-07-06 ソニー株式会社 Control device, storage device, and storage control method
JP5983019B2 (en) 2012-05-17 2016-08-31 ソニー株式会社 Control device, storage device, and storage control method
JP6329412B2 (en) * 2014-03-26 2018-05-23 株式会社メガチップス SIMD processor

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63316168A (en) * 1987-06-01 1988-12-23 アプライド・インテリジェント・システムズ・インコーポレイテッド Parallel adjacent computation processing system and method
JPH06139211A (en) * 1992-10-23 1994-05-20 Nippon Telegr & Teleph Corp <Ntt> Parallel data processor
JPH0863586A (en) * 1994-06-17 1996-03-08 Applied Intelligent Syst Inc Cache burst architecture for parallel processing such as image processing,etc.
JPH08180177A (en) * 1994-12-26 1996-07-12 Sony Corp Parallel processor
JPH09231347A (en) * 1996-02-22 1997-09-05 Nec Corp Image processor
JPH1115801A (en) * 1997-06-24 1999-01-22 Sony Corp Data arithmetic unit, method and transmission medium
JP2001051957A (en) * 1999-08-04 2001-02-23 Hitachi Ltd On-chip multiplexer
JP2001134538A (en) * 1999-11-05 2001-05-18 Ricoh Co Ltd Signal processor
JP2002298135A (en) * 2001-04-02 2002-10-11 Ricoh Co Ltd Thinning device and enlarging device in simd type microprocessor
JP3971719B2 (en) * 2003-06-04 2007-09-05 株式会社リコー SIMD type microprocessor

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63316168A (en) * 1987-06-01 1988-12-23 アプライド・インテリジェント・システムズ・インコーポレイテッド Parallel adjacent computation processing system and method
JPH06139211A (en) * 1992-10-23 1994-05-20 Nippon Telegr & Teleph Corp <Ntt> Parallel data processor
JPH0863586A (en) * 1994-06-17 1996-03-08 Applied Intelligent Syst Inc Cache burst architecture for parallel processing such as image processing,etc.
JPH08180177A (en) * 1994-12-26 1996-07-12 Sony Corp Parallel processor
JPH09231347A (en) * 1996-02-22 1997-09-05 Nec Corp Image processor
JPH1115801A (en) * 1997-06-24 1999-01-22 Sony Corp Data arithmetic unit, method and transmission medium
JP2001051957A (en) * 1999-08-04 2001-02-23 Hitachi Ltd On-chip multiplexer
JP2001134538A (en) * 1999-11-05 2001-05-18 Ricoh Co Ltd Signal processor
JP2002298135A (en) * 2001-04-02 2002-10-11 Ricoh Co Ltd Thinning device and enlarging device in simd type microprocessor
JP3971719B2 (en) * 2003-06-04 2007-09-05 株式会社リコー SIMD type microprocessor

Also Published As

Publication number Publication date
JP2007193838A (en) 2007-08-02

Similar Documents

Publication Publication Date Title
JP4537420B2 (en) SIMD type microprocessor
JP4913685B2 (en) SIMD type microprocessor and control method of SIMD type microprocessor
US8320696B2 (en) Image processing apparatus, image processing method, and program
CN108073549B (en) Convolution operation device and method
JP2006260479A (en) Simd type microprocessor and data processing method
JP3971719B2 (en) SIMD type microprocessor
JP4786484B2 (en) Data supply method for arithmetic processing and image processing apparatus
JP2010108084A (en) Image processing apparatus
JP4143302B2 (en) Image processing apparatus, image processing method, control program, and recording medium
JP2009015555A (en) Simd microprocessor and data transfer method for simd microprocessor
US8902474B2 (en) Image processing apparatus, control method of the same, and program
JP6580381B2 (en) Image processing apparatus and image processing method
US20120093410A1 (en) Image processing apparatus and method for operating image processing apparatus
JP2007073010A (en) Simd processor and image processing method using the simd method processor and image processor
US6963420B1 (en) Image processing apparatus
JP5889747B2 (en) Semiconductor device
JP4992753B2 (en) Image processing apparatus and image processing method
US8503793B2 (en) Correlation processing apparatus and medium readable by correlation processing apparatus
JP5018486B2 (en) Image processing circuit and image processing apparatus
JP4372371B2 (en) Thinning device and enlargement device in SIMD type microprocessor
JP4482356B2 (en) Image processing method and image processing apparatus using SIMD processor
JP4516495B2 (en) Data processing method in SIMD type microprocessor
JP2005269502A (en) Image processing apparatus and image processing method
JP6230468B2 (en) Image processing apparatus, image processing method, and program
JP7447519B2 (en) Image processing device, program, and image processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090909

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100617

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees