JP4686435B2 - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP4686435B2 JP4686435B2 JP2006292960A JP2006292960A JP4686435B2 JP 4686435 B2 JP4686435 B2 JP 4686435B2 JP 2006292960 A JP2006292960 A JP 2006292960A JP 2006292960 A JP2006292960 A JP 2006292960A JP 4686435 B2 JP4686435 B2 JP 4686435B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- pattern
- rearrangement
- register
- instruction
- 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
- 230000008707 rearrangement Effects 0.000 claims description 123
- 238000000034 method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 3
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 12
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 3
- 101100179914 Arabidopsis thaliana IPT2 gene Proteins 0.000 description 2
- 101150085452 IPT1 gene Proteins 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
$2:D20、D21、D22、D23
$0:D10、D20、D11、D21
命令 // 汎用レジスタの内容
1 SRL.H $3,$1,3 // $3={ 0, 0, 0, D10} $1を3HW右論理シフト、$3に格納
2 SLL.H $3,$3,3 // $3={D10, 0, 0, 0} $3を3HW左論理シフト、$3に格納
3 SLL.H $4,$1,1 // $4={D11, D12, D13, 0} $1を1HW左論理シフト、$4に格納
4 SRL.H $4,$4,3 // $4={ 0, 0, 0, D11} $4を3HW右論理シフト、$4に格納
5 SLL.H $4,$4,1 // $4={ 0, 0, D11, 0} $4を1HW左論理シフト、$4に格納
6 SRL.H $5,$2,3 // $5={ 0, 0, 0, D21} $2を3HW右論理シフト、$5に格納
7 SLL.H $5,$5,2 // $5={ 0, D20, 0, 0} $5を2HW左論理シフト、$5に格納
8 SLL.H $6,$2,1 // $6={D21, D22, D23, 0} $2を1HW左論理シフト、$6に格納
9 SRL.H $6,$6,3 // $6={ 0, 0, 0, D21} $6を3HW右論理シフト、$6に格納
10 OR.H $0,$3,$4 // $0={D10, 0, D11, 0} $3,$4のORを、$0に格納
11 OR.H $0,$0,$5 // $0={D10, D20, D11, 0} $0,$5のORを、$0に格納
12 OR.H $0,$0,$6 // $0={D10, D20, D11, D21} $0,$6のORを、$0に格納
…(1)
上記並べ替え結果を用いてSIMD演算を行うとすると、13命令に一度しかSIMD演算を行うことができない。したがって、SIMD演算による並列度の向上が十分に生かされない。
図1は、第1の実施形態に係るプロセッサ11を示している。このプロセッサ11は、例えば命令メモリ12、命令フェッチユニット13、命令デコードユニット14を含むベースとなるプロセッサパイプライン15と、SIMD演算器16と、複数の汎用レジスタを含む汎用レジスタファイル17と、メモリアクセスユニット18と、データメモリ19と、並べ替え回路20と、パターン選択回路21と、複数のパターンレジスタ22と、セレクタ23、24を具備している。
命令2:mv PT0,$1
すなわち、先ず、命令フェッチユニット13はアドレスを指定して命令メモリ12内の命令1(ロードワード命令)を読み出す。この読み出された命令1は、命令デコードユニット14によりデコードされる。このデコード結果は、メモリアクセスユニット18、汎用レジスタファイル17、パターンレジスタ22に供給される。汎用レジスタファイル17は、デコード結果に従って、汎用レジスタ$2のデータを読み出し、メモリアクセスユニット18に送る。メモリアクセスユニット18は、汎用レジスタ$2のデータをアドレスとしてデータメモリ19からパターンデータを読み出す。この読み出されたパターンデータは、セレクタ24を介して汎用レジスタファイル17の指定された汎用レジスタ$1に格納される。
図5は、第2の実施形態に係るプロセッサを示している。以下の各実施形態において、図1と同一部分には、同一符号を付し、異なる部分についてのみ説明する。
図10は、第3の実施形態に係るプロセッサを示している。第2の実施形態は、SIMD演算後、データの並べ替えを行った。これに対して、第3の実施形態は、SIMD演算前に、2個のソースレジスタのデータをそれぞれ並べ替える構成とされている。
上記命令を実行する場合、並べ替え回路20a,20bは、ソースレジスタ$1、$2から読み出したデータを、パターンレジスタPT1、PT2に記憶されたパターンデータに従ってそれぞれ並べ替える。この後、SIMD演算器16は、並べ替え回路20a,20bにより並べ替えられた両データを加算してデスティネーションレジスタ$0に格納する。
図12は、第4の実施形態に係るプロセッサを示している。第4の実施形態は、第1の実施形態を変形したものである。第1の実施形態は、専用のパターンレジスタ22を設けていた。これに対して、第4の実施形態は、専用のパターンレジスタを設けず、図12に示すように、汎用レジスタファイル17に並べ替えパターンを登録し、ソースレジスタと同様にパターンデータを読み出して使用するという構成である。すなわち、汎用レジスタファイル17がパターンレジスタを兼用している。このため、パターン選択回路21は、汎用レジスタファイル17に接続されている。
図14は、第5の実施形態に係るプロセッサを示している。第5の実施形態は、第1乃至第4の実施形態と異なり、並べ替え回路が並べ替え以外にビット反転を行う機能を有している。
Claims (4)
- 並列演算用のデータを格納する複数の汎用レジスタと、
前記データの並べ替えを示す複数のパターンデータを、最小のビット幅の単位、最小のビット幅の2倍のビット幅の単位、最小単位のn倍(但し、nは2のべき乗の数字)のビット幅の単位のうちの1つ、又はこれらの組み合わせにより記憶する複数のパターンレジスタと、
命令に含まれる指示データに従って前記複数のパターンレジスタに記憶された複数のパターンデータのうちの1つを選択する選択回路と、
前記選択回路により選択されたパターンデータに従って前記並列演算用のデータを並べ替える並べ替え回路とを具備し、
前記選択回路は、前記並列演算用データの並べ替えを行う最小のビット幅の単位で並べ替える場合はパターンレジスタ全体を選択し、最小単位の2倍のビット幅の単位で並べ替える場合はパターンレジスタを2分割したいずれかの領域を選択し、最小単位のn倍(但し、nは2のべき乗の数字)のビット幅の単位で並べ替える場合はパターンレジスタをn分割又はn以上の領域に分割したいずれかの領域を選択することを特徴とする演算装置。 - 前記複数の汎用レジスタは、前記パターンレジスタとして使用されることを特徴とする請求項1記載の演算装置。
- 前記並べ替え回路の前段に配置された並列演算器をさらに具備し、1つの命令で前記並列演算器によるデータの並列演算と、前記並べ替え回路による演算結果の並べ替えを行うこと、又は、前記並べ替え回路の後段に配置された並列演算器をさらに具備し、1つの命令で前記並べ替え回路によるデータの並べ替えと、前記並列演算器による並べ替えられたデータの並列演算を行うことを特徴とする請求項1記載の演算装置。
- 前記並べ替え回路は、並べ替えられたデータを処理する処理回路を含むことを特徴とする請求項1又は3に記載の演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006292960A JP4686435B2 (ja) | 2006-10-27 | 2006-10-27 | 演算装置 |
US11/923,085 US8051122B2 (en) | 2006-10-27 | 2007-10-24 | SIMD arithmetic device capable of high-speed computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006292960A JP4686435B2 (ja) | 2006-10-27 | 2006-10-27 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008108220A JP2008108220A (ja) | 2008-05-08 |
JP4686435B2 true JP4686435B2 (ja) | 2011-05-25 |
Family
ID=39441500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006292960A Expired - Fee Related JP4686435B2 (ja) | 2006-10-27 | 2006-10-27 | 演算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8051122B2 (ja) |
JP (1) | JP4686435B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010067522A1 (ja) * | 2008-12-11 | 2010-06-17 | 日本電気株式会社 | 演算ユニット、プロセッサ及び並列演算方法 |
KR101918464B1 (ko) * | 2011-09-14 | 2018-11-15 | 삼성전자 주식회사 | 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치 |
CN103999045B (zh) | 2011-12-15 | 2017-05-17 | 英特尔公司 | 使用混洗表和混合表经由矢量指令优化程序循环的方法 |
US9621533B2 (en) * | 2012-12-14 | 2017-04-11 | Nec Corporation | Bit string collation system, bit string collation method, and program |
US9977676B2 (en) * | 2013-11-15 | 2018-05-22 | Qualcomm Incorporated | Vector processing engines (VPEs) employing reordering circuitry in data flow paths between execution units and vector data memory to provide in-flight reordering of output vector data stored to vector data memory, and related vector processor systems and methods |
US9880845B2 (en) * | 2013-11-15 | 2018-01-30 | Qualcomm Incorporated | Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006504165A (ja) * | 2002-10-23 | 2006-02-02 | フリースケール セミコンダクター インコーポレイテッド | 単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための装置、システム及び方法 |
JP2006190035A (ja) * | 2005-01-05 | 2006-07-20 | Seiko Epson Corp | コンピュータ装置および印刷装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001344099A (ja) | 2000-05-30 | 2001-12-14 | Canon Inc | 情報処理装置及び該装置における情報処理方法 |
JP3955741B2 (ja) * | 2001-04-02 | 2007-08-08 | 株式会社リコー | ソート機能を有するsimd型マイクロプロセッサ |
US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7818356B2 (en) * | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
-
2006
- 2006-10-27 JP JP2006292960A patent/JP4686435B2/ja not_active Expired - Fee Related
-
2007
- 2007-10-24 US US11/923,085 patent/US8051122B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006504165A (ja) * | 2002-10-23 | 2006-02-02 | フリースケール セミコンダクター インコーポレイテッド | 単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための装置、システム及び方法 |
JP2006190035A (ja) * | 2005-01-05 | 2006-07-20 | Seiko Epson Corp | コンピュータ装置および印刷装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080282070A1 (en) | 2008-11-13 |
JP2008108220A (ja) | 2008-05-08 |
US8051122B2 (en) | 2011-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9383999B2 (en) | Conditional compare instruction | |
KR100267100B1 (ko) | 스케일러블 폭의 벡터 프로세서 아키텍쳐 | |
US7761693B2 (en) | Data processing apparatus and method for performing arithmetic operations in SIMD data processing | |
EP1267256A2 (en) | Conditional execution of instructions with multiple destinations | |
US20050198473A1 (en) | Multiplexing operations in SIMD processing | |
JP5559297B2 (ja) | ハードウェアエンドループ情報の命令へのコード化 | |
JP4686435B2 (ja) | 演算装置 | |
KR20110055629A (ko) | 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공 | |
JP7084882B2 (ja) | 並べ替え動作を実行するための装置および方法 | |
KR20070107814A (ko) | 의존성 명령을 패킷으로 그룹핑하여 실행하는 프로세서 및방법 | |
JP2018500629A (ja) | 3d座標から3dのz曲線インデックスを計算するための機械レベル命令 | |
US8604946B2 (en) | Data processing device and data processing method | |
KR102591988B1 (ko) | 데이터 처리장치에서의 벡터 인터리빙 | |
WO2010067522A1 (ja) | 演算ユニット、プロセッサ及び並列演算方法 | |
JP2022062067A (ja) | ベクトルレジスタのアクセス | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
JP2002073325A (ja) | データ処理装置及び方法 | |
JP2004334297A (ja) | 並列演算処理装置及び並列演算処理方法 | |
JP2004246609A (ja) | マイクロプロセッサ | |
JP2004334306A (ja) | 演算処理回路及び演算処理方法 | |
JP2003005955A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101222 |
|
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: 20110118 |
|
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: 20110214 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |