IP Library › Granted Patent US 10,372,606
Granted Patent B2
US 10,372,606 · App. 15/282,848 · Granted Aug 6, 2019

System and method for integrating overprovisioned memory devices

Inventors: Krishna Malladi (San Jose, CA); Jongmin Gim (San Jose, CA); Hongzhong Zheng (Los Gatos, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F12/08G06F12/0868G06F12/10G06F2212/1016G06F2212/152G06F2212/401G06F2212/403
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,372,606
App. No.
15/282,848
Granted
Aug 6, 2019
Kind
B2
Abstract

A memory device includes a memory interface to a host computer and a memory overprovisioning logic configured to provide a virtual memory capacity to a host operating system (OS). A kernel driver module of the host OS is configured to manage the virtual memory capacity of the memory device provided by the memory overprovisioning logic of the memory device and provide a fast swap of anonymous pages to a frontswap space and file pages to a cleancache space of the memory device based on the virtual memory capacity of the memory device.

Claims (32)

1. A memory device comprising:

a memory interface to a host computer; and

a memory overprovisioning logic configured to provide a virtual memory capacity to a host operating system (OS),

wherein a kernel driver module of the host OS is configured to manage the virtual memory capacity of the memory device provided by the memory overprovisioning logic of the memory device and provide a fast swap of anonymous pages to a frontswap space and file pages to a cleancache space of the memory device based on the virtual memory capacity of the memory device,

wherein the kernel driver module provides a frontswap application programming interface (API) call and a cleancache API call, and

wherein the frontswap API call of the kernel driver module provides a hook to intercept the anonymous pages before the anonymous pages are migrated to a swap space of a secondary swap system, and instead migrates the anonymous pages to the frontswap space of the memory space.

2. The memory device of claim 1 , where the virtual memory capacity of the memory device dynamically varies by compression, deduplication, or/and error-correction of data stored in the memory device.

3. The memory device of claim 1 , wherein the memory interface is a double data rate (DDR) interface or a peripheral component interconnect express (PCIe) interface.

4. The memory device of claim 1 , wherein the frontswap API call of the kernel driver module migrates the anonymous pages to the swap space of the secondary swap system when the virtual memory capacity is full due to a compaction of the memory device.

5. A memory device comprising:

a memory interface to a host computer; and

a memory overprovisioning logic configured to provide a virtual memory capacity to a host operating system (OS),

wherein a kernel driver module of the host OS is configured to manage the virtual memory capacity of the memory device provided by the memory overprovisioning logic of the memory device and provide a fast swap of anonymous pages to a frontswap space and file pages to a cleancache space of the memory device based on the virtual memory capacity of the memory device,

wherein the kernel driver module provides a frontswap application programming interface (API) call and a cleancache API call, and

wherein the cleancache API call of the kernel driver module provides a hook to intercept the file pages before the file pages are migrated to a file system of a secondary swap system, and instead migrates the file pages to the cleancache space of the memory device.

6. The memory device of claim 5 , wherein the cleancache API call of the kernel driver module migrates the file pages to the file system of the secondary swap system when the virtual memory capacity is full due to a compaction ratio of the memory device.

7. The memory device of claim 1 , wherein the frontswap and cleancache API calls initiate a CPU memory copy and direct memory access (DMA) transfer to an interface controller.

8. The memory device of claim 1 , wherein the memory overprovisioning logic includes an embedded bitmap to tracks pages in the memory device.

9. The memory device of claim 1 , further comprising a dedicated communication channel to provide the virtual memory capacity to the host OS.

10. A method comprising:

providing a memory device comprising a memory overprovisioning logic configured to provide a virtual memory capacity to a host operating system (OS);

configuring the memory device as a block memory device over a memory interface to a host computer;

loading a kernel driver module from a kernel of the host OS during a runtime; and

providing a fast swap of anonymous pages to a frontswap space and file pages to a cleancache space of the memory device using the kernel driver module based on the virtual memory capacity of the memory device,

wherein the kernel driver module provides a frontswap application programming interface (API) call and a cleancache API call, wherein the frontswap API call of the kernel driver module provides a hook to intercept the anonymous pages before the anonymous pages are migrated to a swap space of a secondary swap system, and instead migrates the anonymous pages to the frontswap space of the memory space, and wherein the cleancache API call of the kernel driver module provides a hook to intercept the file pages before the file pages are migrated to a file system of the secondary swap system, and instead migrates the file pages to the cleancache space of the memory device.

11. The method of claim 10 , further comprising registering the memory device as a block memory device having the virtual memory capacity.

12. The method of claim 10 , wherein the kernel driver module determines to accept or reject the anonymous pages or the file pages based on the virtual memory capacity.

13. The method of claim 10 , where the virtual memory capacity of the memory device dynamically varies by compression, deduplication, or/and error-correction of data stored in the memory device.

14. The method of claim 10 , wherein the memory interface is a double data rate (DDR) interface or a peripheral component interconnect express (PCIe) interface.

15. The method of claim 10 , wherein the frontswap API call of the kernel driver module migrates the anonymous pages to the swap space of the secondary swap system and the cleancache API call of the kernel driver module migrates the file pages to the file system of the secondary swap system when the virtual memory capacity is full due to a compaction ratio of the memory device.

16. The method of claim 10 , wherein the frontswap and cleancache API calls initiate a CPU memory copy and direct memory access (DMA) transfer to an interface controller.

17. The method of claim 10 , wherein the memory overprovisioning logic includes an embedded bitmap to tracks pages in the memory device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: MALLADI, KRISHNA; GIM, JONGMIN; ZHENG, HONGZHONG
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 041708/0959 →
Continuity (2)
Provisional Application 62368775 · Jul 29, 2016
Related Publication 20180032260A1 · Feb 1, 2018
Cited By (1)
US 12,422,983