×

System and method for out-of-order resource allocation and deallocation in a threaded machine

  • US 9,690,625 B2
  • Filed: 06/16/2009
  • Issued: 06/27/2017
  • Est. Priority Date: 06/16/2009
  • Status: Active Grant
First Claim
Patent Images

1. A method, comprising:

  • performing, by a computer processor core;

    allocating two or more of a plurality of downstream resources of the computer processor core to one or more of a plurality of threads, wherein the plurality of downstream resources comprise two or more elements of a branch predictor structure, an instruction issue structure, a register mapping table, a translation lookaside buffer, a reorder buffer, a load buffer, a store buffer or a pick queue downstream from pre-execution instruction buffer within an instruction processing pipeline of the computer processor core and are dynamically shared between the plurality of threads, wherein allocating the two or more of the plurality of downstream resources of the computer processor core includes allocating each respective one of the two or more of the plurality of downstream resources of the computer processor core to a respective instruction of a respective thread of said one or more of the plurality of threads, said allocating comprising, for individual ones of the respective instructions;

    examining contents of individual elements of a data structure in a sequential order of the data structure until a first element in the sequential order of the data structure is located that indicates a corresponding one of the downstream resources is available, wherein the examination is performed before the respective downstream resource for the respective instruction is requested;

    updating the located element of the data structure to indicate that the respective downstream resource has been allocated to the respective instruction of the respective thread, wherein the data structure comprises a plurality of sequentially addressable elements, each element mapped to a respective downstream resource of the plurality of downstream resources for indicating allocation of the respective downstream resource, wherein the two or more updated elements corresponding to the two or more downstream resources are updated in an order; and

    deallocating at least one of the plurality of downstream resources after the at least one downstream resource has been released for the respective instruction of the respective thread of said one or more of the plurality of threads, said deallocating comprising updating the data structure to indicate that the at least one of the plurality of downstream resources has been deallocated, wherein the deallocated downstream resource is available for allocation to an instruction of a different thread of the plurality threads;

    wherein said deallocating updates at least one element of the data structure in a different order than the order for said allocating.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×