JP3971719B2 - SIMD type microprocessor - Google Patents
SIMD type microprocessor Download PDFInfo
- Publication number
- JP3971719B2 JP3971719B2 JP2003159703A JP2003159703A JP3971719B2 JP 3971719 B2 JP3971719 B2 JP 3971719B2 JP 2003159703 A JP2003159703 A JP 2003159703A JP 2003159703 A JP2003159703 A JP 2003159703A JP 3971719 B2 JP3971719 B2 JP 3971719B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- processor element
- register
- data
- processor 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
Links
Images
Landscapes
- Advance Control (AREA)
- Image Processing (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像データ等を高速処理するために単一の命令で複数データに対して同じ処理を行うSIMD(Single Instruction−stream Multiple Data− stream)型マイクロプロセッサに関し、特に、プロセッサエレメントのネイバーフッドオペレーション(隣接処理)を行なうSIMD型マイクロプロセッサに関わる。
【0002】
【従来の技術】
近年、デジタル複写機やファクシミリ装置等の画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。こういった画像処理では複数のデータに対して同一の処理をすることが多く、1命令で1つのデータを処理するSISD(Single Instruction−stream Single Data−stream)型マイクロプロセッサよりも、1命令で複数のデータを同時処理するSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサが用いられることが多い。
【0003】
SIMD型マイクロプロセッサ2は、図5のようにグローバルプロセッサ4と、演算アレイ6と、レジスタファイル8からなる。図5はデータの流れを説明するため簡略化されており、図5のプロセッサエレメントグループ10はプロセッサエレメント(PE)の集合体である。
【0004】
なお、本明細書では便宜上、プロセッサエレメントは256個という構成にして説明している。個々のプロセッサエレメントの構成は、後で説明する。
【0005】
例えば、スキャナやカメラなどの外部入力装置から入力された画像データは、レジスタファイル8に書き込まれ、演算アレイ6にて論理算術演算等の含まれた画像処理が行われ、再度レジスタファイル8に書き込まれ、プリンタ・記憶装置などの外部出力装置に出力される。グローバルプロセッサ4は、プログラムを解読し制御信号をレジスタファイル8や演算アレイ6に送信する。グローバルプロセッサ4はグローバルプロセッサそのものでの演算処理・データ転送・逐次処理等も行う。
【0006】
図6は、図5のプロセッサエレメント(PE)12をより詳しく示す従来技術例である。図6では、プロセッサエレメント12はPE〔0〕〜PE〔255〕までの256個用意されている。なお個々のプロセッサエレメントは順に0乃至255の序数が「PE番号」として付番されている。本明細書では、各図面の左方から順に付番されているものとする。
【0007】
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ビットとなる。
【0008】
図6でのデータの流れは概略次のようになる。まず、外部入力からRレジスタ14に転送された8ビット画像データは、シフト・拡張器18によって16ビットデータに拡張もしくはシフト処理され、第2の記憶部22に転送され、ALU16でデータ処理を施される。その結果Aレジスタ24に書き込まれたデータは、シフト・拡張器18からRレジスタ14に書きこまれ外部出力に出力される。
【0009】
更に図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により示している。
【0010】
本明細書では、この近接するPEにおけるRレジスタ14と演算部26とのデータ通信を、「PEシフト」と称することにする。一般的には、ネイバーフッドオペレーション(隣接処理)とも呼ばれている。
【0011】
PEシフトが使用される画像処理には、MTF(Modulation Transfer Function)補正、フレアデータ除去などがある。
【0012】
上記のMTF補正は、注目画素を除く周辺画素の強調成分を計算して、その結果に強度倍率を乗じて、注目画素に加算することにより実現する補正である。図8のような3ライン×5画素のフィルタマトリクスにおいて中央の注目画素をd21とし、MTFフィルタ係数をM00〜M42、強度倍率をmag、フィルタへの入力画素データのマトリクスをd00〜d42、フィルタの出力をmtfoとすると、MTF補正演算は以下の式で表される。
【0013】
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)
【0014】
上記のフレアデータ除去は、スキャナ等の読み取りで発生するフレア光(原稿面から反射された拡散光以外の光)を除去する処理である。図9に示す3ライン×5画素の領域内で、しきい値T未満の値を持つ画素の値を積算して、画素数Nで割ることにより平均値(フレア補正量)を求め、この値を注目画素データから減算する。
【0015】
以上の演算は、いずれも注目画素の前後のデータを参照する必要がある演算である。フィルタは3ライン×5画素を例に挙げたが、5ライン×7画素、それ以上のマトリクス範囲のフィルタも存在する。
【0016】
通常、SIMD型マイクロプロセッサでの1命令の処理分を「1SIMD」と称する。例えばデジタルコピアの場合、1枚の原稿の画像処理は、原稿1ラインにおける画素数を「1SIMD」で処理できる画素数で割った回数に、ライン数を乗じて算出された全体回数の「SIMD」によって行なわれる。また、通常、ラインの方向を横方向として主走査方向と称し、縦方向を副走査方向と称する。よって、主走査方向の処理を行う場合、図10のように「1SIMD」ずつぴたりと連続してデータの処理ができれば効率が良い。
【0017】
けれども、前述した処理のように近隣の画素データを参照する場合には、図11のように「1SIMD」のデータの両端の数個(この数個はフィルタの画素数で決まる)をオーバーラップさせた形で取り込み参照しなければならない。言うまでも無く、オーバーラップが無いほうが、処理効率は良い。
【0018】
ところで、下記の特許文献1、特許文献2、特許文献3及び特許文献4では、ネイバーフッドオペレーション(隣接処理)の改良を目指すものであるが、上記のようなオーベーラップの問題点を解決するものではない。
【0019】
【特許文献1】
特開平11−15801号
【特許文献2】
特許第2756257号
【特許文献3】
特許第2812292号
【特許文献4】
特開2002−247347号
【0020】
【発明が解決しようとする課題】
本発明は、SIMD型マイクロプロセッサにて、1ラインを複数「SIMD」により処理する場合に、上記のようなオーバーラップをなくし効率良くデータを処理できることを目的とする。
【0021】
【課題を解決するための手段】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
グローバルプロセッサと、max個のプロセッサエレメントを有し、各プロセッサエレメントには0から(max−1)の序数が配置に従い順に付番され、
更に各プロセッサエレメントは、データを処理する演算器と、演算器の入力・出力のバスに接続された複数のレジスタとを含み、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、端からi番目(iは自然数、且つ、1≦i≦(第1の個数))のプロセッサエレメントからの上記バスは、反対の端のプロセッサエレメントから((第1の個数)−i)番目のプロセッサエレメントまで、夫々のバスと選択器を挟んで経路により接続しており、
プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントでは、夫々のプロセッサエレメントを中心にして第1の個数の範囲内の、左右に隣接するプロセッサエレメントのバスと、経路により接続しており、
各プロセッサエレメントの演算器の入力及び出力のバスに接続する複数のレジスタのうち、いずれを選択するかを指示する上記グローバルプロセッサからの選択信号が、プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントと、プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントとで、異なることを特徴とする。
【0022】
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
記選択器が、制御信号により各プロセッサエレメントの演算器に特定の値を設定することを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
【0023】
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
プロセッサエレメントのレイアウト配置において、
個別のプロセッサエレメント間の配線が均等な距離になるように、プロセッサエレメント配置の両端のプロセッサエレメントが近傍に配置されることを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
【0024】
【発明の実施の形態】
以下、図面を参照して本発明に係る好適な実施の形態を説明する。
【0025】
≪第1の実施の形態≫
図1は、本発明の第1の実施の形態に係るプロセッサエレメント12のブロック図である。図1は特にプロセッサエレメントグループ10の両端におけるプロセッサエレメント12を示す。
【0026】
第1の実施の形態は、図7の従来技術例に加えて、PEシフトのためのバス接続を変更している。つまり、PEシフト選択器30を新たに設定している。
【0027】
通常、両端のPE12のPEシフト用バスは、特定の値を入力、例えばGND接続して“0”を入力するようになっている。
【0028】
図1では、左隣に3個のプロセッサエレメントまで、右隣に3個のプロセッサエレメントまでの間でデータ通信できる仕様となっている。この個数は増減されてもよい。図1では、自プロセッサエレメントを含めて7ヶ所(のPE)から選択できる。また、図1では図示してないが、レジスタ14とシフト・拡張・バス選択器28’とのバスのサイズは、8ビットである。
【0029】
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つ隣を表す。
【0030】
例えば、図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")を選択する。
【0031】
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のマルチプレクサでよい。
【0032】
なお、上記の「反対側」とは、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〕である。
【0033】
図2は、第1の実施の形態でのレジスタ14の制御信号を示す。レジスタ12の制御信号は、図2のようにグローバルプロセッサ4のシーケンシャルユニット(SCU)5から各PEに送られる。シーケンシャルユニット5は、グローバルプロセッサ4のメモリに書きこまれているプログラムをデコードし、制御信号をグローバルプロセッサ4並びにプロセッサエレメント12に送信し、各ブロックを動かす。
【0034】
レジスタの選択は、第1のレジスタ選択信号32と第2のレジスタ選択信号34とによって為される。第1のレジスタ選択信号32は、PE〔3〕乃至PE〔252〕のレジスタ12に送られ、第2のレジスタ選択信号34は、PE〔0〕乃至PE〔0〕、PE〔253〕乃至PE〔255〕に送られる。ここで、レジスタ選択信号(第1のレジスタ選択信号32、第2のレジスタ選択信号34)は、複数の選択信号の集合である。つまり、各PEにてレジスタが32本あったとしたら、読み取り処理及び書きこみ処理で1本ずつ必要であるので、最低64本の制御信号が、それぞれのレジスタ選択信号に必要となる。
【0035】
例えば、図7において、1ラインのデータは左から順に「1SIMD」ずつ図6の外部入出力からロードされる。ここで、1番最初の「1SIMD」分のデータはR1に、2番目の「1SIMD」分のデータはR2に、更に、3番目の「1SIMD」分のデータはR3にロードするものとする。つまり、例えばR1を現在処理するべきデータとすると、処理すべき「1SIMD」分のデータの前後の「SIMD」分のデータを常に別のレジスタに置いておくことになる。言い換えると、R0には前回R1がロードしていた前SIMD分のデータが格納されており、R2には次回R1がロードする次SIMDのデータが格納されていることになる。
【0036】
ここで、あるフィルタ処理にて、例えば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の値と演算することになる。
【0037】
ここで、PE〔255〕のAレジスタ24は、PE〔0〕のR2の値と演算すれば、他のPEと同要件の演算を行なうことになり、且つ、第1の実施の形態を利用すればそれが容易に可能であることになる。この演算を実施するには、命令でレジスタを指定すればよい。命令の仕様は、「1SIMD」の範囲を超えるPEを参照するとき(即ち、反対側のPEを参照するとき)のレジスタを変える、というものになる。
【0038】
また、前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の値と演算する。
【0039】
上記の第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で選択されるレジスタと異なるレジスタが選択され得る、という構成にしてもよい。
【0040】
≪第2の実施の形態≫
第2の実施の形態では、次に説明するように、プロセッサエレメントの配置に工夫が施されている。それ以外の構成は、第1の実施の形態と同様である。
【0041】
ウェハにプロセッサエレメント12をレイアウトする場合、図3のようなレイアウト配置にすると、PE〔0〕乃至PE〔2〕と、PE〔253〕乃至PE〔255〕との間のバス配線が非常に長くなる。すると、配線抵抗が増え、遅延が増大し、PEシフトの致命的なスピード劣化の決定的な要因となる。それら以外のPE間では、隣接処理の配線遅延は均等である。
【0042】
図4は、本発明の第2の実施の形態に係るプロセッサエレメントの配置である。全プロセッサエレメントの前半、後半で2分し、ミラー配置としている。このようにすれば、全プロセッサエレメントにて、隣接処理の配線遅延は略均等である。
【0043】
【発明の効果】
本発明を利用することにより、以下のような効果を得ることができる。
【0044】
まず、1ラインの画素数が多い画像処理において、余分なオーバーヘッドを減少させることができる。
【0045】
プロセッサエレメントの配置をミラー配置にすることで、両端のプロセッサエレメント間の距離を減らすことができ、よって配線遅延による速度低下を防ぐことができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態に係るプロセッサエレメントのブロック図である。
【図2】 第1の実施の形態でのレジスタの制御信号を示す。
【図3】 本発明に係るプロセッサエレメントの配置である。
【図4】 本発明の第2の実施の形態に係るプロセッサエレメントの配置である。
【図5】 SIMD型マイクロプロセッサの概略のブロック図である。
【図6】 図5のプロセッサエレメントをより詳しく示すブロック図である。
【図7】 従来技術に係るプロセッサエレメントのブロック図である。
【図8】 MTF補正を示す模式図である。
【図9】 フレアデータ除去を示す模式図である。
【図10】 1ラインと1SIMDの関係図(1)である。
【図11】 1ラインと1SIMDの関係図(2)である。
【図12】 本発明に係るデータ通信を示す表である。
【符号の説明】
2・・・SIMD型マイクロプロセッサ、4・・・グローバルプロセッサ、12・・・プロセッサエレメント、26・・・演算器、28、28’・・・シフト・拡張・バス選択器、30・・・PEシフト選択器。[0001]
BACKGROUND OF THE INVENTION
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).
[0002]
[Prior art]
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.
[0003]
The
[0004]
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.
[0005]
For example, image data input from an external input device such as a scanner or a camera is written to the
[0006]
FIG. 6 is a prior art example showing the processor element (PE) 12 of FIG. 5 in more detail. In FIG. 6, 256
[0007]
One
[0008]
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 /
[0009]
Further, in the prior art example of FIG. 7, the path between the R register 14 and the shift /
[0010]
In this specification, data communication between the R register 14 and the
[0011]
Image processing using PE shift includes MTF (Modulation Transfer Function) correction and flare data removal.
[0012]
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.
[0013]
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)
[0014]
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.
[0015]
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.
[0016]
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.
[0017]
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.
[0018]
By the way, the following
[0019]
[Patent Document 1]
Japanese Patent Laid-Open No. 11-15801 [Patent Document 2]
Patent No. 2756257 [Patent Document 3]
Patent No. 2812292 [Patent Document 4]
JP 2002-247347 A
[Problems to be solved by the invention]
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.
[0021]
[Means for Solving the Problems]
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 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 as 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,
A selection signal from the global processor that indicates which one of a plurality of registers connected to the input and output buses of the arithmetic unit of each processor element is selected is a predetermined first when viewed from both ends of the processor element arrangement. The processor elements within the range of the number of the processor elements are different from the processor elements other than the processor elements within the predetermined first number of ranges as viewed from both ends of the processor element arrangement .
[0022]
According to a second aspect of the present invention, there is provided a SIMD type microprocessor.
2. The SIMD type microprocessor according to
[0023]
According to the third aspect of the present invention, there is provided a SIMD type microprocessor.
In the layout arrangement of processor elements ,
2. The SIMD type microprocessor according to
[0024]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments according to the present invention will be described below with reference to the drawings.
[0025]
<< First Embodiment >>
FIG. 1 is a block diagram of a
[0026]
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.
[0027]
Normally, the PE shift buses of the
[0028]
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.
[0029]
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
[0030]
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]).
[0031]
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
[0032]
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].
[0033]
FIG. 2 shows control signals of the register 14 in the first embodiment. The control signal of the
[0034]
The register is selected by the first
[0035]
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
[0036]
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
[0037]
Here, if the
[0038]
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
[0039]
In the first embodiment, the first
[0040]
<< 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.
[0041]
When the
[0042]
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.
[0043]
【The invention's effect】
By using the present invention, the following effects can be obtained.
[0044]
First, in image processing with a large number of pixels in one line, extra overhead can be reduced.
[0045]
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.
[Brief description of the drawings]
FIG. 1 is a block diagram of a processor element according to a first embodiment of the present invention.
FIG. 2 shows a register control signal in the first embodiment.
FIG. 3 is an arrangement of processor elements according to the present invention.
FIG. 4 is an arrangement of processor elements according to a second embodiment of the present invention.
FIG. 5 is a schematic block diagram of a SIMD type microprocessor.
6 is a block diagram showing the processor element of FIG. 5 in more detail.
FIG. 7 is a block diagram of a processor element according to the prior art.
FIG. 8 is a schematic diagram showing MTF correction.
FIG. 9 is a schematic diagram showing flare data removal.
FIG. 10 is a relational diagram (1) between one line and one SIMD.
FIG. 11 is a relational diagram (2) between one line and one SIMD.
FIG. 12 is a table showing data communication according to the present invention.
[Explanation of symbols]
2 ... SIMD type microprocessor, 4 ... global processor, 12 ... processor element, 26 ... arithmetic unit, 28, 28 '... shift / expansion / bus selector, 30 ... PE Shift selector.
Claims (3)
更に各プロセッサエレメントは、データを処理する演算器と、演算器の入力・出力のバスに接続された複数のレジスタとを含み、
プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントでは、端からi番目(iは自然数、且つ、1≦i≦(第1の個数))のプロセッサエレメントからの上記バスは、反対の端のプロセッサエレメントから((第1の個数)−i)番目のプロセッサエレメントまで、夫々のバスと選択器を挟んで経路により接続しており、
プロセッサエレメント配置の両端から見て第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントでは、夫々のプロセッサエレメントを中心にして第1の個数の範囲内の、左右に隣接するプロセッサエレメントのバスと、経路により接続しており、
各プロセッサエレメントの演算器の入力及び出力のバスに接続する複数のレジスタのうち、いずれを選択するかを指示する上記グローバルプロセッサからの選択信号が、プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメントと、プロセッサエレメント配置の両端から見て所定の第1の個数の範囲内のプロセッサエレメント以外のプロセッサエレメントとで、異なることを特徴とするSIMD型マイクロプロセッサ。 A global processor 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 as 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,
A selection signal from the global processor that indicates which one of a plurality of registers connected to the input and output buses of the arithmetic unit of each processor element is selected is a predetermined first when viewed from both ends of the processor element arrangement. And a processor element other than the processor elements within a predetermined first number range as viewed from both ends of the processor element arrangement .
個別のプロセッサエレメント間の配線が均等な距離になるように、プロセッサエレメント配置の両端のプロセッサエレメントが近傍に配置されることを特徴とする請求項1に記載のSIMD型マイクロプロセッサ。In the layout arrangement of processor elements ,
2. The SIMD type microprocessor according to claim 1 , wherein the processor elements at both ends of the processor element arrangement are arranged in the vicinity so that the wiring between the individual processor elements becomes an equal distance .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003159703A JP3971719B2 (en) | 2003-06-04 | 2003-06-04 | SIMD type microprocessor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003159703A JP3971719B2 (en) | 2003-06-04 | 2003-06-04 | SIMD type microprocessor |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007096152A Division JP4537420B2 (en) | 2007-04-02 | 2007-04-02 | SIMD type microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004362253A JP2004362253A (en) | 2004-12-24 |
| JP3971719B2 true JP3971719B2 (en) | 2007-09-05 |
Family
ID=34052695
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003159703A Expired - Fee Related JP3971719B2 (en) | 2003-06-04 | 2003-06-04 | SIMD type microprocessor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3971719B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007193838A (en) * | 2007-04-02 | 2007-08-02 | Ricoh Co Ltd | SIMD type microprocessor |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007073010A (en) * | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | SIMD processor, image processing method using the SIMD processor, and image processing apparatus |
| WO2009131007A1 (en) * | 2008-04-22 | 2009-10-29 | 日本電気株式会社 | Simd parallel computer system, simd parallel computing method, and control program |
| JP5055393B2 (en) * | 2010-02-15 | 2012-10-24 | 株式会社リコー | SIMD type microprocessor |
| JP5760532B2 (en) * | 2011-03-14 | 2015-08-12 | 株式会社リコー | PROCESSOR DEVICE AND ITS OPERATION METHOD |
-
2003
- 2003-06-04 JP JP2003159703A patent/JP3971719B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007193838A (en) * | 2007-04-02 | 2007-08-02 | Ricoh Co Ltd | SIMD type microprocessor |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004362253A (en) | 2004-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4537420B2 (en) | SIMD type microprocessor | |
| US6249550B1 (en) | Motion vector estimating apparatus with high speed and method of estimating motion vector | |
| US8320696B2 (en) | Image processing apparatus, image processing method, and program | |
| CN101495952A (en) | Display processing line buffer incorporating pipeline overlap | |
| JP3971719B2 (en) | SIMD type microprocessor | |
| US20020003632A1 (en) | Error diffusion processing device | |
| JP4478050B2 (en) | SIMD type microprocessor and data processing method | |
| CN102164226B (en) | Image processing apparatus,image processing circuit and image processing method | |
| JP2012050009A (en) | Image processing apparatus and control method of the same | |
| JP4786484B2 (en) | Data supply method for arithmetic processing and image processing apparatus | |
| US20160232641A1 (en) | Method for efficient median filtering | |
| US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
| JP3986877B2 (en) | Image processing device | |
| JP5018486B2 (en) | Image processing circuit and image processing apparatus | |
| JP4372371B2 (en) | Thinning device and enlargement device in SIMD type microprocessor | |
| JP5889747B2 (en) | Semiconductor device | |
| JP4992753B2 (en) | Image processing apparatus and image processing method | |
| JP2003203225A (en) | Data conversion device, image processing device, and data conversion method | |
| JP2007073010A (en) | SIMD processor, image processing method using the SIMD processor, and image processing apparatus | |
| JP4408113B2 (en) | Signal processing method | |
| JP2005269502A (en) | Image processing apparatus and image processing method | |
| JP4516495B2 (en) | Data processing method in SIMD type microprocessor | |
| JP2005311745A (en) | Image processor | |
| JP5438390B2 (en) | Image processing apparatus and control method thereof | |
| US20240126831A1 (en) | Depth-wise convolution accelerator using MAC array processor structure |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050916 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070122 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
| 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: 20070605 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070608 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |