Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID
First Claim
1. A method for queuing a request by a processor to access a shared resource, comprising:
- receiving the request to access the shared resource, from a processor of a plurality of processors executing an application;
determining a queue order for a reply to the request based at least in part on the processor issuing the request and on a resource access priority level of the application executed by the processor;
generating the reply to the request comprising a grant to the shared resource with an embedded lock ID, wherein the embedded lock ID enables access to the shared resource for a predetermined length of time;
queuing the reply based on the queue order in an input of a first-in-first-out memory, wherein the input of the first in first out memory queues a set of replies corresponding to requests from the plurality of processors;
transmitting the reply to the processor;
receiving a second request to access the shared resource, from a second processor of the plurality of processors executing a second application;
denying access to the shared resource to the second processor requesting the shared resource in response to the predetermined length of time not having elapsed; and
generating a second reply to the second request that indicates that access was rejected and wherein the second reply also indicates an estimated time of availability for the shared resource.
6 Assignments
0 Petitions
Accused Products
Abstract
A hardware-based method is provided for allocating shared resources in a system-on-chip (SoC). The SoC includes a plurality of processors and at least one shared resource, such as an input/output (IO) port or a memory. A queue manager (QM) includes a plurality of input first-in first-out memories (FIFOs) and a plurality of output FIFOs. A first application writes a first request to access the shared resource. A first application programming interface (API) loads the first request at a write pointer of a first input FIFO associated with the first processor. A resource allocator reads the first request from a read pointer of the first input FIFO, generates a first reply, and loads the first reply at a write pointer of a first output FIFO associated with the first processor. The first API supplies the first reply, from a read pointer of the first output FIFO, to the first application.
-
Citations
20 Claims
-
1. A method for queuing a request by a processor to access a shared resource, comprising:
-
receiving the request to access the shared resource, from a processor of a plurality of processors executing an application; determining a queue order for a reply to the request based at least in part on the processor issuing the request and on a resource access priority level of the application executed by the processor; generating the reply to the request comprising a grant to the shared resource with an embedded lock ID, wherein the embedded lock ID enables access to the shared resource for a predetermined length of time; queuing the reply based on the queue order in an input of a first-in-first-out memory, wherein the input of the first in first out memory queues a set of replies corresponding to requests from the plurality of processors; transmitting the reply to the processor; receiving a second request to access the shared resource, from a second processor of the plurality of processors executing a second application; denying access to the shared resource to the second processor requesting the shared resource in response to the predetermined length of time not having elapsed; and generating a second reply to the second request that indicates that access was rejected and wherein the second reply also indicates an estimated time of availability for the shared resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system that queues a reply to a request by a processor to access a shared resource, comprising:
-
a queue manager comprising an input of a first-in-first-out memory and an output of a first-in-first-out memory, wherein the queue manager is configured for receiving the request to access the shared resource, wherein the request is issued by a processor of a plurality of processors executing an application; a resource allocator configured for granting access to the shared resource to a processor based on a queue order and is further configured for generating the reply to the request comprising a grant to the shared resource with an embedded lock ID, wherein the embedded lock ID enables access to the shared resource for a predetermined length of time; the queue manager is also configured for queuing a reply to the request based on the queue order, wherein the queue order is determined based at least in part on the processor associated with the request and on a resource access priority level of the applications executed by the processor; the queue manager is further configured for receiving a second request to access the shared resource, from a second processor of the plurality of processors executing a second application and the resource allocator is configured for denying the access to the shared resource to the second processor in response to the predetermined length of time not having elapsed; and wherein the resource allocator is further configured for generating a second reply to the second request that indicates that access was rejected and wherein the second reply also indicates an estimated time of availability for the shared resource. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable storage device comprising computer-executable instructions that, in response to execution, cause a system including a processor to perform operations, comprising:
-
receiving a request to access a shared resource, wherein the request is issued by a processor of a plurality of processors executing an application; determining a queue order for a reply to the request based at least in part on the processor and on a resource access priority level of the application executed by the processor; generating the reply to the request comprising a grant to the shared resource with an embedded lock ID, wherein the embedded lock ID enables access to the shared resource for a predetermined length of time; queuing the reply request in an input first-in-first-out memory based on the queue order, wherein the input first-in-first-out memory queues replies to a plurality of designated processors; transmitting the reply to the processor; receiving a second request to access the shared resource, from a second processor of the plurality of processors executing a second application; denying access to the shared resource to the second processor requesting the shared resource in response to the predetermined length of time not having elapsed; and generating a second reply to the second request that indicates that access was rejected and wherein the second reply also indicates an estimated time of availability for the shared resource.
-
Specification