Patent ID: 8407451

Claim:
A method of accessing a shared resource by a multi-core processor including a plurality of hardware unit (HU) cores, the method comprising: receiving, by a particular hardware unit (HU) core of a plurality of hardware unit (HU) cores in the processor, an instruction for execution that calls for an access request to the shared resource; grouping, by the processor, the plurality of HU cores into a plurality of resource allocation groups (RAGs), each RAG including at least one HU core, each RAG being dynamically assigned a respective bandwidth allocation rate with respect to access to the shared resource; and associating resource allocation identification (RAID) information with the instruction as it passes through a plurality of pipelined stages in an instruction handler in the particular HU core, the RAID information indicating to which particular resource allocation group (RAG) the particular HU core belongs, the RAID information accompanying the instruction from pipelined stage to pipelined stage in the particular HU core, the RAID information in the particular HU core being changeable on the fly on an instruction by instruction basis to designate the RAG and respective bandwidth allocation rate associated with the instruction; wherein one of the pipelined stages is an address translation pipelined stage that performs effective address to real address translation for the instruction, the resource allocation identification (RAID) information being resident in the address translation pipelined stage; wherein one of the pipelined stages in the instruction handler is a store queue, the store queue receiving the instruction and associated resource allocation identification (RAID) information after address translation by the address translation pipelined stage; and wherein one of the pipeline stages in the instruction handler is a token requester that receives directly from the store queue the resource allocation identification (RAID) information that is associated with the instruction, such that the token requester may request a different resource allocation from a resource allocation manager on an instruction by instruction basis.