Nova Patents
US7260705B2

Apparatus to implement mesocode

Summary by NHIP

Processor branch stream encoding

The method examines branch instructions reaching a processor write-back stage to define streams of basic blocks. Each stream encodes sequences where only the final block executes a flow-changing branch, while others execute non-branching instructions, all stored in an intermediate code format with at least two alternatives.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

In one embodiment, the invention provides a method for examining information about branch instructions. A method, comprising: examining information about branch instructions that reach a write-back stage of processing within a processor, defining a plurality of streams based on the examining, wherein each stream comprises a sequence of basic blocks in which only a last block in the sequence ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in the stream each ending in a branch instruction, the execution of which does not cause program flow to branch.

US7260705B2, drawing sheet 1
Sheet 1 of 24

Term

Term ended

Expired 1 January 2025, 1.7 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

30 claims: 5 independent, 25 dependent

  1. 1
    Broadest claimClaim Score 64, broad(NHIP)A method, comprising:examining information about branch instructions that reach a write-back stage of processing within a processor;defining a plurality of streams based on the examining, wherein each stream comprises a sequence of basic blocks in which only a last block in the sequence ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in the stream each ending in a branch instruction, the execution of which does not cause program flow to branch;and encoding each of the plurality of streams in an intermediate code format comprised of at least two alternative code formats.
  2. 9
    A processor, comprising:a mechanism to examine information about branch instructions that reach a write-back stage of processing within the processor;a mechanism to define a plurality of streams based on the examining, wherein each stream comprises a sequence of basic blocks in which only a last block in the sequence ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in the stream each ending in a branch instruction, the execution of which does not cause program flow to branch;and a mechanism to encode each of the plurality of streams in an intermediate code format comprised of at least two alternative code formats.
  3. 17
    A system, comprising:a processor comprising a mechanism to examine information about branch instructions that reach a write-back stage of processing within the processor, a mechanism to define a plurality of streams based on the examining, wherein each stream comprises a sequence of basic blocks in which only a last block in the sequences ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in a stream each ending in a branch instruction, the execution of which does not cause program flow to branch, and a mechanism to encode each of the plurality of streams in an intermediate code format comprised of at least two alternative code formats;and a memory coupled to the processor.
  4. 20
    A processor, comprising:a fetch/prefetch unit;a branch prediction unit to supply a branch target address of a predicted branch based on a current instruction pointer to the fetch/prefetch unit;a stream prediction unit to supply a stream target address of a predicted stream based on a current instruction pointer to the fetch/prefetch unit, wherein the predicted stream comprises a sequence of basic blocks in which only a last block in the sequence ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in the stream each ending in a branch instruction, the execution of which does not cause program flow to branch;and a mechanism to encode the predicted stream in an intermediate code format comprised of at least two alternative code formats.
  5. 27
    A system, comprising:a processor comprising a fetch/prefetch unit, a branch prediction unit to supply a branch target address of a predicted branch based on a current instruction pointer to the fetch/prefetch unit, a stream prediction unit to supply a stream target address of a predicted stream based on a current instruction pointer to the fetch/prefetch unit, wherein the predicted stream comprises a sequence of basic blocks in which only a last block in the sequence ends in a branch instruction, the execution of which causes program flow to branch, the remaining basic blocks in the stream each ending in a branch instruction, the execution of which does not cause program flow to branch and a mechanism to encode the predicted stream in an intermediate code format comprised of at least two alternative code formats;and a memory coupled to the processor.