IP Library Granted Patent US 11,099,994
Granted Patent B2
US 11,099,994 · App. 17/066,650 · Granted Aug 24, 2021

Virtual network pre-arbitration for deadlock avoidance and enhanced performance

Inventors: Matthew David Pierson (Frisco, TX); Daniel Wu (Plano, TX); Kai Chirca (Dallas, TX)
Assignee: Texas Instmments Incorporated
G06F12/084G06F3/064G06F3/0604G06F3/0607G06F3/0632G06F3/0658G06F3/0659G06F3/0673G06F3/0679G06F9/30101G06F9/30123G06F9/3897G06F9/4881G06F9/5016G06F12/0607G06F12/0811G06F12/0815G06F12/0828G06F12/0831G06F12/0855G06F12/0857G06F12/0875G06F12/0891G06F12/10G06F12/1009G06F13/124G06F13/1642G06F13/1663G06F13/1668G06F13/4027H03M13/015H03M13/098H03M13/1575H03M13/276H03M13/2785G06F2212/1008G06F2212/1016G06F2212/1024G06F2212/304G06F2212/452G06F2212/657
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,099,994
App. No.
17/066,650
Granted
Aug 24, 2021
Kind
B2
Abstract

A device includes a data path, a first interface configured to receive a first memory access request from a first peripheral device, and a second interface configured to receive a second memory access request from a second peripheral device. The device further includes an arbiter circuit configured to, in a first clock cycle, a pre-arbitration winner between a first memory access request and a second memory access request based on a first number of credits allocated to a first destination device and a second number of credits allocated to a second destination device. The arbiter circuit is further configured to, in a second clock cycle select a final arbitration winner from among the pre-arbitration winner and a subsequent memory access request based on a comparison of a priority of the pre-arbitration winner and a priority of the subsequent memory access request.

Claims (43)

1. An integrated circuit device comprising:

a set of processor interfaces;

a data path configured to couple the set of processor interfaces to a shared resource;

an arbiter circuit coupled to the set of processor interfaces and the data path and configured to:

receive a set of requests via the set of processor interfaces;

select a first request from among the set of requests for service over the data path;

receive a subsequent request after the set of requests is received;

select a second request from among the first request and the subsequent request for service over the data path; and

cause the data path to service the second request.

2. The integrated circuit device of claim 1 , wherein the arbiter circuit is configured to select the first request based on a first set of criteria and select the second request based on a second set of criteria that is different from the first set of criteria.

3. The integrated circuit device of claim 2 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by:

determining a respective credit cost for each request of the set of requests;

determining a respective credit allocation of a respective destination for each request of the set of requests; and

comparing the respective credit cost to the respective credit allocation for each request of the set of requests.

4. The integrated circuit device of claim 3 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a sharing algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

5. The integrated circuit device of claim 3 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a round robin algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

6. The integrated circuit device of claim 3 further comprising a set of starvation registers, wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a starvation algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

7. The integrated circuit device of claim 2 , wherein the arbiter circuit is configured to select the second request based on the second set of criteria by comparing a respective priority of each of the first request and the subsequent request.

8. The integrated circuit device of claim 1 , wherein the arbiter circuit is configured to:

select the first request from among the set of requests during a first clock cycle; and

select the second request and cause the data path to service the second request during a second clock cycle that is subsequent to the first clock cycle.

9. The integrated circuit device of claim 1 , wherein the shared resource includes a shared memory.

10. The integrated circuit device of claim 1 , wherein the set of processor interfaces includes a first subset of processor interfaces configured to couple to a first processor and a second subset of processor interfaces configured to couple to a second processor.

11. A memory controller comprising:

a set of processor interfaces configured to couple to a processor;

an arbiter circuit coupled to the set of processor interfaces and configured to couple to a resource, wherein the arbiter circuit is configured to:

select a first request from among a set of requests that are directed to the resource and are received via the set of processor interfaces;

select a second request from among the first request and a subsequent request that is directed to the resource and is received via the set of processor interfaces; and

cause the second request to be provided to the resource.

12. The memory controller of claim 11 , wherein the resource includes a memory.

13. The memory controller of claim 11 , wherein the processor is a first processor and the set of processor interfaces is configured to couple to a second processor.

14. The memory controller of claim 11 , wherein the arbiter circuit is configured to select the first request based on a first set of criteria and select the second request based on a second set of criteria that is different from the first set of criteria.

15. The memory controller of claim 14 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by:

determining a respective credit cost for each request of the set of requests;

determining a respective credit allocation of a respective destination for each request of the set of requests; and

comparing the respective credit cost to the respective credit allocation for each request of the set of requests.

16. The memory controller of claim 15 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a sharing algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

17. The memory controller of claim 15 , wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a round robin algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

18. The memory controller of claim 15 further comprising a set of starvation registers, wherein the arbiter circuit is configured to select the first request based on the first set of criteria by applying a starvation algorithm to a subset of the set of requests for which the respective credit costs are less than or equal to the respective credit allocations.

19. The memory controller of claim 14 , wherein the arbiter circuit is configured to select the second request based on the second set of criteria by comparing a respective priority of each of the first request and the subsequent request.

20. The memory controller of claim 11 , wherein the arbiter circuit is configured to:

select the first request from among the set of requests during a first clock cycle; and

select the second request and cause the second request to be provided during a second clock cycle.

Continuity (3)
Continuation 16653378 · Oct 15, 2019
Provisional Application 62745842 · Oct 15, 2018
Related Publication 20210026768A1 · Jan 28, 2021