IP Library Granted Patent US 10,599,577
Granted Patent B2
US 10,599,577 · App. 15/222,184 · Granted Mar 24, 2020

Admission control for memory access requests

Inventors: Shubhendu Sekhar Mukherjee (Southborough, MA); Michael Bertone (Marlborough, MA); David Albert Carlson (Haslet, TX); Richard Eugene Kessler (Northborough, MA); Wilson Snyder (Holliston, MA)
Assignee: Cavium, LLC
G06F12/0888G06F12/084G06F12/0811G06F2212/1024
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,599,577
App. No.
15/222,184
Granted
Mar 24, 2020
Kind
B2
Abstract

Managing memory access requests for a plurality of processor cores includes: storing admission control information for determining whether or not to admit a predetermined type of memory access request into a shared resource that is shared among the processor cores and includes one or more cache levels of a hierarchical cache system and at least one memory controller for accessing a main memory; determining whether or not a memory access request of the predetermined type made on behalf of a first processor core should be admitted into the shared resource based at least in part on the stored admission control information; and updating the admission control information based on a latency of a response to a particular memory access request admitted into the shared resource, where the updating depends on whether the response originated from a particular cache level included in the shared resource or from the main memory.

Claims (33)

1. A method for managing memory access requests for a plurality of processor cores, the method comprising:

storing admission control information for determining whether or not to admit a predetermined type of memory access request into a shared resource that is shared among the processor cores and includes one or more cache levels of a hierarchical cache system and at least one memory controller for accessing a main memory;

determining whether or not a memory access request of the predetermined type made on behalf of a first processor core should be admitted into the shared resource based at least in part on the stored admission control information; and

updating the admission control information based on a latency of a response to a particular memory access request admitted into the shared resource, where the updating depends on whether the response originated from a particular cache level included in the shared resource or from the main memory.

2. The method of claim 1 , wherein the updating includes: comparing a latency of a first response to a first particular memory access request to a first threshold where the first response originated from the particular cache level, and comparing a latency of a second response to a second particular memory access request to a second threshold where the second response originated from the main memory, where the second threshold is larger than the first threshold.

3. The method of claim 2 , wherein the admission control information includes a quantitative measure that changes in different directions depending on whether a latency of a response to a memory access request is larger or smaller than at least one of the first or second thresholds.

4. The method of claim 3 , wherein the quantitative measure includes a range of values over which changes in the same direction accumulate over multiple successive updates.

5. The method of claim 4 , wherein the quantitative measure includes at least one value for which the quantitative measure remains the same over multiple successive updates.

6. The method of claim 3 , wherein the quantitative measure comprises a state of a saturating counter that increments up or down until a maximum value or minimum value is reached.

7. The method of claim 2 , wherein the admission control information includes: a first quantitative measure that changes based on a result of comparing a latency of a response to a memory access request to the first threshold, and a second quantitative measure that changes based on a result of comparing a latency of a response to a memory access request to the second threshold.

8. The method of claim 7 , wherein the first quantitative measure comprises a state of a first saturating counter, and the second quantitative measure comprises a state of a second saturating counter.

9. The method of claim 1 , wherein the shared resource further includes an interconnection network among multiple of the processor cores.

10. The method of claim 9 , wherein the latency of the response to the particular memory access request is measured based on a number of cycles that occur between the particular memory access request being made on behalf of the first processor core and the response to the particular memory access request being received at the first processor core.

11. The method of claim 9 , wherein the latency of the response to the particular memory access request is measured based on a number of cycles that occur between the particular memory access request being made on behalf of a second processor core and the response to the particular memory access request being received at the second processor core.

12. The method of claim 1 , wherein the predetermined type of memory access request comprises a speculative memory access request.

13. A processor comprising:

a plurality of processor cores;

a shared resource that is shared among the processor cores and includes one or more cache levels of a hierarchical cache system and at least one memory controller for accessing a main memory; and

a memory access request manager configured to manage memory access requests for one or more of the processor cores, the managing including:

storing admission control information for determining whether or not to admit a predetermined type of memory access request into the shared resource;

determining whether or not a memory access request of the predetermined type made on behalf of a first processor core should be admitted into the shared resource based at least in part on the stored admission control information; and

updating the admission control information based on a latency of a response to a particular memory access request admitted into the shared resource, where the updating depends on whether the response originated from a particular cache level included in the shared resource or from the main memory.

14. The processor of claim 13 , wherein the updating includes: comparing a latency of a first response to a first particular memory access request to a first threshold where the first response originated from the particular cache level, and comparing a latency of a second response to a second particular memory access request to a second threshold where the second response originated from the main memory, where the second threshold is larger than the first threshold.

15. The method of claim 14 , wherein the admission control information includes a quantitative measure that changes in different directions depending on whether a latency of a response to a memory access request is larger or smaller than at least one of the first or second thresholds.

16. The method of claim 15 , wherein the quantitative measure includes a range of values over which changes in the same direction accumulate over multiple successive updates.

17. The method of claim 16 , wherein the quantitative measure includes at least one value for which the quantitative measure remains the same over multiple successive updates.

18. The method of claim 15 , wherein the quantitative measure comprises a state of a saturating counter that increments up or down until a maximum value or minimum value is reached.

19. The method of claim 14 , wherein the admission control information includes: a first quantitative measure that changes based on a result of comparing a latency of a response to a memory access request to the first threshold, and a second quantitative measure that changes based on a result of comparing a latency of a response to a memory access request to the second threshold.

20. The method of claim 19 , wherein the first quantitative measure comprises a state of a first saturating counter, and the second quantitative measure comprises a state of a second saturating counter.

21. The method of claim 13 , wherein the shared resource further includes an interconnection network among multiple of the processor cores.

22. The method of claim 21 , wherein the latency of the response to the particular memory access request is measured based on a number of cycles that occur between the particular memory access request being made on behalf of the first processor core and the response to the particular memory access request being received at the first processor core.

23. The method of claim 21 , wherein the latency of the response to the particular memory access request is measured based on a number of cycles that occur between the particular memory access request being made on behalf of a second processor core and the response to the particular memory access request being received at the second processor core.

24. The method of claim 13 , wherein the predetermined type of memory access request comprises a speculative memory access request.

Assignments (4)
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 →
CHANGE OF NAME Recorded Sep 27, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047156/0971 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2016
From: MUKHERJEE, SHUBHENDU SEKHAR; BERTONE, MICHAEL; CARLSON, DAVID ALBERT; KESSLER, RICHARD EUGENE; SNYDER, WILSON
To: CAVIUM, INC
Reel/Frame 039282/0651 →
Continuity (2)
Provisional Application 62333476 · May 9, 2016
Related Publication 20170322886A1 · Nov 9, 2017