Movatterモバイル変換


[0]ホーム

URL:


US20170046159A1 - Power efficient fetch adaptation - Google Patents

Power efficient fetch adaptation
Download PDF

Info

Publication number
US20170046159A1
US20170046159A1US14/827,262US201514827262AUS2017046159A1US 20170046159 A1US20170046159 A1US 20170046159A1US 201514827262 AUS201514827262 AUS 201514827262AUS 2017046159 A1US2017046159 A1US 2017046159A1
Authority
US
United States
Prior art keywords
instructions
fetch
predicted
instruction
group
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.)
Abandoned
Application number
US14/827,262
Inventor
Shivam Priyadarshi
Rami Mohammad Al Sheikh
Raguram Damodaran
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm IncfiledCriticalQualcomm Inc
Priority to US14/827,262priorityCriticalpatent/US20170046159A1/en
Assigned to QUALCOMM INCORPORATEDreassignmentQUALCOMM INCORPORATEDASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: DAMODARAN, RAGURAM, AL SHEIKH, RAMI MOHAMMAD, PRIYADARSHI, SHIVAM
Priority to PCT/US2016/041696prioritypatent/WO2017030674A1/en
Priority to KR1020187004314Aprioritypatent/KR20180039077A/en
Priority to JP2018505457Aprioritypatent/JP2018523239A/en
Priority to EP16739672.0Aprioritypatent/EP3335110A1/en
Priority to CN201680044673.4Aprioritypatent/CN107851026A/en
Publication of US20170046159A1publicationCriticalpatent/US20170046159A1/en
Abandonedlegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

Systems and methods relate to an instruction fetch unit of a processor, such as a superscalar processor. The instruction fetch unit includes a fetch bandwidth predictor (FBWP) configured to predict a number of instructions to be fetched in a fetch group of instructions in a pipeline stage of the processor. A first entry of the FBWP corresponding to the fetch group corresponds to a prediction of the number of instructions to be fetched, based on occurrence and location of a predicted taken branch instruction in the fetch group and a confidence level associated with the predicted number in the prediction field. The instruction fetch unit is configured to fetch only the predicted number of instructions, rather than the maximum number of entries that can be fetched in the pipeline stage, if the confidence level is greater than a predetermined threshold. In this manner, wasteful fetching of instructions is avoided.

Description

Claims (30)

What is claimed is:
1. A method of fetching instructions for a processor, the method comprising;
predicting a number of instructions to be fetched in a first fetch group of instructions, based at least in part on occurrence and location of a predicted taken branch instruction in the first fetch group;
determining if a confidence level associated with the predicted number of instructions is greater than a predetermined threshold; and
fetching the predicted number of instructions in a pipeline stage of the processor if the confidence level is greater than the predetermined threshold.
2. The method ofclaim 1, wherein the predicted number of instructions is less than the maximum number of instructions that can be fetched in the pipeline stage.
3. The method ofclaim 1, comprising fetching the predicted number of instructions from an instruction cache associated with the processor.
4. The method ofclaim 1, wherein the predicted taken branch instruction is an instruction predicted to change control flow of one or more instructions in the first fetch group.
5. The method ofclaim 1, comprising determining the occurrence and location of the predicted taken branch instruction in the first fetch group from a table comprising information regarding occurrence and location of predicted taken branch instructions in fetch groups.
6. The method ofclaim 5, wherein the information for the first fetch group is stored in a first entry of the table.
7. The method ofclaim 6, comprising accessing the first entry based on an address of a first instruction of the first fetch group and a history of branch instructions.
8. The method ofclaim 6, wherein the information for the first fetch group stored in the first entry comprises an indication of whether the first entry is valid, a confidence level, and a location of the predicted taken branch instruction in the first fetch group.
9. The method ofclaim 8, comprising training the first entry by increasing or decreasing the confidence level based on whether the predicted number of instructions is correct or incorrect, respectively.
10. The method ofclaim 9, comprising determining that the predicted number of instructions is incorrect when the predicted number comprises an over-prediction, wherein the predicted taken branch instruction in the first fetch group is located within a smaller number of instructions in the first fetch group than the predicted number of instructions.
11. The method ofclaim 10 comprising updating the location of the predicted taken branch instruction in the first entry to indicate the smaller number of instructions in the first fetch group.
12. The method ofclaim 9, comprising determining that the predicted number is incorrect when the predicted number comprises an under-prediction, wherein the predicted taken branch instruction is not located within the first fetch group.
13. The method ofclaim 12 further comprising determining that the predicted taken branch instruction is located in a second fetch group and updating the location of the predicted taken branch instruction in the first entry corresponding to the first fetch group based on the predicted number of instructions for the first fetch group and the location of the predicted taken branch instruction in the second fetch group.
14. The method ofclaim 12 further comprising determining either that the location of the predicted taken branch instruction in the second fetch group is beyond a location that can be fetched in the first fetch group, or the second fetch group does not contain a predicted taken branch instruction, and updating the location of the predicted taken branch instruction in the first entry to indicate the maximum number of instructions that can be fetched in the first fetch group.
15. An instruction fetch unit for a processor, the instruction fetch unit comprising:
a fetch bandwidth predictor (FBWP) configured to predict a number of instructions to be fetched in a first fetch group of instructions in a pipeline stage of the processor, wherein a first entry of the FBWP corresponding to the first fetch group comprises:
a prediction field comprising a prediction of the number of instructions to be fetched, based at least in part on occurrence and location of a predicted taken branch instruction in the first fetch group; and
a confidence level associated with the predicted number in the prediction field;
wherein the instruction fetch unit is configured to fetch the predicted number of instructions in the pipeline stage if the confidence level is greater than a predetermined threshold.
16. The instruction fetch unit ofclaim 15, wherein the predicted number of instructions is less than the maximum number of instructions that can be fetched in the pipeline stage.
17. The instruction fetch unit ofclaim 15, wherein the first entry of the FBWP is accessed based on a function of an instruction address of a first instruction of the first fetch group and history of prior branch instructions.
18. The instruction fetch unit ofclaim 17, wherein the FBWP comprises hash logic to implement the function.
19. The instruction fetch unit ofclaim 15, wherein the FBWP comprises a confidence counter to indicate the confidence level, wherein the confidence counter is incremented or decremented based on whether the predicted number in the prediction field is correct or incorrect respectively.
20. The instruction fetch unit ofclaim 19, wherein the predicted number is incorrect when the predicted number comprises an over-prediction, wherein the predicted taken branch instruction is located within a smaller number of instructions in the first fetch group than the predicted number.
21. The instruction fetch unit ofclaim 19, wherein the predicted number is incorrect when the predicted number comprises an under-prediction, wherein the predicted taken branch instruction is not located within the first fetch group.
22. The instruction fetch unit ofclaim 15, wherein the processor is a superscalar processor.
23. The instruction fetch unit ofclaim 15 integrated into a device selected from the group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer.
24. A system comprising:
means for predicting a number of instructions to be fetched in a first fetch group of instructions, based at least in part on occurrence and location of a predicted taken branch instruction in the first fetch group of instructions;
means for determining if a confidence level associated with the predicted number of instructions is greater than a predetermined threshold; and
means for fetching the predicted number of instructions in a pipeline stage of a processor if the confidence level is greater than the predetermined threshold.
25. The system ofclaim 24, wherein the predicted number of instructions is less than the maximum number of instructions that can be fetched in the pipeline stage.
26. A non-transitory computer-readable storage medium comprising code, which, when executed by a processor, causes the processor to perform operations for fetching instructions, the non-transitory computer-readable storage medium comprising:
code for predicting a number of instructions to be fetched in a first fetch group of instructions, based at least in part on occurrence and location of a predicted taken branch instruction in the first fetch group;
code for determining if a confidence level associated with the predicted number of instructions is greater than a predetermined threshold; and
code for fetching the predicted number of instructions from an instruction cache if the confidence level is greater than the predetermined threshold.
27. The non-transitory computer-readable storage medium ofclaim 26, wherein the predicted number of instructions is less than the maximum number of instructions that can be fetched in a pipeline stage.
28. The non-transitory computer-readable storage medium ofclaim 26, comprising code for determining the occurrence and location of the predicted taken branch instruction in the first fetch group from a table comprising information regarding occurrence and location of predicted taken branch instructions in fetch groups.
29. The non-transitory computer-readable storage medium ofclaim 28, comprising code for accessing a first entry of the table comprising information regarding occurrence and location of predicted taken branch instructions in the first fetch group, based on an address of a first instruction of the first fetch group and a history of branch instructions.
30. The non-transitory computer-readable storage medium ofclaim 29, comprising code for training the first entry by increasing or decreasing the confidence level based on whether the predicted number of instructions is correct or incorrect, respectively.
US14/827,2622015-08-142015-08-14Power efficient fetch adaptationAbandonedUS20170046159A1 (en)

Priority Applications (6)

Application NumberPriority DateFiling DateTitle
US14/827,262US20170046159A1 (en)2015-08-142015-08-14Power efficient fetch adaptation
PCT/US2016/041696WO2017030674A1 (en)2015-08-142016-07-11Power efficient fetch adaptation
KR1020187004314AKR20180039077A (en)2015-08-142016-07-11 Power efficient fetch adaptation
JP2018505457AJP2018523239A (en)2015-08-142016-07-11 Power efficient fetch adaptation
EP16739672.0AEP3335110A1 (en)2015-08-142016-07-11Power efficient fetch adaptation
CN201680044673.4ACN107851026A (en)2015-08-142016-07-11 Power Efficient Acquisition Adaptation

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US14/827,262US20170046159A1 (en)2015-08-142015-08-14Power efficient fetch adaptation

Publications (1)

Publication NumberPublication Date
US20170046159A1true US20170046159A1 (en)2017-02-16

Family

ID=56418652

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US14/827,262AbandonedUS20170046159A1 (en)2015-08-142015-08-14Power efficient fetch adaptation

Country Status (6)

CountryLink
US (1)US20170046159A1 (en)
EP (1)EP3335110A1 (en)
JP (1)JP2018523239A (en)
KR (1)KR20180039077A (en)
CN (1)CN107851026A (en)
WO (1)WO2017030674A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20190213131A1 (en)*2018-01-112019-07-11Ariel SabbaStream cache
US10394559B2 (en)*2016-12-132019-08-27International Business Machines CorporationBranch predictor search qualification using stream length prediction
US10642618B1 (en)*2016-06-022020-05-05Apple Inc.Callgraph signature prefetch
US11599358B1 (en)2021-08-122023-03-07Tenstorrent Inc.Pre-staged instruction registers for variable length instruction set machine
US12067395B2 (en)2021-08-122024-08-20Tenstorrent Inc.Pre-staged instruction registers for variable length instruction set machine

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN110633105B (en)*2019-09-122021-01-15安徽寒武纪信息科技有限公司Instruction sequence processing method and device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7552314B2 (en)*1998-12-312009-06-23Stmicroelectronics, Inc.Fetching all or portion of instructions in memory line up to branch instruction based on branch prediction and size indicator stored in branch target buffer indexed by fetch address
US20100332043A1 (en)*2009-06-252010-12-30Qualcomm IncorporatedPrediction Engine to Control Energy Consumption
US20110289300A1 (en)*2010-05-242011-11-24Beaumont-Smith Andrew JIndirect Branch Target Predictor that Prevents Speculation if Mispredict Is Expected
US20130185516A1 (en)*2012-01-162013-07-18Qualcomm IncorporatedUse of Loop and Addressing Mode Instruction Set Semantics to Direct Hardware Prefetching
US20140075156A1 (en)*2012-09-102014-03-13Conrado Blasco-AllueFetch width predictor
US20140201509A1 (en)*2013-01-142014-07-17Imagination Technologies, Ltd.Switch statement prediction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6189091B1 (en)*1998-12-022001-02-13Ip First, L.L.C.Apparatus and method for speculatively updating global history and restoring same on branch misprediction detection
US7103757B1 (en)*2002-10-222006-09-05Lsi Logic CorporationSystem, circuit, and method for adjusting the prefetch instruction rate of a prefetch unit
US7334143B2 (en)*2004-04-192008-02-19Hewlett-Packard Development Company, L.P.Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value
US7856548B1 (en)*2006-12-262010-12-21Oracle America, Inc.Prediction of data values read from memory by a microprocessor using a dynamic confidence threshold
US7627742B2 (en)*2007-04-102009-12-01International Business Machines CorporationMethod and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US9411599B2 (en)*2010-06-242016-08-09International Business Machines CorporationOperand fetching control as a function of branch confidence
US9348599B2 (en)*2013-01-152016-05-24International Business Machines CorporationConfidence threshold-based opposing branch path execution for branch prediction
CN104731718A (en)*2013-12-242015-06-24上海芯豪微电子有限公司Cache system and method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7552314B2 (en)*1998-12-312009-06-23Stmicroelectronics, Inc.Fetching all or portion of instructions in memory line up to branch instruction based on branch prediction and size indicator stored in branch target buffer indexed by fetch address
US20100332043A1 (en)*2009-06-252010-12-30Qualcomm IncorporatedPrediction Engine to Control Energy Consumption
US20110289300A1 (en)*2010-05-242011-11-24Beaumont-Smith Andrew JIndirect Branch Target Predictor that Prevents Speculation if Mispredict Is Expected
US20130185516A1 (en)*2012-01-162013-07-18Qualcomm IncorporatedUse of Loop and Addressing Mode Instruction Set Semantics to Direct Hardware Prefetching
US20140075156A1 (en)*2012-09-102014-03-13Conrado Blasco-AllueFetch width predictor
US20140201509A1 (en)*2013-01-142014-07-17Imagination Technologies, Ltd.Switch statement prediction

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Peng, Superscalar Processors, 13 Nov 2012, 20 pages, [retrieved from the internet on 7/28/2017], retrieved from URL <www.ida.liu.se/~TDTS08/lectures/12/lec5.pdf>*

Cited By (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10642618B1 (en)*2016-06-022020-05-05Apple Inc.Callgraph signature prefetch
US10394559B2 (en)*2016-12-132019-08-27International Business Machines CorporationBranch predictor search qualification using stream length prediction
US20190213131A1 (en)*2018-01-112019-07-11Ariel SabbaStream cache
US11599358B1 (en)2021-08-122023-03-07Tenstorrent Inc.Pre-staged instruction registers for variable length instruction set machine
US12067395B2 (en)2021-08-122024-08-20Tenstorrent Inc.Pre-staged instruction registers for variable length instruction set machine

Also Published As

Publication numberPublication date
KR20180039077A (en)2018-04-17
WO2017030674A1 (en)2017-02-23
CN107851026A (en)2018-03-27
EP3335110A1 (en)2018-06-20
JP2018523239A (en)2018-08-16

Similar Documents

PublicationPublication DateTitle
US10838731B2 (en)Branch prediction based on load-path history
US20170046159A1 (en)Power efficient fetch adaptation
CN109643237B (en)Branch target buffer compression
US10474462B2 (en)Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions
US9201654B2 (en)Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions
US10664280B2 (en)Fetch ahead branch target buffer
US20160350116A1 (en)Mitigating wrong-path effects in branch prediction
US20170322810A1 (en)Hypervector-based branch prediction
US10372459B2 (en)Training and utilization of neural branch predictor
US20190004803A1 (en)Statistical correction for branch prediction mechanisms
US11526359B2 (en)Caching override indicators for statistically biased branches to selectively override a global branch predictor
US8151096B2 (en)Method to improve branch prediction latency
EP3646172A1 (en)Multi-tagged branch prediction table
US20190004806A1 (en)Branch prediction for fixed direction branch instructions
US20170083333A1 (en)Branch target instruction cache (btic) to store a conditional branch instruction
US9135011B2 (en)Next branch table for use with a branch predictor
US9489204B2 (en)Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process
US20190073223A1 (en)Hybrid fast path filter branch predictor
US11687342B2 (en)Way predictor and enable logic for instruction tightly-coupled memory and instruction cache

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:QUALCOMM INCORPORATED, CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PRIYADARSHI, SHIVAM;AL SHEIKH, RAMI MOHAMMAD;DAMODARAN, RAGURAM;SIGNING DATES FROM 20151013 TO 20160428;REEL/FRAME:038580/0250

STPPInformation on status: patent application and granting procedure in general

Free format text:RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPPInformation on status: patent application and granting procedure in general

Free format text:FINAL REJECTION MAILED

STPPInformation on status: patent application and granting procedure in general

Free format text:RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPPInformation on status: patent application and granting procedure in general

Free format text:ADVISORY ACTION MAILED

STPPInformation on status: patent application and granting procedure in general

Free format text:DOCKETED NEW CASE - READY FOR EXAMINATION

STPPInformation on status: patent application and granting procedure in general

Free format text:NON FINAL ACTION MAILED

STCBInformation on status: application discontinuation

Free format text:ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION


[8]ページ先頭

©2009-2025 Movatter.jp