7941607

Method and System for Promoting Traces in an Instruction Processing Circuit

PublishedMay 10, 2011
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
21 claims

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

1

1. A method for promoting a sequence of traces in an instruction processing circuit, each trace of the sequence of traces are retrieved from a plurality of sources in an order determined by a sequencer circuit, the method comprising: obtaining, from the sequencer circuit, a current trace in the sequence of traces; determining if the current trace is promotable based on a pre-determined criterion; adding the current trace to a sequencing buffer and marking the current trace, by storing a first promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable; adding the current trace to the sequencing buffer without marking the current trace as promoted if the current trace is not promotable; obtaining, from the sequencer circuit and in response to adding the current trace to the sequencing buffer, a next trace following the current trace in the sequence of traces according to the order; determining if the next trace is promotable based on the pre-determined criterion; adding the next trace to the sequencing buffer without marking the next trace as promoted if both the current trace and the next trace are not promotable; adding the next trace to the sequencing buffer and marking the next trace, by storing a second promotion flag thereof in the sequencing buffer, as promoted if the next trace is promotable; adding the next trace to the sequencing buffer and marking the next trace, by storing a third promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable and the next trace is not promotable; combining at least the current trace and the next trace from the sequencing buffer to build a multi-block trace in response to marking both the current trace and the next trace as promoted; and executing the multi-block trace as an atomically executed unit.

2

2. The method of claim 1 wherein determining if the next trace is promotable based on the pre-determined criterion comprises determining the next trace as not promotable if the next trace is at least one selected from a group consisting of being non-speculatively executed and a single instruction trace.

3

3. The method of claim 1 , further comprising: determining a bias of the next trace based on a branching history of the next trace, wherein the bias corresponds to an number of times a branch instruction in the next trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the next trace to a promotion threshold.

4

4. The method of claim 1 , wherein the current trace comprises another multi-block trace.

5

5. The method of claim 1 , wherein the next trace comprises another multi-block trace.

6

6. The method of claim 1 , further comprising: determining a bias of the current trace based on a branching history of the current trace, wherein the bias corresponds to an number of times a branch instruction in the current trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the current trace to a promotion threshold.

7

7. The method of claim 6 , further comprising: determining the promotion threshold based on efficiency for combining a portion of the sequence of traces for execution, and wherein the promotion threshold is a dynamically alterable value.

8

8. A computer readable medium containing program instructions for promoting a sequence of traces in an instruction processing circuit, each trace of the sequence of traces are retrieved from a plurality of sources in an order determined by a sequencer circuit, the instructions when executed by a computer comprising functionality for: obtaining, from the sequencer circuit, a current trace in the sequence of traces; determining if the current trace is promotable based on a pre-determined criterion; adding the current trace to a sequencing buffer and marking the current trace, by storing a first promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable; adding the current trace to the sequencing buffer without marking the current trace as promoted if the current trace is not promotable; obtaining, from the sequencer circuit and in response to adding the current trace to the sequencing buffer, a next trace following the current trace in the sequence of traces according to the order; determining if the next trace is promotable based on the pre-determined criterion; adding the next trace to the sequencing buffer without marking the next trace as promoted if both the current trace and the next trace are not promotable; adding the next trace to the sequencing buffer and marking the next trace, by storing a second promotion flag thereof in the sequencing buffer, as promoted if the next trace is promotable; adding the next trace to the sequencing buffer and marking the next trace, by storing a third promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable and the next trace is not promotable; combining at least the current trace and the next trace from the sequencing buffer to build a multi-block trace in response to marking both the current trace and the next trace as promoted; and executing the multi-block trace as an atomically executed unit.

9

9. The computer readable medium of claim 8 wherein determining if the next trace is promotable based on the pre-determined criterion comprises determining the next trace as not promotable if the next trace is at least one selected from a group consisting of being non-speculatively executed and a single instruction trace.

10

10. The computer readable medium of claim 8 , the instructions when executed by the computer further comprising functionality for: determining a bias of the next trace based on a branching history of the next trace, wherein the bias corresponds to an number of times a branch instruction in the next trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the next trace to a promotion threshold.

11

11. The computer readable medium of claim 8 , wherein the current trace comprises another multi-block trace.

12

12. The computer readable medium of claim 8 , wherein the next trace comprises another multi-block trace.

13

13. The computer readable medium of claim 8 , the instructions when executed by the computer further comprising functionality for: determining a bias of the current trace based on a branching history of the current trace, wherein the bias corresponds to an number of times a branch instruction in the current trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the current trace to a promotion threshold.

14

14. The computer readable medium of claim 13 , the instructions when executed by the computer further comprising functionality for: determining the promotion threshold based on efficiency for combining a portion of the sequence of traces for execution, and wherein the promotion threshold is a dynamically alterable value.

15

15. A system for promoting a sequence of traces in an instruction processing circuit, the system comprising: a sequencer circuit configure for: identifying a current trace in the sequence of traces; determining if the current trace is promotable based on a pre-determined criterion; adding the current trace to a sequencer buffer and marking the current trace, by storing a first promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable; adding the current trace to the sequencer buffer without marking the current trace as promoted if the current trace is not promotable; identifying, in response to adding the current trace to the sequencer buffer, a next trace following the current trace in the sequence of traces; determining if the next trace is promotable based on the pre-determined criterion; adding the next trace to the sequencer buffer without marking the next trace as promoted if both the current trace and the next trace are not promotable; adding the next trace to the sequencer buffer and marking the next trace, by storing a second promotion flag thereof in the sequencing buffer, as promoted if the next trace is promotable; and adding the next trace to the sequencer buffer and marking the next trace, by storing a third promotion flag thereof in the sequencing buffer, as promoted if the current trace is promotable and the next trace is not promotable; the sequencer buffer operatively coupled to the sequencer circuit and configured for storing the current trace and the next trace; a multi-block builder circuit operatively coupled to the sequencer buffer and configured to combine at least the current trace and the next trace from the sequencer buffer to build a multi-block trace in response to marking both the current trace and the next trace as promoted; and an execution unit configured to execute the multi-block trace as an atomically executed unit.

16

16. The system of claim 15 , the sequencer circuit further configured for: determining a bias of the next trace based on a branching history of the next trace, wherein the bias corresponds to an number of times a branch instruction in the next trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the next trace to a promotion threshold.

17

17. The system of claim 15 , the sequencer circuit further configured for: determining a bias of the current trace based on a branching history of the current trace, wherein the bias corresponds to an number of times a branch instruction in the current trace has been branching to a same target address, and wherein the pre-determined criterion comprises comparing the bias of the current trace to a promotion threshold.

18

18. The system of claim 17 , the sequencer circuit further configured for: determining the promotion threshold based on efficiency for combining a portion of the sequence of traces for execution, and wherein the promotion threshold is a dynamically alterable value.

19

19. The system of claim 15 determining if the next trace is promotable based on the pre-determined criterion comprises determining the next trace as not promotable if the next trace is at least one selected from a group consisting of being non-speculatively executed and a single instruction trace.

20

20. The system of claim 19 , wherein the current trace comprises another multi-block trace.

21

21. The system of claim 19 , wherein the next trace comprises another multi-block trace.

Patent Metadata

Filing Date

Unknown

Publication Date

May 10, 2011

Inventors

Richard Thaik
John Gregory Favor
Joseph Rowlands
Leonard E. Shar
Matthew William ASHCRAFT

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. “METHOD AND SYSTEM FOR PROMOTING TRACES IN AN INSTRUCTION PROCESSING CIRCUIT” (7941607). https://patentable.app/patents/7941607

© 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.