JP2019215694A - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP2019215694A JP2019215694A JP2018112443A JP2018112443A JP2019215694A JP 2019215694 A JP2019215694 A JP 2019215694A JP 2018112443 A JP2018112443 A JP 2018112443A JP 2018112443 A JP2018112443 A JP 2018112443A JP 2019215694 A JP2019215694 A JP 2019215694A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- floating
- register
- point
- control unit
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000010586 diagram Methods 0.000 description 18
- 230000001629 suppression Effects 0.000 description 13
- 230000000052 comparative effect Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 10
- 230000002401 inhibitory effect Effects 0.000 description 5
- 230000005764 inhibitory process Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
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)
Abstract
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 true JP2019215694A (ja) | 2019-12-19 |
JP7043985B2 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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271584A (ja) * | 1994-03-31 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | オペレーションの処理システム及び方法 |
JPH1040105A (ja) * | 1996-04-16 | 1998-02-13 | Internatl Business Mach Corp <Ibm> | リネーム・レジスタを割り付ける方法及びプロセッサ |
JPH10105400A (ja) * | 1996-08-30 | 1998-04-24 | Internatl Business Mach Corp <Ibm> | 浮動小数点実行ユニットにおける状態フラグ及び条件コードの保持装置及び方法 |
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 (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271584A (ja) * | 1994-03-31 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | オペレーションの処理システム及び方法 |
JPH1040105A (ja) * | 1996-04-16 | 1998-02-13 | Internatl Business Mach Corp <Ibm> | リネーム・レジスタを割り付ける方法及びプロセッサ |
JPH10105400A (ja) * | 1996-08-30 | 1998-04-24 | Internatl Business Mach Corp <Ibm> | 浮動小数点実行ユニットにおける状態フラグ及び条件コードの保持装置及び方法 |
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 |
JP7043985B2 (ja) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4856100B2 (ja) | 非アラインドメモリアクセス予測 | |
US8555039B2 (en) | System and method for using a local condition code register for accelerating conditional instruction execution in a pipeline processor | |
US8250349B2 (en) | Branch prediction control device having return address stack and method of branch prediction | |
US8074060B2 (en) | Out-of-order execution microprocessor that selectively initiates instruction retirement early | |
US20150106598A1 (en) | Computer Processor Employing Efficient Bypass Network For Result Operand Routing | |
JP2008530714A5 (ja) | ||
JPH07281896A (ja) | 情報処理装置 | |
JP2014002735A (ja) | ゼロサイクルロード | |
EP3171264B1 (en) | System and method of speculative parallel execution of cache line unaligned load instructions | |
US6289437B1 (en) | Data processing system and method for implementing an efficient out-of-order issue mechanism | |
US20040225870A1 (en) | Method and apparatus for reducing wrong path execution in a speculative multi-threaded processor | |
US20100095305A1 (en) | Simultaneous multithread instruction completion controller | |
JP7043985B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US7010676B2 (en) | Last iteration loop branch prediction upon counter threshold and resolution upon counter one | |
US11372712B2 (en) | Processing device and method of controlling processing device | |
US9841974B2 (en) | Renaming with generation numbers | |
JP2023531216A (ja) | 命令再フェッチを減らすための、プロセッサにおけるハザードに応答した命令パイプライン・フラッシュ後のフェッチ、フラッシュされた命令の再利用 | |
US11080057B2 (en) | Processing device and method of controlling processing device | |
JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
KR20230023710A (ko) | 명령어 재실행을 감소시키기 위한, 프로세서의 위험에 응답한 명령어 파이프라인 플러시 후 실행되고 플러시된 명령어의 재사용 | |
JP2018045370A (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP3807740B2 (ja) | プロセッサ及び命令制御方法 | |
EP1235139A2 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
JPH076037A (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 |