IP Library Granted Patent US 12,284,122
Granted Patent B1
US 12,284,122 · App. 18/434,294 · Granted Apr 22, 2025

Circuit and method for resource arbitration

Inventors: Joseph Featherston (Boston, MA); Aadeetya Shreedhar (Natick, MA)
Assignee: Marvell Asia Pte Ltd
H04L47/783H04L47/805
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 12,284,122
App. No.
18/434,294
Granted
Apr 22, 2025
Kind
B1
Abstract

A circuit and corresponding method perform resource arbitration. The circuit comprises a pending arbiter (PA) that outputs a PA selection for accessing a resource. The PA selection is based on PA input. The PA input represents respective pending-state of requesters of the resource. The circuit further comprises a valid arbiter (VA) that outputs a VA selection for accessing the resource. The VA selection is based on VA input. The VA input represents respective valid-state of the requesters. The circuit performs a validity check on the PA selection output. The circuit outputs a final selection for accessing the resource by selecting, based on the validity check performed, the PA selection output or VA selection output. The circuit addresses arbitration fairness issues that may result when multiple requesters are arbitrating to be selected for access to a shared resource and such requesters require a credit (token) to be eligible for arbitration.

Claims (82)

1. A circuit comprising:

a pending arbiter (PA) configured to output a PA selection for accessing a resource; and

a valid arbiter (VA) configured to output a VA selection for accessing the resource, the circuit configured to (i) perform a validity check on the PA selection output and (ii) output a final selection for accessing the resource by selecting, based on the validity check performed, between the PA selection output and the VA selection output.

2. The circuit of claim 1 , wherein:

the PA selection is based on a respective pending-state of a requester of the requesters and the respective pending-state is a) independent of a respective requester-eligibility status of the requester to access the resource and b) based on a respective request status of the requester to access the resource; and

the VA selection is based on a respective valid-state of the requester of the requesters and the respective valid-state is based on the respective request status and the respective requester-eligibility status.

3. The circuit of claim 1 , wherein:

the PA selection is based on a respective pending-state of a requester of the requesters and the respective pending-state is pending in an event a respective request status of the requester to access the resource is pending; and

the respective pending-state is non-pending in an event the respective request status is non-pending.

4. The circuit of claim 1 , wherein:

the VA selection is based on a respective valid-state of a requester of the requesters and the respective valid-state is valid in an event a) a respective request status of the requester to access the resource is pending and b) a respective requester-eligibility status of the requester to access the resource is eligible; and

the respective valid-state is invalid in an event c) the respective request status is non-pending or d) the respective requester-eligibility status is ineligible.

5. The circuit of claim 4 , wherein the respective requester-eligibility status is eligible in an event the requester is allocated a credit for accessing the resource.

6. The circuit of claim 5 , wherein the credit is associated with a credit type and wherein the credit type is associated with a request, the request causing the respective request status to be pending.

7. The circuit of claim 1 , wherein the VA selection is based on a respective valid-state of a requester of the requesters and the respective valid-state is based on a respective requester-eligibility status of the requester to access the resource and wherein the respective requester-eligibility status is based on credit allocation for accessing the resource.

8. The circuit of claim 7 , wherein the credit allocation is to a private credit pool, the private credit pool private to the requester, or to a common credit pool, the common credit pool shared by at least a portion of the requesters.

9. The circuit of claim 1 , wherein the PA is further configured to determine respective priorities for the requesters and wherein the PA selection is based on the respective priorities determined.

10. The circuit of claim 1 , wherein the VA is further configured to determine respective priorities for the requesters and wherein the VA selection is based on the respective priorities determined.

11. The circuit of claim 1 , wherein the PA is further configured to:

determine respective priorities for the requesters using a round-robin method; and

halt or advance, based on the validity check performed, rotation of the respective priorities determined via the round robin method.

12. The circuit of claim 1 , wherein the VA is further configured to:

determine respective priorities for the requesters using a round-robin method; and

halt or advance, based on the VA input and validity check performed, rotation of the respective priorities determined via the round-robin method.

13. The circuit of claim 1 , wherein:

the PA selection output represents a PA-selected requester, selected by the PA from the requesters, the PA-selected requester associated with a) a pending request to access the resource and b) a highest priority relative to respective priorities of other requesters with a respective pending request to access the resource;

the validity check performed produces a result indicating whether the PA-selected requester is eligible to access the resource; and

the circuit is further configured to select, as the final selection output, a) the PA selection output, in an event the result produced indicates that the PA-selected requester is eligible and b) the VA selection output, in an event the result produced indicates that the PA-selected requester is ineligible.

14. The circuit of claim 1 , wherein the VA selection output represents a VA-selected requester, selected by the VA from the requesters, the VA-selected requester associated with a) a pending request to access the resource, b) a credit representing eligibility to access the resource, and c) a highest priority relative to respective priorities of other requesters with a respective pending request to access the resource and a respective credit representing eligibility to access the resource.

15. The circuit of claim 1 , further comprising PA grant logic configured to:

perform the validity check based on the PA selection and VA input; and

output a PA grant signal representing a positive result or negative result of the validity check performed.

16. The circuit of claim 15 , wherein the circuit further comprises output logic configured to output the final selection by selecting a) the PA selection, in an event the PA grant signal represents the positive result or b) the VA selection, in an event the PA grant signal represents the negative result.

17. The circuit of claim 15 , wherein the PA selection is based on respective priorities of the requesters and wherein the PA is further configured to advance or halt rotation of the respective priorities based on the positive result or negative result, respectively, represented by the PA grant signal.

18. The circuit of claim 15 , wherein the VA selection is based on respective priorities of the requesters, wherein the circuit further comprises VA grant logic configured to output a VA grant signal based on the PA grant signal and VA input, and wherein the VA is further configured to advance or halt rotation of the respective priorities based on the VA grant signal.

19. A method comprising:

outputting a pending arbiter (PA) selection for accessing a resource;

outputting a valid arbiter (VA) selection for accessing the resource;

performing a validity check on the PA selection output; and

outputting a final selection for accessing the resource by selecting, based on the validity check performed, between the PA selection output and the VA selection output.

20. The method of claim 19 , wherein:

the PA selection is based on a respective pending-state of a requester of the requesters and the respective pending-state is a) independent of a respective requester-eligibility status of the requester to access the resource and b) based on a respective request status of the requester to access the resource; and

the VA selection is based on a respective valid-state of the requester of the requesters and the respective valid-state is based on the respective request status and the respective requester-eligibility status.

21. The method of claim 19 , wherein:

the PA selection is based on a respective pending-state of a requester of the requesters and the respective pending-state is pending in an event a respective request status of the requester to access the resource is pending; and

the respective pending-state is non-pending in an event the respective request status is non-pending.

22. The method of claim 19 , wherein:

the VA selection is based on a respective valid-state of a requester of the requesters and the respective valid-state is valid in an event a) a respective request status of the requester to access the resource is pending and b) a respective requester-eligibility status of the requester to access the resource is eligible; and

the respective valid-state is invalid in an event c) the respective request status is non-pending or d) the respective requester-eligibility status is ineligible.

23. The method of claim 22 , wherein the respective requester-eligibility status is eligible in an event the requester is allocated a credit for accessing the resource.

24. The method of claim 23 , wherein the credit is associated with a credit type and wherein the credit type is associated with a request, the request causing the respective request status to be pending.

25. The method of claim 19 , wherein the VA selection is based on a respective valid-state of a requester of the requesters and the respective valid-state is based on a respective requester-eligibility status of the requester to access the resource and wherein the respective requester-eligibility status is based on credit allocation for accessing the resource.

26. The method of claim 25 , wherein the credit allocation is to a private credit pool, the private credit pool private to the requester, or to a common credit pool, the common credit pool shared by at least a portion of the requesters.

27. The method of claim 19 , further comprising determining respective priorities for the requesters and wherein the PA selection is based on the respective priorities determined.

