UPDATING PERSISTENT DATA IN PERSISTENT MEMORY-BASED STORAGE
First Claim
1. A processor comprising:
- a processing core to execute an application comprising instructions encoding a transaction with a persistent memory via a volatile cache, wherein the volatile cache comprises a cache line associated with the transaction, the cache line being associated with a cache line status; and
a cache controller operatively coupled to the volatile cache, the cache controller, in response to detecting a failure event, to;
in response to determining that the cache line status indicates that the cache line is committed, evict contents of the cache line to the persistent memory, andin response to determining the cache line status indicates that the cache line is uncommitted, discard the contents of the cache line.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor includes a processing core to execute an application including instructions encoding a transaction with a persistent memory via a volatile cache that includes a cache line associated with the transaction, the cache line being associated with a cache line status, and a cache controller operatively coupled to the volatile cache, the cache controller, in response to detecting a failure event, to, in response to determining that the cache line status that the cache line is committed, evict contents of the cache line to the persistent memory, and in response to determining that the cache line status indicating that the cache line is uncommitted, discard the contents of the cache line.
24 Citations
23 Claims
-
1. A processor comprising:
-
a processing core to execute an application comprising instructions encoding a transaction with a persistent memory via a volatile cache, wherein the volatile cache comprises a cache line associated with the transaction, the cache line being associated with a cache line status; and a cache controller operatively coupled to the volatile cache, the cache controller, in response to detecting a failure event, to; in response to determining that the cache line status indicates that the cache line is committed, evict contents of the cache line to the persistent memory, and in response to determining the cache line status indicates that the cache line is uncommitted, discard the contents of the cache line. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system-on-a-chip (SoC) comprising:
-
a two-level memory comprising a first level comprising a volatile cache, and a second level comprising a persistent memory, and a processor, operatively coupled to the two-level memory, comprising; a processing core, in response to receiving a transaction begin instruction, to store a transaction identifier in a transaction identifier register prior to executing a transaction with the persistent memory and to copy the transaction identifier to a cache line of the volatile cache; and a cache controller to evict the cache line tagged with the transaction identifier from the cache to the persistent memory in response to a cache eviction event based on a commit state of the cache line. - View Dependent Claims (18, 19, 20)
-
-
21. A method comprising:
-
executing, by a processing core, an application comprising instructions encoding a transaction with a persistent memory via a volatile cache, wherein the volatile cache comprises a cache line associated with the transaction, the cache line being associated with a cache line status; detecting a failure event occurred associated with the transaction, wherein the failure event requires a reboot of a system that the processing core supports; in response to determining that a status flag of the cache line indicates a committed state, evicting contents of the cache line to the persistent memory; and in response to determining that the status flag of the cache line indicates an uncommitted state, discarding the contents of the cache line. - View Dependent Claims (22, 23)
-
Specification