Ordering updates for nonvolatile memory accesses
AssigneeHewlett Packard Enterprise Development LP
InventorsSanketh Nalli, Haris Volos, Kimberly Keeton
Life of this patent
Estimating the term…
Abstract
Examples relate to ordering updates for nonvolatile memory accesses. In some examples, a first update that is propagated from a write-through processor cache of a processor is received by a write ordering buffer, where the first update is associated with a first epoch. The first update is stored in a first buffer entry of the write ordering buffer. At this stage, a second update that is propagated from the write-through processor cache is received, where the second update is associated with a second epoch. A second buffer entry of the write ordering buffer is allocated to store the second update. The first buffer entry and the second buffer entry can then be evicted to non-volatile memory in epoch order.
Claims15
A system for ordering updates for nonvolatile memory accesses, the system comprising:
- a processor to process a plurality of updates;
- a write-through processor cache that is operatively connected to the processor;
- non-volatile memory;
- a write ordering buffer that is operatively connected to the write-through processor cache and the non-volatile memory, wherein the write ordering buffer comprises a plurality of buffer entries that are each allocated using a cache line size of the write-through processor cache, the write ordering buffer to:
- receive a first update of the plurality of updates that is propagated from the write-through processor cache, wherein the first update is associated with a first epoch;
- store the first update in a first buffer entry of the plurality of buffer entries;
- receive a second update of the plurality of updates that is propagated from the write-through processor cache, wherein the second update is associated with a second epoch;
- allocate a second buffer entry of the plurality of buffer entries,
- wherein the second update is stored in the second buffer entry;
- and
- evict the first buffer entry and the second buffer entry to the non-volatile memory in epoch order.
A method for ordering updates for nonvolatile memory accesses, the method comprising:
- receiving, by a write ordering buffer, a first update of a plurality of updates that is propagated from a write-through processor cache of a processor, wherein the first update is associated with a first epoch;
- storing the first update in a first buffer entry of a plurality of buffer entries of the write ordering buffer;
- receiving a second update of the plurality of updates that is propagated from the write-through processor cache, wherein the second update is associated with a second epoch;
- allocating a second buffer entry of the plurality of buffer entries, wherein the second update is stored in the second buffer entry;
- and
- evicting the first buffer entry and the second buffer entry to non-volatile memory in a first in first out order.
A non-transitory machine-readable storage medium encoded with instructions executable by a processor for ordering updates for nonvolatile memory accesses, the machine-readable storage medium comprising instructions to:
- receive a first update of a plurality of updates that is propagated from a write-through processor cache of a processor, wherein the first update is associated with a first epoch;
- in response to determining that a write ordering buffer includes a first buffer that is associated with the first epoch, store the first update in the first buffer entry of a plurality of buffer entries;
- receive a second update of the plurality of updates that is propagated from the write-through processor cache, wherein the second update is associated with a second epoch;
- allocate a second buffer entry of the plurality of buffer entries, wherein the second update is stored in the second buffer entry;
- and
- evict the first buffer entry and the second buffer entry to non-volatile memory in epoch order.
Dependencies are inferred from the claim text.