28. The method of claim 19 , further comprising determining respective priorities for the requesters and wherein the VA selection is further based on the respective priorities determined.

29. The method of claim 19 , further comprising:

determining respective priorities for the requesters using a round-robin method; and

halting or advancing, based on the validity check performed, rotation of the respective priorities determined via the round robin method.

30. The method of claim 19 , further comprising:

determining respective priorities for the requesters using a round-robin method; and

halting or advancing, based on VA input and the validity check performed, rotation of the respective priorities determined via the round-robin method, the VA input representing respective valid-state of the requesters.

31. The method of claim 19 , wherein the PA selection output represents a PA-selected requester selected from the requesters, the PA-selected requester associated with a) a pending request to access the resource and b) a highest priority relative to respective priorities of other requesters with a respective pending request to access the resource and wherein the method further comprises:

producing, via the validity check, a result indicating whether the PA-selected requester is eligible to access the resource; and

selecting, as the final selection output, a) the PA selection output, in an event the result produced indicates that the PA-selected requester is eligible and b) the VA selection output, in an event the result produced indicates that the PA-selected requester is ineligible.

32. The method of claim 19 , wherein the VA selection output represents a VA-selected requester selected from the requesters, the VA-selected requester associated with a) a pending request to access the resource, b) a credit representing eligibility to access the resource, and c) a highest priority relative to respective priorities of other requesters with a respective pending request to access the resource and a respective credit representing eligibility to access the resource.

33. The method of claim 19 , performing the validity check based on the PA selection and VA input and outputting a PA grant signal representing a positive result or negative result of the validity check performed, the VA input representing respective valid-state of the requesters.

34. The method of claim 33 , further comprising outputting the final selection by selecting a) the PA selection, in an event the PA grant signal represents the positive result or b) the VA selection, in an event the PA grant signal represents the negative result.

35. The method of claim 33 , wherein the PA selection is based on respective priorities of the requesters and wherein the method further comprises advancing or halting rotation of the respective priorities based on the positive result or negative result, respectively, represented by the PA grant signal.

36. The method of claim 33 , wherein the VA selection is based on respective priorities of the requesters and wherein the method further comprises:

outputting a VA grant signal based on the PA grant signal and VA input, the VA input representing respective valid-state of the requesters; and

advancing or halting rotation of the respective priorities based on the VA grant signal.

37. A system comprising:

a resource;

request grant logic; and

a circuit including a pending arbiter (PA) and a valid arbiter (VA), the PA arbiter configured to output a PA selection for accessing a resource, the valid arbiter (VA) configured to output a VA selection for accessing the resource,

the circuit configured to (i) perform a validity check on the PA selection output and (ii) output a final selection for accessing the resource by selecting, based on the validity check performed, between the PA selection output and the VA selection output,

the request grant logic configured to grant a request to access the resource, the request received from a requester of the requesters, the request granted based on the final selection output indicating the requester.

38. An apparatus comprising:

means for outputting a pending arbiter (PA) selection for accessing a resource;

means for outputting a valid arbiter (VA) selection for accessing the resources;

means for performing a validity check on the PA selection output; and

means for outputting a final selection for accessing the resource by selecting, based on the validity check performed, between the PA selection output and the VA selection output.

Continuity (2)
Continuation 17932084 · Sep 14, 2022
Provisional Application 63395947 · Aug 8, 2022
References Cited (41)
US 6052375A · Bass · 2000 [cited by examiner]
US 7143219B1 · Chaudhari et al. · 2006 [cited by applicant]
US 7739436B2 · Meyer · 2010 [cited by applicant]
US 8467213B1 · Channabasappa · 2013 [cited by applicant]
US 11507436B2 · Van Benthem · 2022 [cited by examiner]
US 11769832B2 · Han et al. · 2023 [cited by applicant]
US 11929940B1 · Featherston · 2024 [cited by examiner]
US 20090316700A1 · White et al. · 2009 [cited by applicant]
US 20120144064A1 · Parker et al. · 2012 [cited by applicant]
US 20120215976A1 · Inoue · 2012 [cited by applicant]
US 20130322459A1 · Xu · 2013 [cited by applicant]
US 20150006776A1 · Liu et al. · 2015 [cited by applicant]
US 20150188847A1 · Chopra et al. · 2015 [cited by applicant]
US 20170063625A1 · Philip et al. · 2017 [cited by applicant]
US 20170195295A1 · Tatlicioglu et al. · 2017 [cited by applicant]
US 20180301201A1 · Kantipudi · 2018 [cited by applicant]
US 20210385164A1 · Parmar et al. · 2021 [cited by applicant]
US 20230085669A1 · Van Benthem · 2023 [cited by examiner]
US 20230102680A1 · Kanayama · 2023 [cited by examiner]
US 20230315898A1 · Alaeddini · 2023 [cited by applicant]
US 20230316334A1 · Vankayala · 2023 [cited by applicant]
US 20240048508A1 · Viego et al. · 2024 [cited by applicant]
GB 2605282A · 2022 [cited by examiner]
JP 06324958A · 1994 [cited by examiner]
Fusella, et al., “Understanding Turn Models for Adaptive Routing: the Modular Approach,” Design, Automation and Test in Europe (2018) 1489-1492. [cited by applicant]
Glass, et al., “The Turn Model for Adaptive Routing,” Advanced Computer Systems Laboratory, 1992, 278-287. [cited by applicant]
Next Hop Definition, Created Nov. 17, 2005, Retrieved from the Internet at http://www.linfo.org/next_hop.html on Sep. 15, 2022, The Linux Information Project. [cited by applicant]
No. U.S. Appl. No. 17/934,017, entitled “Directional Link Credit-Based Packet Transmission,” filed Sep. 21, 2022. [cited by applicant]
U.S. Appl. No. 18/154,314, entitled “Mixed-Dimension Order Routing,” filed Jan. 13, 2023. [cited by applicant]
No. U.S. Appl. No. 18/299,397, entitled “Selective Mesh Routing Through Non-adjacent Nodes,” filed Apr. 12, 2023. [cited by applicant]
U.S. Appl. No. 18/320,713, entitled “Circuit and Method with Weight-Based Arbitration,” filed May 19, 2023. [cited by applicant]
U.S. Appl. No. 18/320,738, entitled “Circuit and Method for Dynamic-Weight Based Arbitration,” filed May 19, 2023. [cited by applicant]
U.S. Appl. No. 18/320,779, entitled “Circuit and Method with Vector-Based Arbitration,” filed May 19, 2023. [cited by applicant]
Wikipedia, “Mesh Interconnect Architecture—Intel,” Retrieved from the Internet on Nov. 23, 2022 at https://en.wikipedia.org/wiki/Turn _restriction _routing. [cited by applicant]
Wikipedia, “Turn restriction routing,” Retrieved from the Internet on Nov. 23, 2022 at https://en.wikichip.org/wiki/intel/mesh_interconnect_architecture. [cited by applicant]
Lee, et al., “Probabilistic Distance-based Arbitration: Providing Equality of Service for Many-core CMPs,” 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, pp. 509-519. [cited by applicant]
Mandal, et al., “Theoretical Analysis and Evaluation of NoCs with Weighted Round-Robin Arbitration,” Dept. of ECE, University of Wisconsin-Madison, Aug. 21, 2021. [cited by applicant]
U.S. Appl. No. 18/328,542 entitled “Single Cycle Request Arbiter,” filed Jun. 2, 2023. [cited by applicant]
Khan, et al., “Design of a Round Robin Arbiter On Resource Sharing,” Proceedings of 8th IRF International Conference, May 4, 2014, Pune, India. [cited by applicant]
Merchant, “The Design and Performance Analysis of an Arbiter for a Multi-Processor Shared-Memory System,” Aug. 1984, Laboratory for Information and Decision Systems, Massachusetis Institute of Technology, Cambridge, Mas… [cited by applicant]
U.S. Appl. No. 17/932,084 entitled “Circuit and Method for Resource Arbitration,” filed Sep. 14, 2022. [cited by applicant]