IP Library Patent Application 14452477
Patent Application
App. No. 14/452,477

SYSTEM AND METHOD FOR MIRRORING A VOLATILE MEMORY OF A COMPUTER SYSTEM

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 None
App. No.
14/452,477
Abstract

A system and method for mirroring a volatile memory to a CPIO device of a computer system is disclosed. According to one embodiment, a command buffer and a data buffer are provided to store data and a command for mirroring the data. The command specifies metadata associated with the data. The data is mirrored a non-volatile memory of the CPIO device based on the command.

Claims (59)

1 . A method for mirroring a volatile memory of a computer system to a co-processor input/output (CPIO) device, the method comprising:

providing a command buffer and a data buffer;

receiving a command and data, the command specifying metadata associated with the data;

storing the command in the command buffer and storing the data in the data buffer; and

mirroring the data and the metadata to a non-volatile memory of the CPIO device based on the command.

2 . The method of claim 1 , further comprising storing the metadata in the command buffer.

3 . The method of claim 1 , further comprising storing the metadata in the data buffer.

4 . The method of claim 1 , wherein the metadata comprises one or more of a size of the data, context, a key, and a timestamp associated with the data.

5 . The method of claim 1 , wherein the CPIO device comprises the command buffer and the data buffer.

6 . The method of claim 1 , wherein the size of the data is a variable size.

7 . The method of claim 6 , wherein the variable size is a cache line size.

8 . The method of claim 1 , wherein the command buffer and the data buffer are mixed in a First In First Out (FIFO) buffer.

9 . The method of claim 1 , further comprising providing a plurality of functions to:

create a persistence context for an application running on the computer system;

manage the persistence context including recreating a memory image;

reset the persistence context;

delete the persistence context; and

update the persistence context with data stored in the volatile memory.

10 . The method of claim 9 , further comprising: providing a run-time environment in which an object or data that are marked for persistence causes a function of the plurality of functions to execute when the object and data is updated.

11 . The method of claim 9 , wherein an instruction for mirroring the data and the metadata is synchronized with a fence instruction or a cache flush instruction.

12 . The method of claim 6 , further comprising:

analyzing a memory write operation; and

handling an exception to a mirrored page.

13 . The method of claim 1 , further comprising: provides address aliasing, wherein a memory location in the CPIO is read from at least two different host addresses, and wherein the data is written to the first alias and a read-back from the second alias is compared with the data written to the first alias.

14 . The method of claim 1 , further comprising:

generating a virtual address reference;

providing a virtual-to-physical mapping table comprising a page table entry, the page table entry comprising a mirror bit that indicates the data to be mirrored to a physical address as specified in a translation look-aside buffer (TLB); and

mapping the virtual address reference to the physical address.

15 . The method of claim 1 , wherein an instruction for mirroring the data and metadata is performed by a memory controller or a central processing unit (CPU) of the computer system.

16 . The method of claim 1 , wherein an instruction for mirroring the data and metadata is performed by the CPIO device.

17 . A computer system comprising:

a central processing unit (CPU);

a main memory system comprising a volatile memory;

a memory controller configured to control the main memory system; and

a CPIO device comprising a buffer and a non-volatile memory,

wherein the CPU is configured to run an application and update the volatile memory of the main memory system,

wherein the CPIO device is configured to store a command and data in the buffer, the command specifying metadata associated with the data stored in the buffer, and

wherein the CPIO device is configured to mirror the data and metadata to the non-volatile memory based on the command.

18 . The computer system of claim 17 , wherein the metadata comprises one or more of a size of the data, context, a key, and a timestamp associated with the data.

19 . The computer system of claim 17 , wherein the buffer comprises a command buffer and a data buffer and wherein the data is stored in the data buffer and the command is stored in the command buffer.

20 . The computer system of claim 19 , wherein the metadata is stored in the command buffer.

21 . The computer system of claim 19 , wherein the metadata is stored in the data buffer.

22 . The computer system of claim 17 , wherein the command buffer and the data buffer are mixed in a First In First Out (FIFO) buffer.

23 . The computer system of claim 17 , wherein an instruction for mirroring the data and metadata to the non-volatile memory of the CPIO device is synchronized with a fence instruction or a cache flush instruction.

24 . The computer system of claim 17 , wherein the application generates a virtual address reference and a virtual-to-physical mapping table comprising a page table entry, the page table entry comprising a mirror bit that indicates the data to be mirrored to a physical address and the CPIO device mirrors the data to the physical address.

25 . The computer system of claim 24 , wherein the physical address is specified in a translation look-aside buffer (TLB).

26 . A device comprising:

a memory interface to a memory controller that is configured to control a main memory system of a computer system;

a mirroring buffer; and

a non-volatile memory,

wherein the device is configured to:

receive data and a command from the memory controller via the memory interface, the command specifying metadata associated with the data stored in the buffer;

store the data and the command in the mirroring buffer; and

mirror the data and the metadata to the non-volatile memory based on the command.

27 . The device of claim 26 , wherein the metadata comprises one or more of a size of the data, context, a key, and a timestamp associated with the data.

28 . The device of claim 26 , wherein the mirroring buffer comprises a command buffer and a data buffer and wherein the data is stored in the data buffer and the command is stored in the command buffer.

29 . The device of claim 28 , wherein the metadata is stored in the command buffer.

30 . The device of claim 28 , wherein the metadata is stored in the data buffer.

31 . The device of claim 26 , wherein an instruction for mirroring the data and the metadata to the non-volatile memory of the device is synchronized with a fence instruction or a cache flush instruction.

Assignments (3)
SECURITY INTEREST Recorded Jun 6, 2017
From: DIABLO TECHNOLOGIES, INC.
To: CITY NATIONAL BANK
Reel/Frame 042619/0675 →
SECURITY INTEREST Recorded Mar 6, 2015
From: DIABLO TECHNOLOGIES, INC.
To: CITY NATIONAL BANK
Reel/Frame 035102/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2014
From: TROJANOWSKI, BART; AMER, MAHER; BADALONE, RICCARDO; TAKEFMAN, MICHAEL L.
To: DIABLO TECHNOLOGIES, INC.
Reel/Frame 034055/0660 →