IP Library › Granted Patent US 10,970,216
Granted Patent B2
US 10,970,216 · App. 15/855,104 · Granted Apr 6, 2021

Adaptive granularity write tracking

Inventors: Kshitij A. Doshi (Tempe, AZ); Francesc Guim Bernat (Barcelona, ES); Daniel Rivas Barragan (Cologne, DE); Suraj Prabhakaran (Aachen, DE)
Assignee: Intel Corporation
G06F12/0831G06F12/0238G06F13/1631G06F13/1668G06F16/2237G06F2212/1016G06F2212/1032G06F2212/621G06F2212/7207
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,970,216
App. No.
15/855,104
Granted
Apr 6, 2021
Kind
B2
Abstract

An embodiment of a semiconductor package apparatus may include technology to create a tracking structure for a memory controller to track a range of memory addresses of a persistent memory, identify a write request at the memory controller for a memory location within the range of tracked memory addresses, and set a flag in the tracking structure to indicate that the memory location had the identified write request. Other embodiments are disclosed and claimed.

Claims (53)

1. An electronic processing system, comprising:

a persistent memory;

a memory controller communicatively coupled to the persistent memory; and

logic communicatively coupled to the memory controller to:

create a tracking structure for the memory controller to track a range of memory addresses of the persistent memory, wherein the tracking structure comprises a hierarchical bitmap structure with two or more levels of hierarchy, and wherein the two or more levels of hierarchy resolve to one or more bitmap vector stencils when the two or more levels of hierarchy are combined, wherein the tracking structure has a granularity adaptively selected during creation based on page sizes utilized over the range of memory addresses tracked and so that all of the bitmap vector stencils are small enough to all be contained in a last level cache of a processor,

identify a write request at the memory controller for a memory location within the range of memory addresses tracked, and

set a flag in the tracking structure to indicate that the memory location had the identified write request.

2. The electronic processing system of claim 1 , wherein the logic is further to:

create the tracking structure based on provided memory address information.

3. The electronic processing system of claim 1 , wherein the logic is further to:

set a bit in the hierarchical bitmap structure to indicate that the memory location had the identified write request.

4. The electronic processing system of claim 1 , wherein the logic is further to:

determine if one or more memory locations corresponding to data moved from the persistent memory to another storage region is within the range of memory addresses tracked; and

clear one or more flags in the tracking structure corresponding to one or more memory locations of the data moved determined to be within the range of memory addresses tracked.

5. The electronic processing system of claim 1 , wherein the flag corresponds to a unit of memory having a memory size of a 2 N times multiple of a cacheline size, where N is greater than or equal to zero.

6. A semiconductor package apparatus, comprising:

one or more substrates; and

logic coupled to the one or more substrates, wherein the logic is at least partly implemented in one or more of configurable logic and fixed-functionality hardware logic, the logic coupled to the one or more substrates to:

create a tracking structure for a memory controller to track a range of memory addresses of a persistent memory, wherein the tracking structure comprises a hierarchical bitmap structure with two or more levels of hierarchy, and wherein the two or more levels of hierarchy resolve to one or more bitmap vector stencils when the two or more levels of hierarchy are combined, wherein the tracking structure has a granularity adaptively selected during creation based on page sizes utilized over the range of memory addresses tracked and so that all of the bitmap vector stencils are small enough to all be contained in a last level cache of a processor,

identify a write request at the memory controller for a memory location within the range of memory addresses tracked, and

set a flag in the tracking structure to indicate that the memory location had the identified write request.

7. The semiconductor package apparatus of claim 6 , wherein the logic is further to:

create the tracking structure based on provided memory address information.

8. The semiconductor package apparatus of claim 6 , wherein the logic is further to:

set a bit in the hierarchical bitmap structure to indicate that the memory location had the identified write request.

9. The semiconductor package apparatus of claim 6 , wherein the logic is further to:

determine if one or more memory locations corresponding to data moved from the persistent memory to another storage region is within the range of memory addresses tracked; and

clear one or more flags in the tracking structure corresponding to one or more memory locations of the data moved determined to be within the range of memory addresses tracked.

10. The semiconductor package apparatus of claim 6 , wherein the flag corresponds to a unit of memory having a memory size of a 2 N times multiple of a cacheline size, where N is greater than or equal to zero.

11. A method of controlling memory, comprising:

creating a tracking structure for a memory controller to track a range of memory addresses of a persistent memory, wherein the tracking structure comprises a hierarchical bitmap structure with two or more levels of hierarchy, and wherein the two or more levels of hierarchy resolve to one or more bitmap vector stencils when the two or more levels of hierarchy are combined, wherein the tracking structure has a granularity adaptively selected during creation based on page sizes utilized over the range of memory addresses tracked and so that all of the bitmap vector stencils are small enough to all be contained in a last level cache of a processor;

identifying a write request at the memory controller for a memory location within the range of memory addresses tracked; and

setting a flag in the tracking structure to indicate that the memory location had the identified write request.

12. The method of claim 11 , wherein the method further comprises:

creating the tracking structure based on provided memory address information.

13. The method of claim 11 , wherein the method further comprises:

setting a bit in the hierarchical bitmap structure to indicate that the memory location had the identified write request.

14. The method of claim 11 , wherein the method further comprises:

determining if one or more memory locations corresponding to data moved from the persistent memory to another storage region is within the range of memory addresses tracked; and

clearing one or more flags in the tracking structure corresponding to one or more memory locations of the data moved determined to be within the range of memory addresses tracked.

15. The method of claim 11 , wherein the flag corresponds to a unit of memory having a memory size of a 2 N times multiple of a cache line size, where N is greater than or equal to zero.

16. At least one computer readable medium, comprising a set of instructions, which when executed by a computing device, cause the computing device to:

create a tracking structure for a memory controller to track a range of memory addresses of a persistent memory, wherein the tracking structure comprises a hierarchical bitmap structure with two or more levels of hierarchy, and wherein the two or more levels of hierarchy resolve to one or more bitmap vector stencils when the two or more levels of hierarchy are combined, wherein the tracking structure has a granularity adaptively selected during creation based on page sizes utilized over the range of memory addresses tracked and so that all of the bitmap vector stencils are small enough to all be contained in a last level cache of the processor;

identify a write request at the memory controller for a memory location within the range of memory addresses tracked; and

set a flag in the tracking structure to indicate that the memory location had the identified write request.

17. The at least one computer readable medium of claim 16 , comprising a further set of instructions, which when executed by the computing device, cause the computing device to:

create the tracking structure based on provided memory address information.

18. The at least one computer readable medium of claim 16 , comprising a further set of instructions, which when executed by the computing device, cause the computing device to:

set a bit in the hierarchical bitmap structure to indicate that the memory location had the identified write request.

19. The at least one computer readable medium of claim 16 , comprising a further set of instructions, which when executed by the computing device, cause the computing device to:

determine if one or more memory locations corresponding to data moved from the persistent memory to another storage region is within the range of memory addresses tracked; and

clear one or more flags in the tracking structure corresponding to one or more memory locations of the data moved determined to be within the range of memory addresses tracked.

20. The at least one computer readable medium of claim 16 , wherein the flag corresponds to a unit of memory having a memory size of a 2 N times multiple of a cacheline size, where N is greater than or equal to zero.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2018
From: DOSHI, KSHITIJ A.; GUIM BERNAT, FRANCESC; RIVAS BARRAGAN, DANIEL; PRABHAKARAN, SURAJ
To: INTEL CORPORATION
Reel/Frame 047616/0843 →
Continuity (1)
Related Publication 20190034340A1 · Jan 31, 2019