JP2007102799A - ソート機能を有するsimd型マイクロプロセッサ - Google Patents
ソート機能を有するsimd型マイクロプロセッサ Download PDFInfo
- Publication number
- JP2007102799A JP2007102799A JP2006294342A JP2006294342A JP2007102799A JP 2007102799 A JP2007102799 A JP 2007102799A JP 2006294342 A JP2006294342 A JP 2006294342A JP 2006294342 A JP2006294342 A JP 2006294342A JP 2007102799 A JP2007102799 A JP 2007102799A
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- stored
- value
- type microprocessor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
【解決手段】複数のプロセッサエレメントを有するSIMD型マイクロプロセッサにおいて、各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第1のインストラクションにて、比較の結果、大きい方のデータを該特定のレジスタに格納し、小さい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納することを特徴とする。
【選択図】図3
Description
2.R0とR1とのMIN演算を行い、結果をR17に格納する。
3.R2とR17とのMIN演算を行い、結果をR18に格納する。
4.R2とR17とのMAX演算を行い、結果をR17に格納する。
5.R16とR17とのMAX演算を行い、結果をR16に格納する。
6.R16とR17とのMIN演算を行い、結果をR17に格納する。
(1)「列」方向に3画素のデータをソートする(「SIMD」であるから、3列分、同時実行可能である。)。;6サイクル
(2)「行」方向に3画素のデータをソートする。;3行で10サイクル
(3)対角線方向に3画素のデータをソートする。;6サイクル
となり、全体で22サイクルが必要となる。上記(2)においては、3画素のMAX、MINを求める際に、ソート処理が不要であり2サイクルで求められる。よって、処理時間が3行分のソートに必要な18サイクルよりは短く済む。
複数のプロセッサエレメントを有するSIMD型マイクロプロセッサであって、
各プロセッサエレメント内にソートバッファレジスタを有し、
各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第1のインストラクションにて、
比較の結果、大きい方のデータを該特定のレジスタに格納し、
小さい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納し、
更に、
各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第2のインストラクションにて、
比較の結果、小さい方のデータを該特定のレジスタに格納し、
大きい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納し、
上記ソースレジスタ及び上記ディスティネーションレジスタとして上記ソートバッファレジスタが指示され、このことにより各プロセッサエレメント内にてソート処理が行われることを特徴とする
SIMD型マイクロプロセッサである。
このグローバルプロセッサ4そのものは、いわゆるSISD型のプロセッサであり、プログラムRAM10とデータRAM12を内蔵し(図2参照)、プログラムを解読し各種制御信号を生成する。この制御信号は内蔵する各種ブロック以外に、レジスタファイル6、演算アレイ8にも供給される。また、GP(グローバルプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理をおこなう。
PE(プロセッサエレメント)命令で処理されるデータを保持している。PE(プロセッサエレメント)3は、公知のように、SIMD(Single Instruction−Stream,Multiple Data−Stream)型プロセッサにおいて個別の演算を実行する構成単位である。図2のレジスタファイル6及び演算アレイ8が示すように、図2のSIMD型マイクロプロセッサ2では256個のPE3を含んでいる。上記のPE命令はSIMD型の命令であり、レジスタファイル6に保持されている複数のデータに対し、同時に同じ処理を行なう。このレジスタファイル6からのデータの読み出し/書き込みの制御はグローバルプロセッサ4からの制御によって行なわれる。読み出されたデータは演算アレイ8に送られ、演算アレイ8での演算処理後にレジスタファイル6に書き込まれる。
PE命令の演算処理が行なわれる。処理の制御はすべてグローバルプロセッサ4から行なわれる。
・PE[n]
と表すことにする。従って、図2のSIMD型マイクロプロセッサ2は、左方から、PE[0]、PE[2]、PE[3]、・・・PE[254]、PE[255]により、構成される。
図3は、本発明の第1の実施の形態に係るSIMD型マイクロプロセッサ2のブロック図、特に、1つのPE3部分を拡大したブロック図を示す。
・ALU36、
・2つのALUラッチ(ALT[1]50−1、ALT[2]50−2)、
・演算結果を格納するAレジスタ38、
・テンポラリレジスタとして利用される2つのFレジスタ(F1レジスタ40−1、F2レジスタ40−2)、
・ALU36より出力されるキャリーをラッチするCF(キャリーフラグ)54、
を含んでいる。Aレジスタ38とALU36との間には、マルチプレクサ52が挿入されて設置されており、Aレジスタ38に格納する値として、ALU36での演算結果、若しくは2つのALUラッチ(ALT[1]50−1、ALT[2]50−2)の内容の、都合3つから1つのデータが選択されることが可能となっている。このマルチプレクサ52の選択を制御する選択信号として、
・グローバルプロセッサ4からの制御信号[1]と、
・ALU36から出力されたキャリーと
が入力されている。ここで、ALU36においては、通常の演算命令を行う場合には、ALU36の演算結果をAレジスタ38に入力するようにし、(後で説明する)「MAXS」命令若しくは「MINS」命令を実行する場合には、キャリーによってALT[1]とALT[2]のどちらかが選択されてAレジスタ38に入力するように、上記選択信号により制御されるのが望ましい。
2つの比較対象データが符号無しデータの場合は、上記のように比較結果をキャリー出力によって判断することが可能である。しかし、2つの比較対象データが符号付きデータの場合には、比較結果は、ネガティブビット(ALU36の減算結果の最上位ビット)と、オーバフロービットとの、排他的論理和によって判断される必要がある。
まず、上記の図3又は図4にて示されるSIMD型マイクロプロセッサ2を利用すれば、すでにソート済みのデータに対して、引き続き新たなデータが付加更新されてきた場合に、ソート処理を効率よく行うことができる。
2.Aレジスタ38とR4とのデータの比較を行い、大きい方のデータをAレジスタ38に残す。
3.Aレジスタ38とR3とのデータの比較を行い、大きい方のデータをAレジスタ38に残し、小さい方のデータをR4に格納する。
4.Aレジスタ38とR2とのデータの比較を行い、大きい方のデータをAレジスタに残し、小さい方のデータをR3レジスタに格納する。
5.Aレジスタ38とR1とのデータの比較を行い、大きい方のデータをAレジスタに残し、小さい方のデータをR2レジスタに格納する。
6.Aレジスタ38とR0とのデータの比較を行い、大きい方のデータをAレジスタに残し、小さい方のデータをR1レジスタに格納する。
7.Aレジスタ38の値をR0レジスタに格納する。
以下では、本発明の第1の実施の形態若しくは第2の実施の形態に係るSIMD型マイクロプロセッサ2を利用して、3個のデータをソートする処理について説明する。
2.Aレジスタ38とR1レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR18レジスタに格納する。
3.Aレジスタ38とR2レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR16レジスタに格納する。
4.Aレジスタ38とR18レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR17レジスタに格納する。
5.Aレジスタ38のデータをR18レジスタに格納する。
2.Aレジスタ38とR1レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR16レジスタに格納する。
3.Aレジスタ38とR2レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR18レジスタに格納する。
4.Aレジスタ38とR16のデータを比較し、大きい方のデータをAレジスタに残し、小さい方のデータをR17に格納する。
5.Aレジスタ38のデータをR16に格納する。
「1.Aレジスタ38にR0レジスタの値をロードする。」
という処理は、画像処理においては、必ず、ソートを行う以前に実施されているはずである。よって、(最後に)Aレジスタ38に格納されている画素データを最初のソート対象データとすることによって更に1サイクルを削減できることとなる。
以下にて、本発明を用いて、「3×3」の画素領域でのメディアン・フィルタの処理について、説明する。
・R16、R17、R18、R19、R20
の各レジスタを使用することにする。
2.Aレジスタ38の値と、1つ左のPEのR0レジスタの値とを比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR20レジスタに格納する。
3.Aレジスタ38の値と、同一PE内のR0レジスタの値とを比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR18レジスタに格納する。
4.Aレジスタ38の値と、R20レジスタの値とを比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR19レジスタに格納する。
5.Aレジスタ38の値と、1つ右のPEのR0レジスタの値とを比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR20レジスタに格納する。
6.Aレジスタ38の値と、R19レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR19レジスタに格納する。
7.Aレジスタ38の値と、R18レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR18レジスタに格納する。
8.Aレジスタ38の値と、1つ左のPEのR1レジスタの値とを比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR16レジスタに格納する。
9.Aレジスタ38の値と、R18レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR17レジスタに格納する。
10.Aレジスタ38の値と、R19レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR18レジスタに格納する。
11.Aレジスタ38の値と、R20レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR19レジスタに格納する。
12.Aレジスタ38の値と、同一のPEのR1レジスタの値とを比較し、大きい方のデータをAレジスタ38に残す。
13.Aレジスタ38の値と、R19レジスタの値を比較し、大きい方のデータをAレジスタレジスタに残し、小さい方のデータをR20レジスタに格納する。
14.Aレジスタ38の値と、R18レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR19レジスタに格納する。
15.Aレジスタ38の値と、R17レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR18レジスタに格納する。
16.Aレジスタ38の値と、R16レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR17レジスタに格納する。
17.Aレジスタ38の値と、1つ右のPEのR1レジスタの値とを比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR16レジスタに格納する。
18.Aレジスタ38の値と、R17レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR17レジスタに格納する。
19.Aレジスタ38の値と、R18レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR18レジスタに格納する。
20.Aレジスタ38の値と、R19レジスタの値を比較し、小さい方のデータをAレジスタ38に残し、大きい方のデータをR19レジスタに格納する。
21.Aレジスタ38の値と、R20レジスタの値を比較し、大きい方のデータをAレジスタ38に残す。
22.Aレジスタ38の値と、1つ左のPEのR2レジスタの値とを比較し、大きい方のデータをAレジスタ38に残す。
23.Aレジスタ38の値と、R19レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR20レジスタに格納する。
24.Aレジスタ38の値と、R18レジスタの値を比較し、大きい方のデータをAレジスタ38に残し、小さい方のデータをR19レジスタに格納する。ここで、残り1画素を除いて「4位」が確定するので、これ以上ソートの必要はない。
25.Aレジスタ38に1つ右のPEのR2レジスタのデータをロードする。
26.Aレジスタ38の値と、R20レジスタの値を比較して、大きい方のデータをAレジスタ38に残す。
27.Aレジスタ38の値と、R19レジスタの値を比較して、小さい方のデータを所望のレジスタに格納する。
Claims (1)
- 複数のプロセッサエレメントを有するSIMD型マイクロプロセッサにおいて、
各プロセッサエレメント内にソートバッファレジスタを有し、
各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第1のインストラクションにて、
比較の結果、大きい方のデータを該特定のレジスタに格納し、
小さい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納し、
更に、
各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第2のインストラクションにて、
比較の結果、小さい方のデータを該特定のレジスタに格納し、
大きい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納し、
上記ソースレジスタ及び上記ディスティネーションレジスタとして上記ソートバッファレジスタが指示され、このことにより各プロセッサエレメント内にてソート処理が行われることを特徴とするSIMD型マイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006294342A JP2007102799A (ja) | 2006-10-30 | 2006-10-30 | ソート機能を有するsimd型マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006294342A JP2007102799A (ja) | 2006-10-30 | 2006-10-30 | ソート機能を有するsimd型マイクロプロセッサ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001103145A Division JP3955741B2 (ja) | 2001-04-02 | 2001-04-02 | ソート機能を有するsimd型マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007102799A true JP2007102799A (ja) | 2007-04-19 |
Family
ID=38029606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006294342A Pending JP2007102799A (ja) | 2006-10-30 | 2006-10-30 | ソート機能を有するsimd型マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007102799A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5445469B2 (ja) * | 2009-01-13 | 2014-03-19 | 日本電気株式会社 | Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント |
-
2006
- 2006-10-30 JP JP2006294342A patent/JP2007102799A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5445469B2 (ja) * | 2009-01-13 | 2014-03-19 | 日本電気株式会社 | Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3955741B2 (ja) | ソート機能を有するsimd型マイクロプロセッサ | |
JP4913685B2 (ja) | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 | |
EP0539595A1 (en) | Data processor and data processing method | |
US8069334B2 (en) | Parallel histogram generation in SIMD processor by indexing LUTs with vector data element values | |
JP2008071130A (ja) | Simd型マイクロプロセッサ | |
US20050257026A1 (en) | Bit serial processing element for a SIMD array processor | |
JP2011141823A (ja) | データ処理装置および並列演算装置 | |
US7512290B2 (en) | Image processing apparatus with SIMD-type microprocessor to perform labeling | |
US20160232641A1 (en) | Method for efficient median filtering | |
JP2007102799A (ja) | ソート機能を有するsimd型マイクロプロセッサ | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
JP2007073010A (ja) | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 | |
US9317474B2 (en) | Semiconductor device | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JP2007108913A (ja) | ピーク値検出を行うsimd型マイクロプロセッサ | |
US9606798B2 (en) | VLIW processor, instruction structure, and instruction execution method | |
JP4868607B2 (ja) | Simd型マイクロプロセッサ | |
JP3837293B2 (ja) | 定数選択機能を有するsimd型マイクロプロセッサ | |
JP2008071037A (ja) | Simd型マイクロプロセッサ | |
JP3969580B2 (ja) | データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JPH06309349A (ja) | プログラム制御のプロセッサ | |
JP4346039B2 (ja) | データ処理装置 | |
JP2001357395A (ja) | 画像処理装置およびその方法 | |
JP2004192405A (ja) | Simd型プロセッサ | |
WO2001052060A1 (en) | A data processing device with distributed register file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090511 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091104 |