JP7301955B2 - ループ終了予測を用いたプロセッサのループモードの促進又は抑制 - Google Patents

ループ終了予測を用いたプロセッサのループモードの促進又は抑制 Download PDF

Info

Publication number
JP7301955B2
JP7301955B2 JP2021514963A JP2021514963A JP7301955B2 JP 7301955 B2 JP7301955 B2 JP 7301955B2 JP 2021514963 A JP2021514963 A JP 2021514963A JP 2021514963 A JP2021514963 A JP 2021514963A JP 7301955 B2 JP7301955 B2 JP 7301955B2
Authority
JP
Japan
Prior art keywords
loop
instructions
processor
mode
instruction
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
Application number
JP2021514963A
Other languages
English (en)
Japanese (ja)
Other versions
JP2022500777A5 (https=
JPWO2020060734A5 (https=
JP2022500777A (ja
Inventor
アンナマライ アルナーチャラム
エバース マリウス
シャガラジャン アパルナ
ジャービス アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2022500777A publication Critical patent/JP2022500777A/ja
Publication of JP2022500777A5 publication Critical patent/JP2022500777A5/ja
Publication of JPWO2020060734A5 publication Critical patent/JPWO2020060734A5/ja
Application granted granted Critical
Publication of JP7301955B2 publication Critical patent/JP7301955B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
JP2021514963A 2018-09-18 2019-08-28 ループ終了予測を用いたプロセッサのループモードの促進又は抑制 Active JP7301955B2 (ja)

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 (4)

Publication Number Publication Date
JP2022500777A JP2022500777A (ja) 2022-01-04
JP2022500777A5 JP2022500777A5 (https=) 2022-09-01
JPWO2020060734A5 JPWO2020060734A5 (https=) 2022-09-01
JP7301955B2 true JP7301955B2 (ja) 2023-07-03

Family

ID=69772505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021514963A Active JP7301955B2 (ja) 2018-09-18 2019-08-28 ループ終了予測を用いたプロセッサのループモードの促進又は抑制

Country Status (6)

Country Link
US (2) US10915322B2 (https=)
EP (1) EP3853716A4 (https=)
JP (1) JP7301955B2 (https=)
KR (1) KR102556897B1 (https=)
CN (1) CN112740173A (https=)
WO (1) WO2020060734A1 (https=)

Families Citing this family (14)

* 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
US11520590B2 (en) * 2020-09-02 2022-12-06 Microsoft Technology Licensing, Llc Detecting a repetitive pattern in an instruction pipeline of a processor to reduce repeated fetching
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
US12288067B2 (en) * 2022-06-23 2025-04-29 Arm Limited Prediction of number of iterations of a fetching process
US12373215B2 (en) * 2022-07-25 2025-07-29 Apple Inc. Using a next fetch predictor circuit with short branches and return fetch groups
US20240112050A1 (en) * 2022-09-29 2024-04-04 Nvidia Corporation Identifying idle-cores in data centers using machine-learning (ml)
US12541371B2 (en) 2023-08-23 2026-02-03 Arm Limited Predicting behaviour of control flow instructions using prediction entry types
CN117170747B (zh) * 2023-08-28 2025-10-17 海光信息技术股份有限公司 程序与指令处理、训练与预测方法与装置、处理器
US12411692B2 (en) * 2023-09-07 2025-09-09 Arm Limited Storage of prediction-related data
US12517732B2 (en) 2024-03-22 2026-01-06 Tenstorrent USA, Inc. Processor with one or more progressive conservative execution modes
US12450060B1 (en) * 2024-08-28 2025-10-21 Qualcomm Incorporated Sharing loop cache instances among multiple threads in processor devices

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117362A1 (en) 2010-11-10 2012-05-10 Bhargava Ravindra N Replay of detected patterns in predicted instructions
JP2013254484A (ja) 2012-04-02 2013-12-19 Apple Inc ベクトル分割ループの性能の向上
US20150293577A1 (en) 2014-04-11 2015-10-15 Apple Inc. Instruction loop buffer with tiered power savings
US20160092230A1 (en) 2014-09-29 2016-03-31 Via Alliance Semiconductor, Ltd. Loop predictor-directed loop buffer
US20160179549A1 (en) 2014-12-23 2016-06-23 Intel Corporation Instruction and Logic for Loop Stream Detection
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
JP2018005488A (ja) 2016-06-30 2018-01-11 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (8)

* 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 (ja) 2007-08-24 2012-10-10 パナソニック株式会社 プログラム実行制御装置
US9952869B2 (en) * 2009-11-04 2018-04-24 Ceva D.S.P. Ltd. System and method for using a branch mis-prediction buffer
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
US9875106B2 (en) 2014-11-12 2018-01-23 Mill Computing, Inc. Computer processor employing instruction block exit prediction

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117362A1 (en) 2010-11-10 2012-05-10 Bhargava Ravindra N Replay of detected patterns in predicted instructions
JP2013254484A (ja) 2012-04-02 2013-12-19 Apple Inc ベクトル分割ループの性能の向上
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US20150293577A1 (en) 2014-04-11 2015-10-15 Apple Inc. Instruction loop buffer with tiered power savings
US20160092230A1 (en) 2014-09-29 2016-03-31 Via Alliance Semiconductor, Ltd. Loop predictor-directed loop buffer
US20160179549A1 (en) 2014-12-23 2016-06-23 Intel Corporation Instruction and Logic for Loop Stream Detection
JP2018005488A (ja) 2016-06-30 2018-01-11 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
CN112740173A (zh) 2021-04-30
US11256505B2 (en) 2022-02-22
US20200089498A1 (en) 2020-03-19
EP3853716A4 (en) 2022-06-15
US20210191722A1 (en) 2021-06-24
JP2022500777A (ja) 2022-01-04
KR20210046806A (ko) 2021-04-28
WO2020060734A1 (en) 2020-03-26
KR102556897B1 (ko) 2023-07-18
US10915322B2 (en) 2021-02-09
EP3853716A1 (en) 2021-07-28

Similar Documents

Publication Publication Date Title
JP7301955B2 (ja) ループ終了予測を用いたプロセッサのループモードの促進又は抑制
US9891923B2 (en) Loop predictor-directed loop buffer
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
US7334143B2 (en) Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value
US7627742B2 (en) Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US8006070B2 (en) Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system
KR100973951B1 (ko) 오정렬 메모리 액세스 예측
JP7232331B2 (ja) ループ終了予測器
JP2022500777A5 (https=)
KR102271992B1 (ko) 데이터 처리장치 및 추론 벡터 연산의 수행 제어방법
KR20140114074A (ko) 이종 멀티프로세서 컴퓨팅 플랫폼 내에서의 애플리케이션 스케줄링
US20220283811A1 (en) Loop buffering employing loop characteristic prediction in a processor for optimizing loop buffer performance
US8028180B2 (en) Method and system for power conservation in a hierarchical branch predictor
US11972264B2 (en) Micro-operation supply rate variation
US8266414B2 (en) Method for executing an instruction loop and a device having instruction loop execution capabilities
US20130173885A1 (en) Processor and Methods of Adjusting a Branch Misprediction Recovery Mode
US10303482B2 (en) Dynamic processor frequency selection
CN103793205A (zh) 在超前运行期间对数据的选择性毒化
US11663007B2 (en) Control of branch prediction for zero-overhead loop
US12578968B2 (en) Systems and methods for branch pre-resolution by software-provided hardware-managed backslice execution

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220824

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230227

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: 20230530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230621

R150 Certificate of patent or registration of utility model

Ref document number: 7301955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150