JP6239544B2 - Simd命令をサポートするプログラマブルデータ処理回路 - Google Patents
Simd命令をサポートするプログラマブルデータ処理回路 Download PDFInfo
- Publication number
- JP6239544B2 JP6239544B2 JP2015040233A JP2015040233A JP6239544B2 JP 6239544 B2 JP6239544 B2 JP 6239544B2 JP 2015040233 A JP2015040233 A JP 2015040233A JP 2015040233 A JP2015040233 A JP 2015040233A JP 6239544 B2 JP6239544 B2 JP 6239544B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- operand
- simd
- registers
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Programmable Controllers (AREA)
- Communication Control (AREA)
Description
12 機能ユニット
14 レジスタファイル
15 アドレス/データインタフェース
16 データメモリ
Claims (9)
- 命令選択可能なレジスタを有するレジスタのセットであって、各レジスタはN個の各自のSIMD命令オペランド及び/又は結果を格納する、レジスタのセットと、
SIMD命令を有する命令セットを有する命令実行回路であって、前記命令実行回路は前記SIMD命令に応答してN個の各自の同一の処理をパラレルに実行するよう構成される複数の算術回路を有し、前記SIMD命令は、前記SIMD命令によって選択される前記レジスタのセットからの第1レジスタ及び第2レジスタからの前記SIMD命令のN個の各自のSIMD命令オペランドの第1及び第2系列を規定し、各算術回路は、前記SIMD命令を実行するとき、前記第1及び第2系列からそれぞれ各自の第1オペランド及び各自の第2オペランドを受信するよう構成される、命令実行回路と、
を有するデータ処理回路であって、
前記命令実行回路は、前記第1及び第2系列が部分的に重複するように前記第1及び第2系列を選択するよう構成され、
前記複数の算術回路の少なくとも第1及び第2算術回路は、前記第1及び/又は第2系列からのオペランドを共通して利用し、
オペランドレジスタからの少なくとも2つの異なるオペランドは前記第1及び第2系列において重複し、
前記命令実行回路は、プログラム制御の下で前記レジスタのセットからの第1レジスタ及び第2レジスタ内の前記第1系列のポジションを少なくとも選択するよう構成されるデータ処理回路。 - 前記命令実行回路は、前記レジスタのセットからの第1レジスタ及び第2レジスタの双方から少なくとも第2オペランド系列を抽出するよう構成される、請求項1記載のデータ処理回路。
- 前記命令実行回路及び前記レジスタのセットに接続され、前記SIMD命令を選択し、前記レジスタのセットから前記第1レジスタ及び第2レジスタをそれぞれ選択するため命令データを供給する命令発行回路と、
前記レジスタのセットと前記算術回路との間に接続され、前記命令データ及び/又はオペランドデータによって制御され、少なくとも1つのポジションを含む前記第1系列の選択可能なポジションを選択するオペランド配信回路と、
を有し、
前記第1系列は、前記レジスタのセットからの第1レジスタ及び第2レジスタの双方に拡張する、請求項1記載のデータ処理回路。 - 前記SIMD命令は、更なるレジスタを選択し、
前記命令実行回路は、前記選択された更なるレジスタからの情報の制御の下で前記第1系列のポジションを制御するよう構成される、請求項1記載のデータ処理回路。 - 前記算術回路のそれぞれは、前記更なるレジスタからのオペランドと、前記算術回路の全てに共通の係数と前記第1及び第2系列からのオペランドとの各自の積との和を計算するよう構成される、請求項4記載のデータ処理回路。
- 前記SIMD命令は、追加的なレジスタを選択し、
前記係数は、前記追加的なレジスタから前記算術回路に供給される、請求項5記載のデータ処理回路。 - 前記命令実行回路は、前記SIMD命令により選択される前記追加的なレジスタからのデータの制御の下で、前記レジスタのセットからの前記第1レジスタ及び第2レジスタ内の前記第1系列のポジションを少なくとも選択するよう構成される、請求項6記載のデータ処理回路。
- ピクセルのグループに対してピクセル補間をパラレルに実行するためのSIMD命令を含むプログラムによりプログラムされる、請求項5記載のデータ処理回路。
- 前記命令セットは、更なるSIMD命令を有し、
前記命令実行回路は、前記更なるSIMD命令に応答して、前記算術回路にN個の同一の更なる処理をパラレルに実行させるよう構成され、
各算術回路は、前記更なるSIMD命令によって選択された前記レジスタのセットからの第1レジスタからの各自の第1オペランドと、前記更なるSIMD命令によって選択された前記レジスタのセットからの第2レジスタからの各自の第2オペランドとを利用する、請求項1記載のデータ処理回路。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP04105471 | 2004-11-03 | ||
| EP04105471.9 | 2004-11-03 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007539681A Division JP5748935B2 (ja) | 2004-11-03 | 2005-11-02 | Simd命令をサポートするプログラマブルデータ処理回路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2015133132A JP2015133132A (ja) | 2015-07-23 |
| JP6239544B2 true JP6239544B2 (ja) | 2017-11-29 |
Family
ID=34929799
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007539681A Expired - Fee Related JP5748935B2 (ja) | 2004-11-03 | 2005-11-02 | Simd命令をサポートするプログラマブルデータ処理回路 |
| JP2015040233A Expired - Fee Related JP6239544B2 (ja) | 2004-11-03 | 2015-03-02 | Simd命令をサポートするプログラマブルデータ処理回路 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007539681A Expired - Fee Related JP5748935B2 (ja) | 2004-11-03 | 2005-11-02 | Simd命令をサポートするプログラマブルデータ処理回路 |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US8122227B2 (ja) |
| EP (1) | EP1812849B8 (ja) |
| JP (2) | JP5748935B2 (ja) |
| KR (1) | KR101239304B1 (ja) |
| CN (1) | CN101052947A (ja) |
| AT (1) | ATE493703T1 (ja) |
| DE (1) | DE602005025677D1 (ja) |
| WO (1) | WO2006048828A1 (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008111500A1 (ja) * | 2007-03-08 | 2008-09-18 | Nec Corporation | ベクトル処理装置 |
| US8248422B2 (en) * | 2008-01-18 | 2012-08-21 | International Business Machines Corporation | Efficient texture processing of pixel groups with SIMD execution unit |
| KR100960148B1 (ko) | 2008-05-07 | 2010-05-27 | 한국전자통신연구원 | 데이터 프로세싱 회로 |
| US8831101B2 (en) * | 2008-08-02 | 2014-09-09 | Ecole De Technologie Superieure | Method and system for determining a metric for comparing image blocks in motion compensated video coding |
| US9100656B2 (en) | 2009-05-21 | 2015-08-04 | Ecole De Technologie Superieure | Method and system for efficient video transcoding using coding modes, motion vectors and residual information |
| US8494056B2 (en) * | 2009-05-21 | 2013-07-23 | Ecole De Technologie Superieure | Method and system for efficient video transcoding |
| US8755438B2 (en) | 2010-11-29 | 2014-06-17 | Ecole De Technologie Superieure | Method and system for selectively performing multiple video transcoding operations |
| CN104011658B (zh) * | 2011-12-16 | 2017-04-05 | 英特尔公司 | 用于提供向量线性内插功能的指令和逻辑 |
| CN103377031B (zh) * | 2012-04-27 | 2017-09-26 | 腾讯科技(深圳)有限公司 | 一种多数据处理方法和装置 |
| US9201828B2 (en) * | 2012-10-23 | 2015-12-01 | Analog Devices, Inc. | Memory interconnect network architecture for vector processor |
| US9342306B2 (en) | 2012-10-23 | 2016-05-17 | Analog Devices Global | Predicate counter |
| US9092429B2 (en) | 2012-10-23 | 2015-07-28 | Analog Devices Global | DMA vector buffer |
| JP6003744B2 (ja) | 2013-03-22 | 2016-10-05 | 富士通株式会社 | 演算処理装置及び演算処理方法 |
| TWI681300B (zh) * | 2014-11-14 | 2020-01-01 | 美商凱為有限責任公司 | 在64位元資料路徑上實行128位元simd操作之方法、系統及電腦可讀取媒體 |
| US9898286B2 (en) * | 2015-05-05 | 2018-02-20 | Intel Corporation | Packed finite impulse response (FIR) filter processors, methods, systems, and instructions |
| US20170003966A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Processor with instruction for interpolating table lookup values |
| GB2540943B (en) * | 2015-07-31 | 2018-04-11 | Advanced Risc Mach Ltd | Vector arithmetic instruction |
| CN105159766B (zh) * | 2015-08-31 | 2018-05-25 | 安一恒通(北京)科技有限公司 | 数据的同步访问方法和同步访问装置 |
| US11429555B2 (en) * | 2019-02-26 | 2022-08-30 | Apple Inc. | Coprocessors with bypass optimization, variable grid architecture, and fused vector operations |
| US11126439B2 (en) * | 2019-11-15 | 2021-09-21 | Apple Inc. | SIMD operand permutation with selection from among multiple registers |
| JP7794539B2 (ja) * | 2021-10-27 | 2026-01-06 | 株式会社Preferred Networks | 命令生成方法、演算処理装置、命令生成装置及びプログラム |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2840686B2 (ja) | 1989-12-28 | 1998-12-24 | ソニー株式会社 | 画像処理装置 |
| JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
| GB9509983D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
| US5668638A (en) | 1996-06-27 | 1997-09-16 | Xerox Corporation | Error diffusion method with symmetric enhancement |
| JPH1115801A (ja) * | 1997-06-24 | 1999-01-22 | Sony Corp | データ演算装置および方法、並びに伝送媒体 |
| EP0983557B1 (en) | 1998-03-18 | 2019-10-02 | Koninklijke Philips N.V. | Data processing device for executing in parallel additions and subtractions on packed data |
| US6212618B1 (en) * | 1998-03-31 | 2001-04-03 | Intel Corporation | Apparatus and method for performing multi-dimensional computations based on intra-add operation |
| US6041404A (en) * | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
| US6115812A (en) * | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
| JP3922859B2 (ja) * | 1999-12-28 | 2007-05-30 | 株式会社リコー | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
| GB2362731B (en) * | 2000-05-23 | 2004-10-06 | Advanced Risc Mach Ltd | Parallel processing of multiple data values within a data word |
| US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
| US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
| US7558816B2 (en) * | 2001-11-21 | 2009-07-07 | Sun Microsystems, Inc. | Methods and apparatus for performing pixel average operations |
| JP4020804B2 (ja) * | 2002-03-06 | 2007-12-12 | 松下電器産業株式会社 | データ処理装置 |
| US7315934B2 (en) | 2002-03-06 | 2008-01-01 | Matsushita Electric Industrial Co., Ltd. | Data processor and program for processing a data matrix |
| US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
| GB2409063B (en) * | 2003-12-09 | 2006-07-12 | Advanced Risc Mach Ltd | Vector by scalar operations |
-
2005
- 2005-11-02 DE DE602005025677T patent/DE602005025677D1/de not_active Expired - Lifetime
- 2005-11-02 WO PCT/IB2005/053575 patent/WO2006048828A1/en not_active Ceased
- 2005-11-02 US US11/718,251 patent/US8122227B2/en not_active Expired - Fee Related
- 2005-11-02 KR KR1020077009826A patent/KR101239304B1/ko not_active Expired - Fee Related
- 2005-11-02 EP EP05798173A patent/EP1812849B8/en not_active Expired - Lifetime
- 2005-11-02 AT AT05798173T patent/ATE493703T1/de not_active IP Right Cessation
- 2005-11-02 CN CNA2005800379572A patent/CN101052947A/zh active Pending
- 2005-11-02 JP JP2007539681A patent/JP5748935B2/ja not_active Expired - Fee Related
-
2012
- 2012-01-11 US US13/348,358 patent/US8856494B2/en not_active Expired - Fee Related
-
2015
- 2015-03-02 JP JP2015040233A patent/JP6239544B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| ATE493703T1 (de) | 2011-01-15 |
| US20090083524A1 (en) | 2009-03-26 |
| EP1812849A1 (en) | 2007-08-01 |
| CN101052947A (zh) | 2007-10-10 |
| KR101239304B1 (ko) | 2013-03-05 |
| EP1812849B8 (en) | 2011-02-16 |
| DE602005025677D1 (de) | 2011-02-10 |
| US20120124334A1 (en) | 2012-05-17 |
| JP5748935B2 (ja) | 2015-07-15 |
| JP2008519349A (ja) | 2008-06-05 |
| KR20070083872A (ko) | 2007-08-24 |
| JP2015133132A (ja) | 2015-07-23 |
| WO2006048828A1 (en) | 2006-05-11 |
| US8122227B2 (en) | 2012-02-21 |
| US8856494B2 (en) | 2014-10-07 |
| EP1812849B1 (en) | 2010-12-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6239544B2 (ja) | Simd命令をサポートするプログラマブルデータ処理回路 | |
| JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
| US6446190B1 (en) | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor | |
| KR102425668B1 (ko) | 데이터 처리장치에서의 곱셈-누적 | |
| US20190196825A1 (en) | Vector multiply-add instruction | |
| GB2474901A (en) | Multiply-accumulate instruction which adds or subtracts based on a predicate value | |
| JP2002536738A (ja) | 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム | |
| JPH0850575A (ja) | プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良 | |
| CN100447777C (zh) | 处理器 | |
| JP3237858B2 (ja) | 演算装置 | |
| KR19980041758A (ko) | 축소 데이타 경로 폭을 갖는 2-비트 부스 곱셈기 | |
| EP3264261B1 (en) | Processor and control method of processor | |
| EP1499956B1 (en) | Method and apparatus for swapping the contents of address registers | |
| EP0227900B1 (en) | Three address instruction data processing apparatus | |
| US5931892A (en) | Enhanced adaptive filtering technique | |
| Fridman | Data alignment for sub-word parallelism in DSP | |
| JP3727395B2 (ja) | マイクロコンピュータ | |
| KR102591988B1 (ko) | 데이터 처리장치에서의 벡터 인터리빙 | |
| EP1242903B1 (en) | Surface computer and computing method using the same | |
| JP2018521422A (ja) | ベクトル長クエリ命令 | |
| JP3841820B2 (ja) | マイクロコンピュータ | |
| USRE41012E1 (en) | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor | |
| US20040243788A1 (en) | Vector processor and register addressing method | |
| JP2009059187A (ja) | マイクロプロセッサおよびデータ処理方法 | |
| JP3733137B2 (ja) | マイクロコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151222 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160322 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160719 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170815 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171101 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6239544 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |