IP Library Granted Patent US 11,138,121
Granted Patent B2
US 11,138,121 · App. 16/192,138 · Granted Oct 5, 2021

Systems and methods for efficient cacheline handling based on predictions

Inventors: Erik Ernst Hagersten (Uppsala, SE); Andreas Karl Sembrant (Uppsala, SE); David Black-Schaffer (Uppsala, SE)
Assignee: Samsung Electronics Co., Ltd.
G06F12/0871G06F12/0811G06F12/0846G06F12/0897G06F12/126G06F2212/271G06F2212/6046
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,138,121
App. No.
16/192,138
Granted
Oct 5, 2021
Kind
B2
Abstract

A data management method for a processor to which a first cache, a second cache, and a behavior history table are allocated, includes tracking reuse information learning cache lines stored in at least one of the first cache and the second cache; recording the reuse information in the behavior history table; and determining a placement policy with respect to future operations that are to be performed on a plurality of cache lines stored in the first cache and the second cache, based on the reuse information in the behavior history table.

Claims (51)

1. A data management method for a multi-core processor system including a plurality of processor cores, a plurality of caches, and a behavior history table, the plurality of caches including first caches of a first cache level and second caches of a second cache level, the method comprising:

tracking reuse information of learning cache lines stored in at least one cache of the first caches or the second caches;

recording the reuse information in the behavior history table;

determining a placement policy with respect to future operations that are to be performed on a plurality of cache lines stored in the first caches or the second caches, based on the reuse information in the behavior history table, wherein

the second cache level is at a higher level than the first cache level,

each of the first caches are private to a corresponding processor core among the plurality of processor cores,

the second caches are shared among the plurality of processor cores,

the reuse information includes a plurality of reuse counters corresponding, respectively, to the plurality of processor cores, and

each reuse counter, from among the plurality of reuse counters, corresponds to a different one processor core from among the plurality of processor cores;

incrementing the reuse counters each time learning cache lines stored in the second caches are accessed by the corresponding processor core;

calculating a total reuse count by adding up the reuse counters; and

recording the total reuse count by a separate counter in the behavior history table.

2. The method of claim 1 , wherein the method further comprises:

updating, by the multi-core processor system, at least one behavior counter from among a plurality of behavior counters included in the reuse information each time a type of usage corresponding to the at least one behavior counter occurs with respect to at least one of the learning cache lines.

3. The method of claim 2 , wherein the method further comprises:

updating, by the multi-core processor system, at least one behavior counter from among the plurality of behavior counters each time at least one of the learning cache lines is accessed by a read request.

4. The method of claim 1 , further comprising:

storing the determined placement policy in the behavior history table.

5. The method of claim 1 , further comprising:

randomly selecting at least some cache lines among the plurality of cache lines stored in at least one cache of the first caches or the second caches as the learning cache lines.

6. The method of claim 1 ,

wherein the plurality of processor cores includes a first core and a second core, and

wherein the first core has a shorter access time to at least one cache of the first caches than the second core, and the second core has a shorter access time to at least one cache of the second caches than the first core.

7. A multi-core processor system comprising:

a plurality of processor cores; and

a plurality of caches; and a behavior history table,

the plurality of caches including first caches of a first cache level and second caches of a second cache level higher than the first cache level, the first and second cache levels being different cache levels with respect to each other,

wherein, at least one processor core from among the plurality of processor cores is configured to determine a placement policy with respect to future operations that are to be performed on a plurality of cache lines stored in at least one cache of the first caches or the second caches, based on reuse information recorded in a behavior history table,

wherein the reuse information is information about reuse of learning cache lines is stored in at least one cache of the first caches or the second caches,

the reuse information including a plurality of reuse counters corresponding, respectively, to the plurality of cores,

wherein each reuse counter, from among the plurality of reuse counters, corresponds to a different one processing core from among the plurality of processing cores,

wherein each of the first caches are private to a corresponding processor core among the plurality of processor cores,

wherein the reuse counters are incremented each time the learning cache lines stored in the second caches is accessed by the corresponding processor core, and

wherein a total reuse count calculated by adding up the reuse counters is recorded by a separate counter in the behavior history table.

8. The system of claim 7 , wherein the at least one processor core is configured to update at least one reuse counter from among the plurality of reuse counters each time a type of usage corresponding to the at least one reuse counter occurs with respect to at least one of the learning cache lines.

9. The system of claim 7 , wherein the behavior history table includes at least one unused counter, and the at least one processor core is configured to update the at least one unused counter each time at least one of the learning cache lines is replaced before a single reuse of the learning cache lines has occurred.

10. The system of claim 7 , wherein the behavior history table includes a policy field that stores a policy in accordance with the placement policy determined by the at least one processor core.

11. The system of claim 7 , wherein each of the learning cache lines is extended with a reuse information field that is configured to store reuse information of the learning cache lines.

12. The system of claim 7 , wherein each learning cache line is extended with a learning bit indicating that the learning cache line is a learning cache line.

13. A non-transitory computer-readable storage medium comprising instructions that, when executed by at least one processor core of a multi-core processor system including a plurality of processor cores, a plurality of caches, and a behavior history table, the plurality of caches including first caches of a first cache level and second caches of a second cache level, cause the at least one processor core to perform operations including,

tracking reuse information of learning cache lines stored in at least one cache of the first caches or the second caches;

recording the reuse information in the behavior history table;

determining a placement policy with respect to future operations that are to be performed on a plurality of cache lines stored in the first caches or the second caches, based on the reuse information in the behavior history table, wherein

the second cache level is at a higher level than the first cache level,

each of the first caches are private to a corresponding processor core among the plurality of processor cores,

the second caches are shared among the plurality of processor cores,

the reuse information includes a plurality of reuse counters corresponding, respectively, to the plurality of processor cores, and

each reuse counter, from among the plurality of reuse counters, corresponds to a different one processor core from among the plurality of processor cores;

Incrementing the reuse counters each time learning cache lines stored in the second caches are accessed by the corresponding processor core;

calculating a total reuse count by adding up the reuse counters; and

recording the total reuse count by a separate counter in the behavior history table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2018
From: HAGERSTEN, ERIK ERNST; SEMBRANT, ANDREAS KARL; BLACK-SCHAFFER, DAVID
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 047539/0045 →
Continuity (2)
Provisional Application 62588715 · Nov 20, 2017
Related Publication 20190155736A1 · May 23, 2019
Cited By (2)
US 12,541,455 US 12,566,714