JPWO2020060734A5 - - Google Patents
Download PDFInfo
- Publication number
- JPWO2020060734A5 JPWO2020060734A5 JP2021514963A JP2021514963A JPWO2020060734A5 JP WO2020060734 A5 JPWO2020060734 A5 JP WO2020060734A5 JP 2021514963 A JP2021514963 A JP 2021514963A JP 2021514963 A JP2021514963 A JP 2021514963A JP WO2020060734 A5 JPWO2020060734 A5 JP WO2020060734A5
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instructions
- processor
- component
- low power
- 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
Claims (20)
予測されたループ繰り返し数が第1のループ繰り返し閾値を超えることに応じて、前記ループ命令のセットをループモードで実行することであって、前記プロセッサの命令パイプラインの少なくとも1つのコンポーネントを低電力モードに置くことと、前記ループ命令のセットをループバッファから実行することと、を含む、ことと、を含む、
方法。 predicting the number of loop iterations expected to be executed for a loop associated with a set of loop instructions in a processor;
executing the set of loop instructions in a loop mode responsive to a predicted number of loop iterations exceeding a first loop iteration threshold to reduce power at least one component of an instruction pipeline of the processor; placing in a mode; and executing the set of loop instructions from a loop buffer;
Method.
請求項1の方法。 responsive to the predicted number of loop iterations being less than a second loop iteration threshold, delaying transitioning to the loop mode until a threshold number of loop iterations have been performed;
The method of Claim 1.
請求項2の方法。 responsive to the predicted number of loop iterations being greater than the second loop iteration threshold, transitioning to the loop mode before the threshold number of loop iterations are performed;
3. The method of claim 2.
請求項1の方法。 placing at least one component of the instruction pipeline in a low power mode includes placing a loop end predictor of the processor in the low power mode;
The method of Claim 1.
更新されたループ繰り返し数に基づいて、低電力モードにある前記命令パイプラインの少なくとも1つのコンポーネントに電力を戻すタイミングを決定することと、をさらに含む、
請求項1の方法。 updating by a loop end predictor a loop iteration number associated with the set of loop instructions after placing at least one component of the instruction pipeline in a low power mode;
determining when to return power to at least one component of the instruction pipeline that is in a low power mode based on the updated loop iteration number;
The method of Claim 1.
請求項1~5の何れかの方法。 further comprising, prior to predicting the number of loop iterations, identifying instructions as the set of loop instructions by matching characteristics of the loop instructions to identifiers in a set of stored loop identifiers;
The method according to any one of claims 1-5.
請求項1の方法。 placing at least one component of the instruction pipeline in a low power mode prior to executing an instruction of the set of loop instructions;
The method of Claim 1.
請求項1の方法。 further comprising predicting the end of the set of loop instructions during the loop mode;
The method of Claim 1.
前記ループ命令のセットをループバッファに記憶することと、
前記プロセッサの命令パイプラインのコンポーネントを低電力モードに置くことと、
前記ループ命令のセットを前記ループバッファから実行することと、
前記プロセッサのループ終了予測器によってループ終了を予測することと、
予測されたループ終了に基づいて、低電力モードに置かれた前記コンポーネントに電力を戻すことと、を含む、
方法。 In response to predicting the number of loop iterations expected to be executed for a loop associated with a set of loop instructions in a processor,
storing the set of loop instructions in a loop buffer;
placing components of the processor's instruction pipeline in a low power mode;
executing the set of loop instructions from the loop buffer;
predicting loop termination by a loop termination predictor of the processor;
returning power to the component placed in a low power mode based on a predicted loop termination.
Method.
請求項9の方法。 further comprising comparing a predicted number of loop iterations to a first loop iteration threshold prior to powering down components of the instruction pipeline;
10. The method of claim 9.
請求項9の方法。 components of the instruction pipeline are placed in a low power mode prior to executing the set of loop instructions from a loop buffer;
10. The method of claim 9.
請求項9~11の何れかの方法。 powering down components of the instruction pipeline includes powering down a loop end predictor of the processor;
The method according to any one of claims 9-11.
ループ命令のセットを有する命令キャッシュと、
前記ループ命令のセットを記憶するように構成されたループバッファと、
前記ループ命令のセットに関連するループに対して実行されることが予想されるループ繰り返し数を予測するように構成されたループ終了予測器と、を備え、
前記プロセッサは、
予測されたループ繰り返し数が第1のループ繰り返し閾値を超えることに応じて、前記ループ命令のセットをループモードで実行することであって、前記プロセッサの命令パイプラインの少なくとも1つのコンポーネントを低電力モードに置くことと、前記ループ命令のセットを前記ループバッファから実行することと、を含む、ことと、
予測されたループ繰り返し数が前記第1のループ繰り返し閾値以下であることに応じて、前記ループ命令のセットを非ループモードで実行することであって、前記命令パイプラインの前記少なくとも1つのコンポーネントをアクティブ状態に維持することと、前記命令パイプラインの命令フェッチユニットによって前記命令キャッシュからフェッチされた前記ループ命令のセットを実行することと、を含む、ことと、
を行うように構成されている、
プロセッサ。 a processor,
an instruction cache having a set of loop instructions;
a loop buffer configured to store the set of loop instructions;
a loop end predictor configured to predict the number of loop iterations expected to be executed for a loop associated with the set of loop instructions ;
The processor
executing the set of loop instructions in a loop mode responsive to a predicted number of loop iterations exceeding a first loop iteration threshold to reduce power at least one component of an instruction pipeline of the processor; placing in a mode; and executing the set of loop instructions from the loop buffer;
executing the set of loop instructions in a non-loop mode in response to a predicted number of loop iterations being less than or equal to the first loop iteration threshold, comprising: maintaining an active state; and executing the set of loop instructions fetched from the instruction cache by an instruction fetch unit of the instruction pipeline;
is configured to do
processor.
前記命令フェッチユニットは、前記命令キャッシュから前記デコーダに前記ループ命令を提供するように構成されている、
請求項13のプロセッサ。 further comprising a decoder for decoding the set of loop instructions into micro-ops for execution by functional units of the processor;
the instruction fetch unit is configured to provide the loop instruction from the instruction cache to the decoder;
14. The processor of claim 13.
請求項14のプロセッサ。 the instruction fetch unit is configured to provide instructions to the loop end predictor;
15. The processor of claim 14.
請求項13のプロセッサ。 at least one component of the instruction pipeline placed in the low power mode is an instruction fetch component of the processor;
14. The processor of claim 13.
請求項13のプロセッサ。 at least one component of the instruction pipeline placed in the low power mode is the loop end predictor;
14. The processor of claim 13.
前記命令パイプラインの前記少なくとも1つのコンポーネントを前記低電力モードに置いた後に、前記ループ命令のセットに関連するループ繰り返し数を更新するように構成されており、
前記低電力モードに置かれた前記命令パイプラインの少なくとも1つのコンポーネントに電力を戻すタイミングは、更新されたループ繰り返し数に基づいている、
請求項13~17の何れかのプロセッサ。 The loop end predictor is
configured to update a loop iteration number associated with the set of loop instructions after placing the at least one component of the instruction pipeline in the low power mode;
a timing for returning power to at least one component of the instruction pipeline placed in the low power mode is based on an updated loop iteration number;
A processor according to any of claims 13-17.
前記ループ終了予測器は、前記ループ命令のセットの特性を、前記記憶されたループ識別子のバッファ内の識別子にマッチングさせるように構成されている、
請求項13のプロセッサ。 further comprising a buffer of stored loop identifiers;
the loop termination predictor is configured to match characteristics of the set of loop instructions to identifiers in the stored buffer of loop identifiers;
14. The processor of claim 13.
請求項13のプロセッサ。 Placing at least one component of the instruction pipeline in the low power mode predicts the loop iteration number associated with the set of loop instructions prior to executing instructions associated with the set of loop instructions. is done after
14. The processor of claim 13.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/134,440 US10915322B2 (en) | 2018-09-18 | 2018-09-18 | Using loop exit prediction to accelerate or suppress loop mode of a processor |
US16/134,440 | 2018-09-18 | ||
PCT/US2019/048487 WO2020060734A1 (en) | 2018-09-18 | 2019-08-28 | Using loop exit prediction to accelerate or suppress loop mode of a processor |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022500777A JP2022500777A (en) | 2022-01-04 |
JPWO2020060734A5 true JPWO2020060734A5 (en) | 2022-09-01 |
JP7301955B2 JP7301955B2 (en) | 2023-07-03 |
Family
ID=69772505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021514963A Active JP7301955B2 (en) | 2018-09-18 | 2019-08-28 | Promoting or Suppressing Loop Mode in Processors Using Loop End Prediction |
Country Status (6)
Country | Link |
---|---|
US (2) | US10915322B2 (en) |
EP (1) | EP3853716A4 (en) |
JP (1) | JP7301955B2 (en) |
KR (1) | KR102556897B1 (en) |
CN (1) | CN112740173A (en) |
WO (1) | WO2020060734A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884751B2 (en) | 2018-07-13 | 2021-01-05 | Advanced Micro Devices, Inc. | Method and apparatus for virtualizing the micro-op cache |
US11294681B2 (en) * | 2019-05-31 | 2022-04-05 | Texas Instruments Incorporated | Processing device with a microbranch target buffer for branch prediction using loop iteration count |
US11256318B2 (en) * | 2019-08-09 | 2022-02-22 | Intel Corporation | Techniques for memory access in a reduced power state |
US20210200550A1 (en) * | 2019-12-28 | 2021-07-01 | Intel Corporation | Loop exit predictor |
US20220283811A1 (en) * | 2021-03-03 | 2022-09-08 | Microsoft Technology Licensing, Llc | Loop buffering employing loop characteristic prediction in a processor for optimizing loop buffer performance |
US20240028339A1 (en) * | 2022-07-25 | 2024-01-25 | Apple Inc. | Using a Next Fetch Predictor Circuit with Short Branches and Return Fetch Groups |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578138B1 (en) | 1999-12-30 | 2003-06-10 | Intel Corporation | System and method for unrolling loops in a trace cache |
JP5043560B2 (en) | 2007-08-24 | 2012-10-10 | パナソニック株式会社 | Program execution control device |
US9952869B2 (en) * | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
US8667257B2 (en) | 2010-11-10 | 2014-03-04 | Advanced Micro Devices, Inc. | Detecting branch direction and target address pattern and supplying fetch address by replay unit instead of branch prediction unit |
US9116686B2 (en) | 2012-04-02 | 2015-08-25 | Apple Inc. | Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction |
US9557999B2 (en) * | 2012-06-15 | 2017-01-31 | Apple Inc. | Loop buffer learning |
US9753733B2 (en) * | 2012-06-15 | 2017-09-05 | Apple Inc. | Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer |
US9710276B2 (en) * | 2012-11-09 | 2017-07-18 | Advanced Micro Devices, Inc. | Execution of instruction loops using an instruction buffer |
US9459871B2 (en) * | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
US9471322B2 (en) | 2014-02-12 | 2016-10-18 | Apple Inc. | Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold |
US9524011B2 (en) * | 2014-04-11 | 2016-12-20 | Apple Inc. | Instruction loop buffer with tiered power savings |
CN104298488B (en) * | 2014-09-29 | 2018-02-23 | 上海兆芯集成电路有限公司 | The cyclic buffer that circular prediction device instructs |
US9875106B2 (en) | 2014-11-12 | 2018-01-23 | Mill Computing, Inc. | Computer processor employing instruction block exit prediction |
US20160179549A1 (en) | 2014-12-23 | 2016-06-23 | Intel Corporation | Instruction and Logic for Loop Stream Detection |
JP2018005488A (en) | 2016-06-30 | 2018-01-11 | 富士通株式会社 | Arithmetic processing unit and control method for arithmetic processing unit |
-
2018
- 2018-09-18 US US16/134,440 patent/US10915322B2/en active Active
-
2019
- 2019-08-28 JP JP2021514963A patent/JP7301955B2/en active Active
- 2019-08-28 EP EP19862627.7A patent/EP3853716A4/en active Pending
- 2019-08-28 CN CN201980061096.3A patent/CN112740173A/en active Pending
- 2019-08-28 WO PCT/US2019/048487 patent/WO2020060734A1/en unknown
- 2019-08-28 KR KR1020217010368A patent/KR102556897B1/en active IP Right Grant
-
2021
- 2021-02-05 US US17/169,053 patent/US11256505B2/en active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101225075B1 (en) | System and method of selectively committing a result of an executed instruction | |
US9891923B2 (en) | Loop predictor-directed loop buffer | |
KR101221507B1 (en) | Method and apparatus for executing processor instructions based on a dynamically alterable delay | |
US7444501B2 (en) | Methods and apparatus for recognizing a subroutine call | |
JP7301955B2 (en) | Promoting or Suppressing Loop Mode in Processors Using Loop End Prediction | |
US20200364054A1 (en) | Processor subroutine cache | |
US9250912B2 (en) | Fast index tree for accelerated branch prediction | |
KR20090042292A (en) | Method and apparatus for prefetching non-sequential instruction addresses | |
KR101048258B1 (en) | Association of cached branch information with the final granularity of branch instructions in a variable-length instruction set | |
US20170109165A1 (en) | Apparatus and method for accessing data in a data store | |
JP2004164622A (en) | Method for improving dsp kernel's performance/power ratio | |
US11301253B2 (en) | Branch prediction structure indexed based on return address popped from a call-return stack | |
TW201433979A (en) | Selective poisoning of data during runahead | |
JPWO2020060734A5 (en) | ||
US8874884B2 (en) | Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold | |
US11663007B2 (en) | Control of branch prediction for zero-overhead loop | |
US8307195B2 (en) | Information processing device and method of controlling instruction fetch | |
US9250909B2 (en) | Fast index tree for accelerated branch prediction | |
CN117472446B (en) | Branch prediction method of multi-stage instruction fetching target buffer based on processor |