JP5491071B2 - 命令融合演算装置および命令融合演算方法 - Google Patents
命令融合演算装置および命令融合演算方法 Download PDFInfo
- Publication number
- JP5491071B2 JP5491071B2 JP2009121807A JP2009121807A JP5491071B2 JP 5491071 B2 JP5491071 B2 JP 5491071B2 JP 2009121807 A JP2009121807 A JP 2009121807A JP 2009121807 A JP2009121807 A JP 2009121807A JP 5491071 B2 JP5491071 B2 JP 5491071B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- fusion
- arithmetic
- general
- succeeding
- 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.)
- Active
Links
- 230000004927 fusion Effects 0.000 title claims description 99
- 238000000034 method Methods 0.000 title claims description 15
- 230000001419 dependent effect Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 14
- 239000000872 buffer Substances 0.000 claims description 10
- 230000000694 effects Effects 0.000 description 5
- 238000007499 fusion processing Methods 0.000 description 4
- 150000001875 compounds Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration 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/3017—Runtime instruction translation, e.g. macros
-
- 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/30181—Instruction operation extension or modification
-
- 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/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/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
命令1:fmp S3←S1*S2
命令2:fmp S5←S3*S4
命令3:fad S6←S3+S4
命令4:fad S8←S6+S7
(fmp: Floating Multiply 浮動小数点乗算, fad: Floating Add 浮動小数点加算)
の命令列を実行する場合、命令1の結果を命令2および命令3が参照する複数のフロー依存関係となっており、命令1が完了しないと命令2および命令3を実行できない状況にあった。この命令を、複合演算器である積和演算器で実行させるために積和命令を使用する命令列に置き換えてみると、以下のようになる。
命令1:fmp S3←S1*S2
命令2:fmp S5←S3*S4
命令3’:fad S6←S1*S2+S4
命令4:fad S8←S6+S7
命令3が積和命令の命令3’に置換されるだけであって、データ依存関係どおりにデータ処理を行う必要があり、処理時間短縮にはならない。つまり、複数のフロー依存関係がある命令列では、複合命令に置き換えても高速化できない。
(命令列)
命令1:fmp S3←S1*S2
命令2:fmp S5←S3*S4
命令3:fad S6←S3+S4
命令4:fad S8←S6+S7
図11に、一般的に用いられている命令融合演算装置18の回路構成を示す。命令融合演算装置1は、レジスタ2、5および7と、退避レジスタ8と、汎用レジスタ9と、積和演算器10および11とから構成される。
2 レジスタ
3 融合命令検出回路
4 命令追い越し回路
41 IRレジスタ
5 レジスタ
6 命令融合回路
7 レジスタ
8 退避レジスタ
9 汎用レジスタ
10 積和演算器
11 積和演算器
12 バッファ
13 バッファ
141〜144 バイパスバス
15〜18 命令融合演算装置
Claims (14)
- フロー依存にある先行命令および後続命令の融合が可能か否かを判断する命令融合検出
回路と、
前記命令融合検出回路により融合可能と判断された先行命令と後続命令とを1つの命令
に融合する命令融合回路と、
前記命令融合回路により融合された命令を実行して演算結果を出力するとともに、前記
先行命令の演算結果を途中結果として出力する演算器と、
を備えることを特徴とする命令融合演算装置。 - 前記命令融合検出回路は、前記先行命令が乗算命令でありかつ前記後続命令が加算命令
である場合、または、前記先行命令が加算命令でありかつ前記後続命令が乗算命令である
場合、または、前記先行命令および前記後続命令が加算命令である場合、または、前記先
行命令および前記後続命令が乗算命令である場合、前記先行命令と前記後続命令とがフロ
ー依存の関係にあるとき、前記先行命令と前記後続命令とが融合可能と判断することを特
徴とする請求項1記載の命令融合演算装置。 - 命令列中において融合可能と判断された前記先行命令と前記後続命令との間に他の命令
が存在するとき、前記後続命令の追い越し処理を行う命令追い越し回路を備えることを特
徴とする請求項1または2記載の命令融合演算装置。 - リプライパスを介して演算器に接続された汎用レジスタを備え、前記リプライパス上に
バッファを備えることを特徴とする請求項1ないし3のいずれか1項に記載の命令融合演
算装置。 - 前記命令融合演算装置が備える前記リプライパスの数は前記汎用レジスタの書き込みポートの数よりも多く、
前記演算器から前記汎用レジスタの書き込みポートに至る前記リプライパスの経路の途中で前記汎用レジスタの書き込みポートの数に合わせて前記リプライパスは統合されている請求項4記載の命令融合演算装置。 - 複数の演算器を備え、前記演算器毎に実行のタイミングを変えることを特徴とする請求
項1ないし5のいずれか1項に記載の命令融合演算装置。 - 前記演算器の入力側と出力側とがバイパスパスで接続され、
前記バイパスパスを介して演算結果が前記演算器に直接入力されることを特徴とする請
求項1ないし6のいずれか1項に記載の命令融合演算装置。 - フロー依存にある先行命令および後続命令の融合が可能か否かを判断する命令融合検出
回路を備えた命令融合演算装置において、
前記命令融合検出回路により融合可能と判断された先行命令と後続命令とを1つの命令
に融合する融合ステップと、
演算器により前記融合された命令を実行して演算結果を出力するとともに、当該演算器により先行命令の演算結果を途中結果として出力する実行ステップと、
を有することを特徴とする命令融合演算方法。 - 前記融合ステップにおいて、
前記先行命令が乗算命令でありかつ前記後続命令が加算命令である場合、または、前記
先行命令が加算命令でありかつ前記後続命令が乗算命令である場合、または、前記先行命
令および前記後続命令が加算命令である場合、または、前記先行命令および前記後続命令
が乗算命令である場合、前記先行命令と前記後続命令とがフロー依存の関係にあるとき、
前記先行命令と前記後続命令とを融合可能と判断して1つの命令に融合することを特徴と
する請求項8記載の命令融合演算方法。 - 前記命令融合演算装置は命令追い越し回路を備え、
前記命令融合演算方法は、前記命令追い越し回路により、命令列中において融合可能と判断された前記先行命令と前記後続命令との間に他の命令が存在するとき、前記後続命令の追い越し処理を行う追い越しステップを有することを特徴とする請求項8または9記載の命令融合演算方法。 - 前記命令融合演算装置は、リプライパスを介して演算器に接続された汎用レジスタとバッファとを備え、
前記演算器は、前記融合された命令の実行結果を所定の時間バッファに格納した後、汎
用レジスタに送り出すことを特徴とする請求項8ないし10のいずれか1項記載の命令融
合演算方法。 - 前記命令融合演算装置が備える前記リプライパスの数は、前記汎用レジスタの書き込みポートの数よりも多く、前記演算器から前記汎用レジスタの書き込みポートに至る前記リプライパスの経路の途中で、前記汎用レジスタの書き込みポートの数に合わせて前記リプライパスは統合されていることを特徴とする、請求項11に記載の命令融合演算方法。
- 前記命令融合演算装置は複数の演算器を備え、
前記実行ステップにおいて、前記演算器毎に実行のタイミングが異なることを特徴とする請求項8ないし12のいずれか1項に記載の命令融合演算方法。 - 前記演算器の入力側と出力側とがバイパスパスで接続され、
前記演算器は、前記バイパスパスを介して演算結果を前記演算器に直接入力することを
特徴とする請求項8ないし13のいずれか1項に記載の命令融合演算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009121807A JP5491071B2 (ja) | 2009-05-20 | 2009-05-20 | 命令融合演算装置および命令融合演算方法 |
US12/782,618 US8677102B2 (en) | 2009-05-20 | 2010-05-18 | Instruction fusion calculation device and method for instruction fusion calculation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009121807A JP5491071B2 (ja) | 2009-05-20 | 2009-05-20 | 命令融合演算装置および命令融合演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010271818A JP2010271818A (ja) | 2010-12-02 |
JP5491071B2 true JP5491071B2 (ja) | 2014-05-14 |
Family
ID=43125340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009121807A Active JP5491071B2 (ja) | 2009-05-20 | 2009-05-20 | 命令融合演算装置および命令融合演算方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8677102B2 (ja) |
JP (1) | JP5491071B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477476B2 (en) * | 2012-11-27 | 2016-10-25 | Qualcomm Incorporated | Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media |
US9424045B2 (en) * | 2013-01-29 | 2016-08-23 | Arm Limited | Data processing apparatus and method for controlling use of an issue queue to represent an instruction suitable for execution by a wide operand execution unit |
US9329848B2 (en) * | 2013-03-27 | 2016-05-03 | Intel Corporation | Mechanism for facilitating dynamic and efficient fusion of computing instructions in software programs |
US9798519B2 (en) * | 2014-07-02 | 2017-10-24 | Via Alliance Semiconductor Co., Ltd. | Standard format intermediate result |
CN115100017A (zh) | 2015-06-10 | 2022-09-23 | 无比视视觉技术有限公司 | 用于处理图像的图像处理器和方法 |
US10579389B2 (en) * | 2015-11-02 | 2020-03-03 | Arm Limited | Fusion of instructions by delaying handling of a partial subset of a fusible group of instructions |
US10387147B2 (en) * | 2017-08-02 | 2019-08-20 | International Business Machines Corporation | Managing an issue queue for fused instructions and paired instructions in a microprocessor |
US10459726B2 (en) * | 2017-11-27 | 2019-10-29 | Advanced Micro Devices, Inc. | System and method for store fusion |
US10956167B2 (en) * | 2019-06-06 | 2021-03-23 | International Business Machines Corporation | Mechanism for instruction fusion using tags |
US20230315454A1 (en) * | 2022-03-30 | 2023-10-05 | Advanced Micro Devices, Inc. | Fusing no-op (nop) instructions |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04112328A (ja) | 1990-09-03 | 1992-04-14 | Nec Corp | ストア命令の縮退制御方式 |
JP2683488B2 (ja) * | 1992-06-30 | 1997-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3−1論理演算装置 |
JPH0756735A (ja) * | 1993-08-16 | 1995-03-03 | Nkk Corp | 並列演算処理装置 |
CA2123442A1 (en) * | 1993-09-20 | 1995-03-21 | David S. Ray | Multiple execution unit dispatch with instruction dependency |
JPH07262005A (ja) * | 1994-02-22 | 1995-10-13 | At & T Corp | 拡張されたオペランドバイパスシステム |
SG75756A1 (en) * | 1994-02-28 | 2000-10-24 | Intel Corp | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path |
JPH09311786A (ja) * | 1996-03-18 | 1997-12-02 | Hitachi Ltd | データ処理装置 |
JP3291238B2 (ja) | 1998-02-19 | 2002-06-10 | 富士通株式会社 | プロセッサのシミュレータ及びシミュレーション方法 |
JP2000020310A (ja) | 1998-06-26 | 2000-01-21 | Toshiba Microelectronics Corp | プロセッサ |
US6675376B2 (en) * | 2000-12-29 | 2004-01-06 | Intel Corporation | System and method for fusing instructions |
US8239440B2 (en) * | 2008-03-28 | 2012-08-07 | Oracle America, Inc. | Processor which implements fused and unfused multiply-add instructions in a pipelined manner |
US9690591B2 (en) * | 2008-10-30 | 2017-06-27 | Intel Corporation | System and method for fusing instructions queued during a time window defined by a delay counter |
-
2009
- 2009-05-20 JP JP2009121807A patent/JP5491071B2/ja active Active
-
2010
- 2010-05-18 US US12/782,618 patent/US8677102B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010271818A (ja) | 2010-12-02 |
US8677102B2 (en) | 2014-03-18 |
US20100299505A1 (en) | 2010-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5491071B2 (ja) | 命令融合演算装置および命令融合演算方法 | |
US8443170B2 (en) | Apparatus and method for performing SIMD multiply-accumulate operations | |
KR101496597B1 (ko) | 반도체 칩 상에서 구현되는 벡터 논리 감소 연산 | |
US20020169942A1 (en) | VLIW processor | |
US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
JP5154119B2 (ja) | プロセッサ | |
JP5607832B2 (ja) | 汎用論理演算の方法および装置 | |
JP2018005488A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
JP2009508180A (ja) | マイクロプロセッサにおける効率的なサブプログラムリターン | |
US20100211762A1 (en) | Mechanism for Efficient Implementation of Software Pipelined Loops in VLIW Processors | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
US7437544B2 (en) | Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction | |
US20100217961A1 (en) | Processor system executing pipeline processing and pipeline processing method | |
US9213547B2 (en) | Processor and method for processing instructions using at least one processing pipeline | |
JP2008299729A (ja) | プロセッサ | |
JP2021168036A (ja) | 演算処理装置 | |
JP2014164659A (ja) | プロセッサ | |
EP3017363B1 (en) | System and method for an asynchronous processor with pipelined arithmetic and logic unit | |
JP5788920B2 (ja) | ベクトル処理装置およびベクトル処理方法 | |
JP7487535B2 (ja) | 演算処理装置 | |
US20230315446A1 (en) | Arithmetic processing apparatus and method for arithmetic processing | |
JP4502983B2 (ja) | ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。 | |
JP6314620B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2000181705A (ja) | 命令制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20110712 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120417 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130924 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140120 |
|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5491071 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |