Patentable/Patents/US-10664281
US-10664281

Apparatuses and methods for dynamic asymmetric scaling of branch predictor tables

PublishedMay 26, 2020
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Methods and apparatuses relating to dynamic asymmetric scaling of branch predictor tables are described. Branch predictor circuits to perform dynamic asymmetric scaling of branch predictor tables are also described. In one embodiment, a processor includes an execution unit to execute a branch instruction; and a branch predictor to generate a prediction for the branch instruction from either of a plurality of global history prediction tables of differing history lengths and a floating global history prediction table, wherein the branch predictor is to: for each of the plurality of global history prediction tables, track a total number of unique entries that provide a correct prediction which is not available in a global history prediction table of lower history length within a monitoring period that includes execution of a plurality of instances of the branch instruction, and assign the floating global history prediction table as an extension to a global history prediction table of the plurality of global history prediction tables having a greatest total number of unique useful entries in the monitoring period.

Patent Claims
24 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A processor comprising: an execution unit to execute a branch instruction; and a branch predictor to generate a prediction for the branch instruction from either of a plurality of global history prediction tables of differing history lengths and a floating global history prediction table, wherein the branch predictor is to: for each of the plurality of global history prediction tables, track a total number of unique entries that provide a correct prediction which is not available in a global history prediction table of lower history length within a monitoring period that includes execution of a plurality of instances of the branch instruction, and assign the floating global history prediction table as an extension to a global history prediction table of the plurality of global history prediction tables having a greatest total number of unique useful entries in the monitoring period.

2

2. The processor of claim 1 , wherein each of the plurality of global history prediction tables have a same number of entries.

3

3. The processor of claim 1 , wherein each entry of a plurality of entries in the floating global history prediction table is a same format as each entry of a plurality of entries of the global history prediction table.

4

4. The processor of claim 1 , wherein each entry of the plurality of global history prediction tables and each entry of the floating global history prediction table includes a field to store a bit set by the branch predictor when a respective entry provides a correct prediction which is not available in a global history prediction table of lower history length within the monitoring period.

5

5. The processor of claim 4 , wherein the branch predictor increments a respective counter for each of the plurality of global history prediction tables when the bit is set to track the total number of unique entries that provide the correct prediction which is not available in the global history prediction table of lower history length within the monitoring period.

6

6. The processor of claim 5 , wherein each entry of a plurality of entries in the floating global history prediction table and each entry of a plurality of entries of the global history prediction table includes a prediction field, a tag, and a useful field.

7

7. The processor of claim 1 , wherein the branch predictor stores entries evicted from the global history prediction table into the floating global history prediction table that is the extension to the global history prediction table.

8

8. The processor of claim 1 , wherein the branch predictor reads the floating global history prediction table and the plurality of global history prediction tables in parallel at prediction time.

9

9. A method comprising: executing a plurality of instructions including a branch instruction with a processor; tracking, for each of a plurality of global history prediction tables of differing history lengths of a branch predictor of the processor, a total number of unique entries that provide a correct prediction which is not available in a global history prediction table of lower history length within a monitoring period that includes execution of a plurality of instances of the branch instruction; assigning a floating global history prediction table of the branch predictor as an extension to a global history prediction table of the plurality of global history prediction tables having a greatest total number of unique useful entries in the monitoring period; and generating a prediction for the branch instruction from either of the plurality of global history prediction tables and the floating global history prediction table with the branch predictor of the processor.

10

10. The method of claim 9 , further comprising updating entries of the plurality of global history prediction tables based on execution of the plurality of instructions, wherein each of the plurality of global history prediction tables have a same number of entries.

11

11. The method of claim 9 , further comprising updating entries of the plurality of global history prediction tables and the floating global history prediction table based on execution of the plurality of instructions, wherein each entry of a plurality of entries in the floating global history prediction table is a same format as each entry of a plurality of entries of the global history prediction table.

12

12. The method of claim 9 , further comprising setting a bit in a respective entry of each entry of the plurality of global history prediction tables and each entry of the floating global history prediction table when the respective entry provides a correct prediction which is not available in a global history prediction table of lower history length within the monitoring period.

13

13. The method of claim 12 , further comprising incrementing a respective counter of the branch predictor for each of the plurality of global history prediction tables when the bit is set for the tracking of the total number of unique entries that provide the correct prediction which is not available in the global history prediction table of lower history length within the monitoring period.

14

14. The method of claim 13 , further comprising updating a prediction field, a tag, and a useful field of each entry of a plurality of entries in the floating global history prediction table and each entry of a plurality of entries of the global history prediction table.

15

15. The method of claim 9 , further comprising storing entries evicted from the global history prediction table into the floating global history prediction table that is the extension to the global history prediction table.

16

16. The method of claim 9 , wherein the generating comprises reading the floating global history prediction table and the plurality of global history prediction tables in parallel at prediction time.

17

17. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising: executing a plurality of instructions including a branch instruction with a processor; tracking, for each of a plurality of global history prediction tables of differing history lengths of a branch predictor of the processor, a total number of unique entries that provide a correct prediction which is not available in a global history prediction table of lower history length within a monitoring period that includes execution of a plurality of instances of the branch instruction; assigning a floating global history prediction table of the branch predictor as an extension to a global history prediction table of the plurality of global history prediction tables having a greatest total number of unique useful entries in the monitoring period; and generating a prediction for the branch instruction from either of the plurality of global history prediction tables and the floating global history prediction table with the branch predictor of the processor.

18

18. The non-transitory machine readable medium of claim 17 , further comprising updating entries of the plurality of global history prediction tables based on execution of the plurality of instructions, wherein each of the plurality of global history prediction tables have a same number of entries.

19

19. The non-transitory machine readable medium of claim 17 , further comprising updating entries of the plurality of global history prediction tables and the floating global history prediction table based on execution of the plurality of instructions, wherein each entry of a plurality of entries in the floating global history prediction table is a same format as each entry of a plurality of entries of the global history prediction table.

20

20. The non-transitory machine readable medium of claim 17 , further comprising setting a bit in a respective entry of each entry of the plurality of global history prediction tables and each entry of the floating global history prediction table when the respective entry provides a correct prediction which is not available in a global history prediction table of lower history length within the monitoring period.

21

21. The non-transitory machine readable medium of claim 20 , further comprising incrementing a respective counter of the branch predictor for each of the plurality of global history prediction tables when the bit is set for the tracking of the total number of unique entries that provide the correct prediction which is not available in the global history prediction table of lower history length within the monitoring period.

22

22. The non-transitory machine readable medium of claim 21 , further comprising updating a prediction field, a tag, and a useful field of each entry of a plurality of entries in the floating global history prediction table and each entry of a plurality of entries of the global history prediction table.

23

23. The non-transitory machine readable medium of claim 17 , further comprising storing entries evicted from the global history prediction table into the floating global history prediction table that is the extension to the global history prediction table.

24

24. The non-transitory machine readable medium of claim 17 , wherein the generating comprises reading the floating global history prediction table and the plurality of global history prediction tables in parallel at prediction time.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 29, 2018

Publication Date

May 26, 2020

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Apparatuses and methods for dynamic asymmetric scaling of branch predictor tables” (US-10664281). https://patentable.app/patents/US-10664281

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.