JP6712052B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6712052B2 JP6712052B2 JP2016128447A JP2016128447A JP6712052B2 JP 6712052 B2 JP6712052 B2 JP 6712052B2 JP 2016128447 A JP2016128447 A JP 2016128447A JP 2016128447 A JP2016128447 A JP 2016128447A JP 6712052 B2 JP6712052 B2 JP 6712052B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- arithmetic processing
- instruction
- unit
- operands
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
cij=ai1×b1j+ai2×b2j+ai3×b3j+ai4×b4j
例えば、行列Cの1行目1列目の要素c11は、
c11=a11×b11+a12×b21+a13×b31+a14×b41…(1)
の積和演算を行うことで求められる。
FMA a11,b11,0,c11
FMA a12,b21,c11,c11
FMA a13,b31,c11,c11
FMA a14,b41,c11,c11
以下に説明する本発明の一実施形態における演算処理装置は、1つの命令で、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行するSIMV(Single Instruction Multiple Vector)命令が実行可能である。SIMV命令は、SIMD命令での演算処理に係るオペランドのアドレスが規則性を持つことに着目し、オペランドのアドレスを制御情報として与えることで、1つの命令で行列積演算等の複数のデータに対して同様の演算処理を並列に複数回実行し完了する。
t11=b11×w11+b12×w12+b13×w13+b21×w21+・・・+b33×w33
102 演算部(PU)
103 データバッファ
204 デコード部
207 SIMVユニット
301 SIMVアドレス生成部
302 SIMV制御情報レジスタ
303 ベクトル命令キュー
305 セレクタ
306 演算部
307 選択カウンタ
601 レジスタファイル
602 FMA演算器
1501 レジスタファイル
1502 比較器
Claims (6)
- 命令をデコードするデコード部と、
前記デコード部がデコードした命令が、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行するための命令である場合、各オペランドの組に含まれる複数のオペランドに対する所定のアドレス変位に基づき、各回の演算処理の各オペランドの組に対応するアドレスの組をそれぞれ生成するアドレス生成部と、
前記アドレス生成部が生成した各オペランドの組に対応するアドレスの組を保持する複数のアドレス保持部であって、前記アドレス保持部のそれぞれは、前記命令のための、互いに異なる回の演算処理のためのアドレスの組を保持するものである、前記複数のアドレス保持部と、
前記複数のアドレス保持部のうち、選択された前記アドレス保持部が出力するアドレスの組に基づいて、それぞれ取得したオペランドの組に対する演算処理を並列に行う複数の演算部とを有する演算処理装置。 - 前記複数のアドレス保持部のうち、前記複数の演算部にアドレスの組を出力するアドレス保持部をラウンドロビンで選択する請求項1記載の演算処理装置。
- 前記演算部における前記演算処理の演算レイテンシが2サイクルである場合に、第1のアドレス保持部からの第1のアドレスの組と第2のアドレス保持部からの第2のアドレスの組とを、前記複数の演算部に対し、サイクル毎に交互に出力する請求項1又は2記載の演算処理装置。
- 前記演算処理は、積和演算処理である請求項1〜3の何れか1項に記載の演算処理装置。
- 前記演算処理は、オペランドの値を比較する比較演算である請求項1〜3の何れか1項に記載の演算処理装置。
- 演算処理装置の制御方法において、
前記演算処理装置が有するデコード部が、命令をデコードするステップと、
前記デコード部がデコードした命令が、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行するための命令である場合、前記演算処理装置が有するアドレス生成部が、各オペランドの組に含まれる複数のオペランドに対する所定のアドレス変位に基づき、各回の演算処理の各オペランドの組に対応するアドレスの組をそれぞれ生成するステップと、
前記演算処理装置が有する複数のアドレス保持部が、前記アドレス生成部が生成した各オペランドの組に対応するアドレスの組を保持するステップであって、前記アドレス保持部のそれぞれは、前記命令のための、互いに異なる回の演算処理のためのアドレスの組を保持するものである、前記保持するステップと、
前記演算処理装置が有する複数の演算部が、前記複数のアドレス保持部のうち、選択された前記アドレス保持部が出力するアドレスの組に基づいて、それぞれ取得したオペランドの組に対する演算処理を並列に行うステップとを有する、演算処理装置の制御方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016128447A JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
| EP17172714.2A EP3264261B1 (en) | 2016-06-29 | 2017-05-24 | Processor and control method of processor |
| US15/606,050 US10754652B2 (en) | 2016-06-29 | 2017-05-26 | Processor and control method of processor for address generating and address displacement |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016128447A JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018005369A JP2018005369A (ja) | 2018-01-11 |
| JP6712052B2 true JP6712052B2 (ja) | 2020-06-17 |
Family
ID=58772746
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016128447A Expired - Fee Related JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10754652B2 (ja) |
| EP (1) | EP3264261B1 (ja) |
| JP (1) | JP6712052B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110858127B (zh) * | 2018-08-22 | 2023-09-12 | 慧荣科技股份有限公司 | 数据存储装置 |
| CN113222101B (zh) | 2020-02-05 | 2025-04-25 | 昆仑芯(北京)科技有限公司 | 深度学习处理装置、方法、设备和存储介质 |
| CN111506520B (zh) * | 2020-07-01 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 一种地址生成的方法、相关装置以及存储介质 |
| US12229556B2 (en) * | 2023-07-17 | 2025-02-18 | Arm Limited | Predicting a load value for a subsequent load operation |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2999907B2 (ja) * | 1993-07-05 | 2000-01-17 | 三洋電機株式会社 | マイクロプログラム制御方式の中央処理装置 |
| JP3199205B2 (ja) * | 1993-11-19 | 2001-08-13 | 株式会社日立製作所 | 並列演算装置 |
| US6085302A (en) * | 1996-04-17 | 2000-07-04 | Advanced Micro Devices, Inc. | Microprocessor having address generation units for efficient generation of memory operation addresses |
| KR100331565B1 (ko) * | 1999-12-17 | 2002-04-06 | 윤종용 | 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치 |
| US6959378B2 (en) * | 2000-11-06 | 2005-10-25 | Broadcom Corporation | Reconfigurable processing system and method |
| US6915411B2 (en) * | 2002-07-18 | 2005-07-05 | International Business Machines Corporation | SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath |
| US7093204B2 (en) * | 2003-04-04 | 2006-08-15 | Synplicity, Inc. | Method and apparatus for automated synthesis of multi-channel circuits |
| JP3706383B1 (ja) * | 2004-04-15 | 2005-10-12 | 株式会社ソニー・コンピュータエンタテインメント | 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法 |
| US7366885B1 (en) * | 2004-06-02 | 2008-04-29 | Advanced Micro Devices, Inc. | Method for optimizing loop control of microcoded instructions |
| US7330964B2 (en) * | 2005-11-14 | 2008-02-12 | Texas Instruments Incorporated | Microprocessor with independent SIMD loop buffer |
| US8074031B2 (en) * | 2005-12-20 | 2011-12-06 | Nxp B.V. | Multi-processor circuit with shared memory banks |
| JP4934356B2 (ja) | 2006-06-20 | 2012-05-16 | 株式会社日立製作所 | 映像処理エンジンおよびそれを含む映像処理システム |
| CN101484875A (zh) * | 2006-07-11 | 2009-07-15 | 飞思卡尔半导体公司 | 微处理器以及用于寄存器在其中进行寻址的方法 |
| US8452943B2 (en) * | 2007-12-06 | 2013-05-28 | Nec Corporation | Apparatus and method for address generation for array processor and array processor |
| JP5034916B2 (ja) * | 2007-12-10 | 2012-09-26 | 富士通セミコンダクター株式会社 | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 |
| US8984043B2 (en) * | 2009-12-23 | 2015-03-17 | Intel Corporation | Multiplying and adding matrices |
| JP5862397B2 (ja) * | 2012-03-22 | 2016-02-16 | 富士通株式会社 | 演算処理装置 |
| US9755994B2 (en) * | 2012-05-21 | 2017-09-05 | Nvidia Corporation | Mechanism for tracking age of common resource requests within a resource management subsystem |
| US9619229B2 (en) * | 2012-12-27 | 2017-04-11 | Intel Corporation | Collapsing of multiple nested loops, methods and instructions |
| JP6102645B2 (ja) | 2013-09-11 | 2017-03-29 | 富士通株式会社 | 積和演算回路及び積和演算システム |
-
2016
- 2016-06-29 JP JP2016128447A patent/JP6712052B2/ja not_active Expired - Fee Related
-
2017
- 2017-05-24 EP EP17172714.2A patent/EP3264261B1/en active Active
- 2017-05-26 US US15/606,050 patent/US10754652B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20180004515A1 (en) | 2018-01-04 |
| EP3264261A3 (en) | 2018-05-23 |
| US10754652B2 (en) | 2020-08-25 |
| EP3264261A2 (en) | 2018-01-03 |
| EP3264261B1 (en) | 2020-12-30 |
| JP2018005369A (ja) | 2018-01-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
| US11467833B2 (en) | Load-store instruction for performing multiple loads, a store, and strided increment of multiple addresses | |
| EP3451162B1 (en) | Device and method for use in executing matrix multiplication operations | |
| US12367043B2 (en) | Multi-threaded barrel processor using shared weight registers in a common weights register file | |
| US11175920B2 (en) | Efficient work execution in a parallel computing system | |
| US8307196B2 (en) | Data processing system having bit exact instructions and methods therefor | |
| CN108885550B (zh) | 复数乘法指令 | |
| CN114746840B (zh) | 用于乘法和累加操作的处理器单元 | |
| JP6712052B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| JP2007317179A (ja) | 帯域幅要件が軽減された行列乗算 | |
| JP6933263B2 (ja) | データ処理装置、ループ制御装置、データ処理方法、ループ制御方法およびプログラム | |
| WO2020196407A1 (ja) | 畳込み演算装置 | |
| KR20230018361A (ko) | 벡터 연산들을 위한 회전식 누산기 | |
| US11755320B2 (en) | Compute array of a processor with mixed-precision numerical linear algebra support | |
| US20150254076A1 (en) | Data processing apparatus and method for performing vector scan operation | |
| KR20230124598A (ko) | 높은 처리량 및 낮은 오버헤드 커널 개시를 위한 압축 커맨드 패킷 | |
| JP2009059187A (ja) | マイクロプロセッサおよびデータ処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190311 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191127 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200107 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200303 |
|
| 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: 20200428 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200511 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6712052 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |