JP7043985B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP7043985B2 JP7043985B2 JP2018112443A JP2018112443A JP7043985B2 JP 7043985 B2 JP7043985 B2 JP 7043985B2 JP 2018112443 A JP2018112443 A JP 2018112443A JP 2018112443 A JP2018112443 A JP 2018112443A JP 7043985 B2 JP7043985 B2 JP 7043985B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- floating
- arithmetic
- register
- point
- 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
- 238000000034 method Methods 0.000 title claims description 24
- 230000001629 suppression Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000000052 comparative effect Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000000717 retained effect Effects 0.000 description 2
- 238000004904 shortening Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/3001—Arithmetic instructions
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)
Description
(付記1)
浮動小数点演算命令の演算時に例外を検出しても命令完了時に例外処理を発生しないことが設定された演算処理装置であって、
浮動小数点演算を行う演算器と、
複数のエントリを含み、前記複数のエントリのそれぞれはアーキテクチャレジスタまたはリネーミングレジスタのいずれかに割り当てられる浮動小数点レジスタと、
前記浮動小数点演算命令を発行するとともに、前記演算器による前記浮動小数点演算が終了する前に前記浮動小数点演算の終了報告を出力する演算実行制御部と、
前記終了報告を受信して、命令の実行を完了すると、前記リネーミングレジスタの解放を指示する命令完了制御部と、
前記指示を受信するとともに、前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てられた第1のエントリをリネーミングレジスタに割り当て、前記浮動小数点演算においてリネーミングレジスタに割り当てられた第2のエントリを前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てる命令デコーダと、
を備える演算処理装置。
(付記2)
前記演算実行制御部は、前記浮動小数点演算命令のソースオペランドのデータが確定したとき、前記終了報告を出力する付記1記載の演算処理装置。
(付記3)
前記演算処理装置に浮動小数点演算命令の演算時に例外を検出したら命令完了時に例外処理を発生することが設定されている場合、前記命令完了制御部は、前記終了報告を受信してから所定時間経過後に前記リネーミングレジスタの解放を指示する付記1または2記載の演算処理装置。
(付記4)
浮動小数点演算命令の演算時に例外を検出しても命令完了時に例外処理を発生しないことが設定され、複数のエントリを含み、前記複数のエントリのそれぞれはアーキテクチャレジスタまたはリネーミングレジスタのいずれかに割り当てられる浮動小数点レジスタを有する演算処理装置の制御方法であって、
前記演算処理装置が有する演算器が浮動小数点演算を行い、
前記演算処理装置が有する演算実行制御部が、前記浮動小数点演算命令を発行するとともに、前記演算器による前記浮動小数点演算が終了する前に前記浮動小数点演算の終了報告を出力し、
前記演算処理装置が有する命令完了制御部が、前記終了報告を受信して命令の実行を完了すると、前記リネーミングレジスタの解放を指示し、
前記演算処理装置が有する命令デコーダが、前記指示を受信するとともに、前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てられた第1のエントリをリネーミングレジスタに割り当て、前記浮動小数点演算においてリネーミングレジスタに割り当てられた第2のエントリを前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てる
演算処理装置の制御方法。
(付記5)
前記演算実行制御部は、前記浮動小数点演算命令のソースオペランドのデータが確定したとき、前記終了報告を出力する付記4記載の制御方法。
(付記6)
前記演算処理装置に浮動小数点演算命令の演算時に例外を検出したら命令完了時に例外処理を発生することが設定されている場合、前記命令完了制御部は、前記終了報告を受信してから所定時間経過後に前記リネーミングレジスタの解放を指示する付記4または5記載の制御方法。
101 ノード
111 コア
112 MAC
113 LLキャッシュ
114 インターコネクト部
115 命令フェッチアドレス生成器
116 1次命令キャッシュ
117 命令バッファ
121 命令デコーダ
131 メモリアクセス実行制御部
132 オペランドアドレス生成器
133 1次データキャッシュ
141 演算実行制御部
142 固定小数点演算器
143 浮動小数点演算器
151 固定小数点物理レジスタ
161 浮動小数点物理レジスタ
171 命令完了制御部
172 CSE
173 完了対象命令部
174 命令完了判断部
175 比較回路
176 CSE出力ポインタ
177 命令完了抑止部
178 FPSR更新回路
181 FPCR
182 FPSR
183 PC
191 分岐実行制御部
192 分岐予測機構
201 メモリ
301 I/O
1781 フリップフロップ
1782 比較回路
Claims (4)
- 浮動小数点演算命令の演算時に例外を検出しても命令完了時に例外処理を発生しないことが設定された演算処理装置であって、
浮動小数点演算を行う演算器と、
複数のエントリを含み、前記複数のエントリのそれぞれはアーキテクチャレジスタまたはリネーミングレジスタのいずれかに割り当てられる浮動小数点レジスタと、
前記浮動小数点演算命令を発行するとともに、前記演算器による前記浮動小数点演算が終了する前に前記浮動小数点演算の終了報告を出力する演算実行制御部と、
前記終了報告を受信して、命令の実行を完了すると、前記リネーミングレジスタの解放を指示する命令完了制御部と、
前記指示を受信するとともに、前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てられた第1のエントリをリネーミングレジスタに割り当て、前記浮動小数点演算においてリネーミングレジスタに割り当てられた第2のエントリを前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てる命令デコーダと、
を備える演算処理装置。 - 前記演算実行制御部は、前記浮動小数点演算命令のソースオペランドのデータが確定したとき、前記終了報告を出力する請求項1記載の演算処理装置。
- 前記演算処理装置に浮動小数点演算命令の演算時に例外を検出したら命令完了時に例外処理を発生することが設定されている場合、前記命令完了制御部は、前記終了報告を受信してから所定時間経過後に前記リネーミングレジスタの解放を指示する請求項1または2記載の演算処理装置。
- 浮動小数点演算命令の演算時に例外を検出しても命令完了時に例外処理を発生しないことが設定され、複数のエントリを含み、前記複数のエントリのそれぞれはアーキテクチャレジスタまたはリネーミングレジスタのいずれかに割り当てられる浮動小数点レジスタを有する演算処理装置の制御方法であって、
前記演算処理装置が有する演算器が浮動小数点演算を行い、
前記演算処理装置が有する演算実行制御部が、前記浮動小数点演算命令を発行するとともに、前記演算器による前記浮動小数点演算が終了する前に前記浮動小数点演算の終了報告を出力し、
前記演算処理装置が有する命令完了制御部が、前記終了報告を受信して、命令の実行を完了するとともに、前記リネーミングレジスタの解放を指示し、
前記演算処理装置が有する命令デコーダが、前記指示を受信するとともに、前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てられた第1のエントリをリネーミングレジスタに割り当て、前記浮動小数点演算においてリネーミングレジスタに割り当てられた第2のエントリを前記浮動小数点演算の実行結果を格納するアーキテクチャレジスタに割り当てる
演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018112443A JP7043985B2 (ja) | 2018-06-13 | 2018-06-13 | 演算処理装置および演算処理装置の制御方法 |
US16/416,335 US10824431B2 (en) | 2018-06-13 | 2019-05-20 | Releasing rename registers for floating-point operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018112443A JP7043985B2 (ja) | 2018-06-13 | 2018-06-13 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019215694A JP2019215694A (ja) | 2019-12-19 |
JP7043985B2 true JP7043985B2 (ja) | 2022-03-30 |
Family
ID=68840016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018112443A Active JP7043985B2 (ja) | 2018-06-13 | 2018-06-13 | 演算処理装置および演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10824431B2 (ja) |
JP (1) | JP7043985B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11086630B1 (en) * | 2020-02-27 | 2021-08-10 | International Business Machines Corporation | Finish exception handling of an instruction completion table |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010004755A1 (en) | 1997-04-03 | 2001-06-21 | Henry M Levy | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
US20120265966A1 (en) | 2011-04-15 | 2012-10-18 | Advanced Micro Devices, Inc. | Processor with increased efficiency via early instruction completion |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW260765B (ja) * | 1994-03-31 | 1995-10-21 | Ibm | |
US6298435B1 (en) * | 1996-04-16 | 2001-10-02 | International Business Machines Corporation | Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US6094716A (en) | 1998-07-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Register renaming in which moves are accomplished by swapping rename tags |
JP3817436B2 (ja) | 2000-09-28 | 2006-09-06 | 株式会社東芝 | プロセッサおよびリネーミング装置 |
US7996662B2 (en) * | 2005-11-17 | 2011-08-09 | Apple Inc. | Floating point status/control register encodings for speculative register field |
JP5130757B2 (ja) * | 2007-03-16 | 2013-01-30 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US7769986B2 (en) * | 2007-05-01 | 2010-08-03 | International Business Machines Corporation | Method and apparatus for register renaming |
US8683180B2 (en) * | 2009-10-13 | 2014-03-25 | International Business Machines Corporation | Intermediate register mapper |
US9400655B2 (en) * | 2013-03-20 | 2016-07-26 | Arm Limited | Technique for freeing renamed registers |
-
2018
- 2018-06-13 JP JP2018112443A patent/JP7043985B2/ja active Active
-
2019
- 2019-05-20 US US16/416,335 patent/US10824431B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010004755A1 (en) | 1997-04-03 | 2001-06-21 | Henry M Levy | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
US20120265966A1 (en) | 2011-04-15 | 2012-10-18 | Advanced Micro Devices, Inc. | Processor with increased efficiency via early instruction completion |
Also Published As
Publication number | Publication date |
---|---|
US10824431B2 (en) | 2020-11-03 |
US20190384608A1 (en) | 2019-12-19 |
JP2019215694A (ja) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4856100B2 (ja) | 非アラインドメモリアクセス予測 | |
US8074060B2 (en) | Out-of-order execution microprocessor that selectively initiates instruction retirement early | |
US8250349B2 (en) | Branch prediction control device having return address stack and method of branch prediction | |
US20150106598A1 (en) | Computer Processor Employing Efficient Bypass Network For Result Operand Routing | |
JP2008530714A5 (ja) | ||
JP7324767B2 (ja) | 零オーバーヘッドループを実現するプロセッサ | |
US20040225870A1 (en) | Method and apparatus for reducing wrong path execution in a speculative multi-threaded processor | |
CN114579312A (zh) | 一种指令处理方法、处理器、芯片和电子设备 | |
US20100095305A1 (en) | Simultaneous multithread instruction completion controller | |
JP7043985B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2023531216A (ja) | 命令再フェッチを減らすための、プロセッサにおけるハザードに応答した命令パイプライン・フラッシュ後のフェッチ、フラッシュされた命令の再利用 | |
JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
US11372712B2 (en) | Processing device and method of controlling processing device | |
EP3497558B1 (en) | System and method for load and store queue allocations at address generation time | |
US20110231637A1 (en) | Central processing unit and method for workload dependent optimization thereof | |
JP5238876B2 (ja) | 情報処理装置及び情報処理方法 | |
KR20230023710A (ko) | 명령어 재실행을 감소시키기 위한, 프로세서의 위험에 응답한 명령어 파이프라인 플러시 후 실행되고 플러시된 명령어의 재사용 | |
WO2016201699A1 (zh) | 指令处理方法及设备 | |
US10846095B2 (en) | System and method for processing a load micro-operation by allocating an address generation scheduler queue entry without allocating a load queue entry | |
JP6344022B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP3807740B2 (ja) | プロセッサ及び命令制御方法 | |
JPH076037A (ja) | 命令解読装置 | |
EP1235139A2 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
JP6107904B2 (ja) | プロセッサ及びストア命令の変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190328 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220128 |
|
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: 20220215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7043985 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |