IP Library Granted Patent US 10,725,690
Granted Patent B2
US 10,725,690 · App. 15/984,138 · Granted Jul 28, 2020

Non-volatile memory cloning with hardware copy-on-write support

Inventors: Jakub Radtke (Gdansk, PL); Wojciech Malikowski (Gdansk, PL); Tobiasz Domagala (Gdansk, PL)
Assignee: Intel Corporation
G06F3/065G06F3/0604G06F3/064G06F3/0616G06F3/0679G06F12/1009G06F2212/1008G06F2212/7201
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 10,725,690
App. No.
15/984,138
Granted
Jul 28, 2020
Kind
B2
Abstract

Examples may include a non-volatile memory having a memory including a first table of device physical addresses and a second table of physical device addresses; a control register to receive a clone command to clone a second memory region of the memory as a copy of a first memory region of the memory, the first and second memory regions being referenced by different device physical addresses; and address translation logic, upon receipt of the clone command, create a first entry in the first table for each page of the first memory region and create a second entry in the first table for each page of the second memory region, each first table entry for the first memory region and each first table entry for the second memory region pointing to a same entry in the second table.

Claims (51)

1. An apparatus comprising:

a non-volatile memory device including

a byte addressable three-dimensional cross point memory including a virtual address translation table of device physical addresses and an address translation table of physical device addresses;

at least one control register to receive a clone command over an interface from an operating system to clone a second memory region of the memory as a copy of a first memory region of the byte addressable three-dimensional cross point memory, the first and second memory regions being referenced by different device physical addresses; and

address translation circuitry, coupled to the at least one control register and the memory, including logic to, upon receipt of the clone command, create a first entry in the virtual address translation table for each page of the first memory region and create a second entry in the virtual address translation table for each page of the second memory region, each virtual address translation table entry for the first memory region and each virtual address translation table entry for the second memory region pointing to a same entry in the address translation table.

2. The apparatus of claim 1 , the at least one control register to receive a read command to read data from the first memory region starting at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the read command:

translate the specified device physical address into a physical device address using the first entry in virtual address translation table and the same entry in the address translation table.

3. The apparatus of claim 1 , the at least one control register to receive a read command to read data from the second memory region starting at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the read command:

translate the specified device physical address into a physical device address using the second entry in virtual address translation table and the same entry in the address translation table.

4. The apparatus of claim 1 , the at least one control register to receive a write command to write data to the first memory region at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the write command:

determine if there is an entry in the virtual address translation table for the specified device physical address; and

translate the specified device physical address to a corresponding physical device address and write the data to the byte addressable three-dimensional cross point memory at the corresponding physical device address when the entry is not in the virtual address translation table.

5. The apparatus of claim 4 , the address translation circuitry including logic to, when the entry is in the virtual address translation table,

update the entry in the virtual address translation table to point to a new physical device address in the byte addressable three-dimensional cross point memory;

copy at least a portion of the first memory region to the byte addressable three-dimensional cross point memory starting at the new physical device address; and

write the data of the portion of the first memory region to the byte addressable three-dimensional cross point memory at the corresponding physical device address.

6. The apparatus of claim 1 , wherein device physical addresses comprise virtual addresses.

7. The apparatus of claim 6 , wherein the virtual address translation engine table is hidden from an operating system.

8. A method comprising:

receiving a clone command by a non-volatile memory device over an interface from an operating system to clone a second memory region of a byte addressable three-dimensional cross point memory as a copy of a first memory region of the byte addressable three-dimensional cross point memory, the first and second memory regions being referenced by different device physical addresses, the non-volatile memory device including a virtual address translation table of device physical addresses and an address translation table of physical device addresses; and

creating a first entry in the virtual address translation table for each page of the first memory region and create a second entry in the virtual address translation table for each page of the second memory region, each virtual address translation table entry for the first memory region and each virtual address translation table entry for the second memory region pointing to a same entry in the address translation table.

9. The method of claim 8 , comprising

receiving a read command to read data from the first memory region starting at a specified device physical address; and

translating the specified device physical address into a physical device address using the first entry in virtual address translation table and the same entry in the address translation table.

10. The method of claim 8 , comprising:

receiving a read command to read data from the second memory region starting at a specified device physical address; and

translating the specified device physical address into a physical device address using the second entry in virtual address translation table and the same entry in the address translation table.

11. The method of claim 8 , comprising:

receiving a write command to write data to the first memory region at a specified device physical address;

determining if there is an entry in the virtual address translation table for the specified device physical address; and

translating the specified device physical address to a corresponding physical device address and write the data to the memory at the corresponding physical device address when the entry is not in the virtual address translation table.

12. The method of claim 11 , comprising when the entry is in the virtual address translation table,

updating the entry in the virtual address translation table to point to a new physical device address in the byte addressable three-dimensional cross point memory;

copying at least a portion of the first memory region to the byte addressable three-dimensional cross point memory starting at the new physical device address; and

writing the data of the portion of the first memory region to the byte addressable three-dimensional cross point memory at the corresponding physical device address.

13. A system comprising:

a processor to send a clone command over an interface to clone a second memory region of a memory as a copy of a first memory region of the memory, the first and second memory regions being referenced by different device physical addresses; and

a non-volatile memory device coupled to the processor over the interface comprising

a byte addressable three-dimensional memory storing a virtual address translation table of device physical addresses and a address translation table of physical device addresses; and

address translation circuitry, coupled to the byte addressable three-dimensional cross point memory, including logic to, upon receipt of the clone command over the interface from the processor, create a first entry in the virtual address translation table for each page of the first memory region and create a second entry in the virtual address translation table for each page of the second memory region, each virtual address translation table entry for the first memory region and each virtual address translation table entry for the second memory region pointing to a same entry in the address translation table.

14. The system of claim 13 , the non-volatile memory device adapted to receive a read command to read data from the first memory region starting at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the read command:

translate the specified device physical address into a physical device address using the first entry in virtual address translation table and the same entry in the address translation table.

15. The system of claim 13 , the non-volatile memory device to receive a read command to read data from the second memory region starting at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the read command:

translate the specified device physical address into a physical device address using the second entry in virtual address translation table and the same entry in the address translation table.

16. The system of claim 13 , the at least one control register to receive a write command to write data to the first memory region at a specified device physical address, and the address translation circuitry including logic to, upon receipt of the write command:

determine if there is an entry in the virtual address translation table for the specified device physical address;

translate the specified device physical address to a corresponding physical device address and write the data to the byte addressable three-dimensional cross point memory at the corresponding physical device address when the entry is not in the virtual address translation table.

17. The system of claim 16 , the address translation circuitry including logic to, when the entry is in the virtual address translation table,

update the entry in the virtual address translation table to point to a new physical device address in the byte addressable three-dimensional cross point memory;

copy at least a portion of the first memory region to the byte addressable three-dimensional cross point memory starting at the new physical device address; and

write the data of the portion of the first memory region to the byte addressable three-dimensional cross point memory at the corresponding physical device address.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2023
From: INTEL CORPORATION
To: INTEL NDTM US LLC
Reel/Frame 064928/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2018
From: RADTKE, JAKUB; MALIKOWSKI, WOJCIECH; DOMAGALA, TOBIASZ
To: INTEL CORPORATION
Reel/Frame 046064/0490 →
Continuity (1)
Related Publication 20190042097A1 · Feb 7, 2019
Cited By (1)
US 12,547,538