JPWO2020060734A5 - - Google Patents

Download PDF

Info

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
Application number
JP2021514963A
Other languages
Japanese (ja)
Other versions
JP7301955B2 (en
JP2022500777A (en
Publication date
Priority claimed from US16/134,440 external-priority patent/US10915322B2/en
Application filed filed Critical
Publication of JP2022500777A publication Critical patent/JP2022500777A/en
Publication of JPWO2020060734A5 publication Critical patent/JPWO2020060734A5/ja
Application granted granted Critical
Publication of JP7301955B2 publication Critical patent/JP7301955B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.
前記予測されたループ繰り返し数が第2のループ繰り返し閾値よりも小さいことに応じて、閾値回数のループ繰り返しが実行されるまで前記ループモードに移行するのを遅らせることをさらに含む、
請求項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のループ繰り返し閾値よりも大きいことに応じて、前記閾値回数のループ繰り返しが実行される前に前記ループモードに移行することをさらに含む、
請求項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つのコンポーネントを低電力モードに置くことは、前記プロセッサのループ終了予測器を前記低電力モードに置くことを含む、
請求項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つのコンポーネントに電力を戻すタイミングを決定することと、をさらに含む、
請求項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つのコンポーネントを低電力モードに置くことは、前記ループ命令のセットの命令を実行する前に行われる、
請求項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.
前記命令パイプラインのコンポーネントをパワーダウンする前に、予測されたループ繰り返し数を第1のループ繰り返し閾値と比較することをさらに含む、
請求項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.
前記低電力モードに置かれた前記命令パイプラインの少なくとも1つのコンポーネントは、前記プロセッサの命令フェッチコンポーネントである、
請求項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.
前記低電力モードに置かれた前記命令パイプラインの少なくとも1つのコンポーネントは、前記ループ終了予測器である、
請求項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.
前記命令パイプラインの少なくとも1つのコンポーネントを前記低電力モードに置くことは、前記ループ命令のセットに関連する命令を実行する前であって、前記ループ命令のセットに関連する前記ループ繰り返し数を予測した後に行われる、
請求項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.
JP2021514963A 2018-09-18 2019-08-28 Promoting or Suppressing Loop Mode in Processors Using Loop End Prediction Active JP7301955B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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