Enhanced NVDIMM architecture
First Claim
1. A system comprising:
- a non-volatile dual in-line memory module including a volatile memory, a high speed non-volatile memory (high speed NVM), and a non-volatile memory; and
one or more processing circuits, wherein the one or more processing circuits are configured to perform a method comprising;
receiving an I/O request;
determining whether the I/O request is a write or a read;
in response to determining that the I/O request is a read,transferring data included in the high speed non-volatile memory to the non-volatile memory;
in response to determining that the I/O request is a write,determining at least one location to write data of the write based on decoding bits of the write; and
writing, based on the decoded bits, the data of the write to the at least one location.
1 Assignment
0 Petitions
Accused Products
Abstract
Aspects of the present disclosure relate to a memory module having a volatile memory, a high speed non-volatile memory, and a non-volatile memory. The memory module can allow write mirroring to the volatile memory and high speed non-volatile memory simultaneously. An I/O request is received. A determination is made whether the I/O request is a write or a read. In response to determining that the I/O request is a read, data included in the high speed non-volatile memory is transferred to the non-volatile memory. In response to determining that the I/O request is a write, at least one location to write data of the write is determined based on decoding bits of the write command. The data of the write can then be written to the at least one location.
14 Citations
20 Claims
-
1. A system comprising:
-
a non-volatile dual in-line memory module including a volatile memory, a high speed non-volatile memory (high speed NVM), and a non-volatile memory; and one or more processing circuits, wherein the one or more processing circuits are configured to perform a method comprising; receiving an I/O request; determining whether the I/O request is a write or a read; in response to determining that the I/O request is a read, transferring data included in the high speed non-volatile memory to the non-volatile memory; in response to determining that the I/O request is a write, determining at least one location to write data of the write based on decoding bits of the write; and writing, based on the decoded bits, the data of the write to the at least one location. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for maintaining persistence on a non-volatile dual in-line memory module, the memory module including at least one volatile memory, at least one high speed non-volatile memory (NVM) and at least one non-volatile memory, the method comprising:
-
receiving a write request; decoding bits of the write request; determining, based on the decoded bits, that data of the write request should be mirrored to the at least one high speed NVM and the at least one volatile memory simultaneously; determining, in response to determining that the data of the write request should be mirrored to the at least one high speed NVM and the at least one volatile memory simultaneously, that data of the at least one high speed NVM should be transferred to the at least one non-volatile memory and flushed; transferring, in response to determining that the data of the at least one high speed NVM should be transferred to the non-volatile memory, data from the at least one high speed NVM to the at least one non-volatile memory; flushing, in response to transferring the data of the at least one high speed NVM to the at least one non-volatile memory, the data from the at least one high speed NVM; and writing, in response to flushing the data from the at least one high speed NVM, the data of the write request to the at least one high speed NVM and the at least one volatile memory simultaneously. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method for maintaining persistence on a non-volatile dual in-line memory module, the memory module including at least one volatile memory, at least one high speed non-volatile memory (NVM) and at least one non-volatile memory, the method comprising:
-
receiving a write request; decoding bits of the write request; determining, based on the decoded bits, that data of the write request should be mirrored to the at least one high speed NVM and the at least one volatile memory simultaneously; determining, in response to determining that the data of the write request should be mirrored to the at least one high speed NVM and the at least one volatile memory simultaneously, that data of the at least one high speed NVM should be transferred to the at least one non-volatile memory and flushed; transferring, in response to determining that the data of the at least one high speed NVM should be transferred to the non-volatile memory, data from the at least one high speed NVM to the at least one non-volatile memory; flushing, in response to transferring the data of the at least one high speed NVM to the at least one non-volatile memory, the data from the at least one high speed NVM; and writing, in response to flushing the data from the at least one high speed NVM, the data of the write request to the at least one high speed NVM and the at least one volatile memory simultaneously. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification