IP Library Granted Patent US 10,002,099
Granted Patent B2
US 10,002,099 · App. 14/540,436 · Granted Jun 19, 2018

Arbitrated access to resources among multiple devices

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 10,002,099
App. No.
14/540,436
Granted
Jun 19, 2018
Kind
B2
Abstract

An arbiter circuit manages and enforces arbitration and quality of service (QOS) among multiple devices accessing a resource, such as a memory. The arbiter circuit receives requests from a number of devices to use resources of a bridge connecting to a memory, and maintains a count of bridge resources available on a per-device and per-bus basis. The arbiter circuit operates to select a next one of the requests to grant a bridge resource based on the device originating the request, a count of the per-device resources available, and a count of the resources available to the bus connecting the device to the bridge.

Claims (30)

1. A circuit comprising:

a device interface for receiving requests from a plurality of devices to access a memory via a bridge, each of the requests including a device identifier;

a per-device counter configured to maintain a device resource count allocated to each device, the device resource count indicating a quantity of resources available at the bridge for processing the requests from the device;

a bus counter configured to maintain a bus resource count for forwarding the requests to the bridge via a bus, the bus resource count indicating a quantity of resources available at the bridge for processing the requests from the bus; and

an arbiter circuit configured to select a next one of the plurality of requests to forward to the bridge based on 1) the device identifier of the request, 2) the device resource count corresponding to the device identifier, and 3) the bus resource count associated with the device identifier.

2. The circuit of claim 1 , wherein the per-device counter is further configured to limit a maximum resource count to a first of the plurality of devices relative to a second of the plurality of devices.

3. The circuit of claim 1 , wherein the arbiter circuit is further configured to suspend requests having a given device identifier in response to detecting that the per-device counter for the given device identifier indicates a count that is less than a threshold value.

4. The circuit of claim 1 , wherein the arbiter circuit is further configured to suspend requests in response to detecting that the bus counter indicates a count that is less than a threshold value.

5. The circuit of claim 1 , wherein the arbiter circuit is further configured to suspend one of the requests based on a) an indication of a resource count required by the request, and b) a predetermined threshold for per-request resources.

6. The circuit of claim 1 , further comprising a plurality of buffers each configured to store the requests received from a respective device at the device interface.

7. The circuit of claim 6 , wherein each of the plurality of buffers generates a backpressure command in response to reaching a threshold storage value.

8. The circuit of claim 1 , wherein the per-device counter is further configured to increment in response to receiving an indication that an additional resource associated with a given device identifier is available.

9. The circuit of claim 1 , wherein the bus counter is further configured to increment in response to receiving an indication that an additional resource associated with the circuit is available.

10. The circuit of claim 1 , further comprising a bridge control circuit, the bridge control circuit configured to control a count of the bus counter.

11. The circuit of claim 10 , wherein the bridge control circuit is further configured to prevent return of an initial given count of resources to the bus counter.

12. A method comprising:

receiving requests from a plurality of devices to access a memory via a bridge, each of the requests including a device identifier;

maintaining a per-device resource count allocated to each device, the per-device resource count indicating a quantity of resources available at the bridge for processing the requests from the device;

maintaining a bus resource count for forwarding the requests to the bridge via a bus, the bus resource count indicating a quantity of resources available at the bridge for processing the requests to the bridge via the bus; and

selecting a next one of the plurality of requests to forward to the bridge based on a) the device identifier of the request, b) the per-device resource count corresponding to the device identifier, and c) the bus resource count associated with the device identifier.

13. The method of claim 12 , further comprising limiting, via the per-device resource count, a maximum resource count to a first of the plurality of devices relative to a second of the plurality of devices.

14. The method of claim 12 , further comprising suspending requests having a given device identifier in response to detecting that the per-device resource count for the given device identifier indicates a count that is less than a threshold value.

15. The method of claim 12 , further comprising suspending requests in response to detecting that the bus resource count indicates a count that is less than a threshold value.

16. The method of claim 12 , further comprising suspend one of the requests based on a) an indication of a resource count required by the request, and b) a predetermined threshold for per-request resources.

17. The method of claim 12 , further comprising storing the requests received from a respective device at a device interface.

18. The method of claim 17 , further comprising generating a backpressure command in response to reaching a threshold storage value.

19. The method of claim 12 , further comprising incrementing the per-device resource count in response to receiving an indication that an additional resource associated with a given device identifier is available.

20. The method of claim 12 , further comprising incrementing the bus resource count in response to receiving an indication that an additional resource associated with the circuit is available.

21. The method of claim 12 , further comprising controlling the bus resource count via a signal from the bridge.

22. The method of claim 21 , further comprising preventing return of an initial given count of resources to the bus resource count.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2014
From: SANZONE, ROBERT A.; SNYDER, WILSON P., II; KESSLER, RICHARD E.
To: CAVIUM, INC.
Reel/Frame 034526/0220 →