IP Library Granted Patent US 11,074,181
Granted Patent B2
US 11,074,181 · App. 16/459,065 · Granted Jul 27, 2021

Dirty data tracking in persistent memory systems

Inventors: Aasheesh Kolli (Santa Clara, CA); Vijaychidambaram Velayudhan Pillai (Austin, TX)
Assignee: VMware, Inc.
G06F12/0804G06F12/0815G06F12/12
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,074,181
App. No.
16/459,065
Granted
Jul 27, 2021
Kind
B2
Abstract

An example method of managing persistent memory (PM) in a computing system includes: issuing, by an application executing in the computing system, store instructions to an address space of the application, the address space including a region mapped to the PM; recording, by a central processing unit (CPU) in the computing system, cache line addresses in a log, the cache line addresses corresponding to cache lines in the address space of the application targeted by the store instructions; and issuing, by the application, one or more instructions to flush cache lines from cache of the CPU identified by the cache line addresses in the log.

Claims (55)

1. A method of managing persistent memory (PM) in a computing system, comprising:

issuing, by an application executing in the computing system, store instructions to an address space of the application, the address space including a region mapped to the PM;

recording, by a central processing unit (CPU) in the computing system, cache line addresses in a log, the cache line addresses corresponding to cache lines in the region of the address space of the application targeted by the store instructions;

issuing, by the application, one or more instructions to access the log; and

issuing, by the application, based on information obtained from the log, one or more instructions to flush cache lines from a cache of the CPU identified by the cache line addresses in the log.

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

receiving, at the CPU, bounds information from the application defining the region of the address space mapped to the PM;

wherein the cache line addresses stored in the log correspond to only those cache lines in the region of the address space mapped to the PM.

3. The method of claim 1 , wherein the one or more instructions to access the log comprise an instruction to query the log to obtain the cache line addresses therefrom, and wherein the one or more instructions to flush the cache lines comprises:

write-back instructions to flush the cache lines from the cache identified by the cache line addresses in the log; and

an instruction to clear the log.

4. The method of claim 1 , wherein the one or more instructions to flush the cache lines comprises:

a bulk write-back instruction to flush the cache lines from the cache identified by the cache line addresses in the log.

5. The method of claim 1 , further comprising:

writing back, by the CPU, one or more cache lines of the cache in response to the log being full.

6. The method of claim 1 , further comprising:

migrating, by the CPU, the log from one core to another core of the CPU.

7. The method of claim 1 , wherein the PM is attached to a memory bus of the CPU.

8. A non-transitory computer readable medium comprising instructions, which when executed in a computer system, causes the computer system to carry out a method of managing persistent memory (PM) in a computing system, comprising:

issuing, by an application executing in the computing system, store instructions to an address space of the application, the address space including a region mapped to the PM;

recording, by a central processing unit (CPU) in the computing system, cache line addresses in a log, the cache line addresses corresponding to cache lines in the region of the address space of the application targeted by the store instructions; and

issuing, by the application, one or more instructions to access the log; and

issuing, by the application, based on information obtained from the log, one or more instructions to flush cache lines from a cache of the CPU identified by the cache line addresses in the log.

9. The non-transitory computer readable medium of claim 8 , wherein recording comprises:

receiving, at the CPU, bounds information from the application defining the region of the address space mapped to the PM;

wherein the cache line addresses stored in the log correspond to only those cache lines in the region of the address space mapped to the PM.

10. The non-transitory computer readable medium of claim 8 , wherein the one or more instructions to access the log comprise an instruction to query the log to obtain the cache line addresses therefrom, and wherein the one or more instructions to flush the cache lines comprise:

write-back instructions to flush the cache lines from the cache identified by the cache line addresses in the log; and

an instruction to clear the log.

11. The non-transitory computer readable medium of claim 8 , wherein the one or more instructions to flush the cache lines comprises:

a bulk write-back instruction to flush the cache lines from the cache identified by the cache line addresses in the log.

12. The non-transitory computer readable medium of claim 8 , further comprising:

writing back, by the CPU, one or more cache lines of the cache in response to the log being full.

13. The non-transitory computer readable medium of claim 8 , further comprising:

migrating, by the CPU, the log from one core to another core of the CPU.

14. The non-transitory computer readable medium of claim 8 , wherein the PM is attached to a memory bus of the CPU.

15. A computing system, comprising:

a memory configured to store an application; and

a central processing unit (CPU), coupled to the memory, configured to execute the application and perform:

issuing, by the application, store instructions to an address space of the application, the address space including a region mapped to the PM;

recording, by the CPU, cache line addresses in a log, the cache line addresses corresponding to cache lines in the region of the address space of the application targeted by the store instructions; and

issuing, by the application, one or more instructions to access the log; and

issuing, by the application, based on information obtained from the log, one or more instructions to flush cache lines from a cache of the CPU identified by the cache line addresses in the log.

16. The computing system of claim 15 , wherein the recording comprises:

receiving, at the CPU, bounds information from the application defining the region of the address space mapped to the PM;

wherein the cache line addresses stored in the log correspond to only those cache lines in the region of the address space mapped to the PM.

17. The computing system of claim 15 , wherein the one or more instructions to access the log comprise an instruction to query the log to obtain the cache line addresses therefrom, and wherein issuing the one or more instructions to flush the cache lines comprises:

write-back instructions to flush the cache lines from the cache identified by the cache line addresses in the log; and

an instruction to clear the log.

18. The computing system of claim 15 , wherein the issuing the one or more instructions to flush the cache lines comprises:

a bulk write-back instruction to flush the cache lines from the cache identified by the cache line addresses in the log.

19. The computing system of claim 15 , further comprising:

writing back, by the CPU, one or more cache lines of the cache in response to the log being full.

20. The computing system of claim 15 , further comprising:

migrating, by the CPU, the log from one core to another core of the CPU.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2019
From: KOLLI, AASHEESH; PILLAI, VIJAYCHIDAMBARAM VELAYUDHAN
To: VMWARE, INC.
Reel/Frame 050778/0870 →