IP Library Granted Patent US 11,016,905
Granted Patent B1
US 11,016,905 · App. 16/683,095 · Granted May 25, 2021

Storage class memory access

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 11,016,905
App. No.
16/683,095
Granted
May 25, 2021
Kind
B1
Abstract

A write request is received to write byte-addressable data corresponding to a first entry of a plurality of entries in a page table, and the byte-addressable data is written in a buffer of a host memory. A read request is received to read byte-addressable data corresponding to a second entry of the plurality of entries in the page table, and a read command is sent to a device using a memory device interface to read the byte-addressable data from a Storage Class Memory (SCM) of the device. According to another aspect, control circuitry of the device uses a block device interface for receiving commands from a host to read and write data in blocks in the SCM. The control circuitry also uses a memory device interface for receiving read commands from the host to read byte-addressable data from the SCM.

Claims (58)

1. A method for interfacing with a device including a Storage Class Memory (SCM), the method comprising:

creating a page table including a plurality of entries corresponding to memory locations in the SCM of the device;

setting the plurality of entries as read-only in the page table;

receiving a write request to write byte-addressable data corresponding to a first entry of the plurality of entries;

writing the byte-addressable data for the write request in a buffer of a memory of a host;

receiving a read request to read byte-addressable data corresponding to a second entry of the plurality of entries;

sending a read command to the device to read the byte-addressable data for the read request using a memory device interface; and

redirecting the write request from the memory device interface to a block device interface for performance of the write request.

2. The method of claim 1 , further comprising changing the first entry to indicate read and write access and to point to a location in the memory of the host where the byte-addressable data for the write request was written.

3. The method of claim 1 , further comprising:

reading a block of data for the first entry from the SCM;

storing the read block of data in the buffer of the memory;

modifying the block of data in the buffer to perform the write request; and

sending a write command to the device using a block device interface to flush the modified block of data from the buffer of the memory of the host to the SCM.

4. The method of claim 3 , further comprising:

indicating that data for the first entry in the page table is unavailable for writing data in preparation for the flushing of the modified block of data to the SCM;

setting the first entry as read-only in the page table in response to the completion of the flushing of the modified block of data to the SCM; and

updating the first entry in the page table to point to a location in the SCM where the modified block of data was flushed.

5. The method of claim 1 , wherein the memory device interface accesses a Base Address Register (BAR) of the SCM to read data from the SCM.

6. The method of claim 1 , wherein the write request is performed in the buffer of the memory using an Operating System (OS) and the read command is sent to the device using the memory device interface without using the OS.

7. The method of claim 1 , further comprising communicating with the device using Peripheral Component Interconnect express (PCIe) via the memory device interface and a block device interface.

8. A device, comprising:

a Storage Class Memory (SCM) for storing data; and

control circuitry configured to:

use a block device interface for receiving write commands from a host and writing data in blocks to the SCM and for receiving read commands from the host and reading data in blocks from the SCM; and

use a memory device interface for receiving read commands from the host and reading byte-addressable data from the SCM; and

wherein the block device interface and the memory device interface access the same SCM.

9. The device of claim 8 , wherein the control circuitry is further configured to expose a Base Address Register (BAR) of the device to the host via the memory device interface.

10. The device of claim 8 , wherein the control circuitry is further configured to:

receive a write command from the host via the block device interface to write a block of data in the SCM; and

update addresses used by the memory device interface for byte-addressable data included in the block of data written in the SCM.

11. The device of claim 8 , wherein the control circuitry is further configured to block performance of a write command received via the memory device interface.

12. The device of claim 8 , wherein the control circuitry is further configured to communicate with the host using Peripheral Component Interconnect express (PCIe) via the memory device interface and the block device interface.

13. A host, comprising:

a memory for storing data; and

processor circuitry configured to:

receive a write request to write data corresponding to a first entry of a plurality of entries in a page table;

write data for the write request in a buffer of the memory using an Operating System (OS) of the host;

receive a read request to read data corresponding to a second entry of the plurality of entries in the page table; and

send a read command to a device using a memory device interface without using the OS to read the data for the read request from a Storage Class Memory (SCM) of the device.

14. The host of claim 13 , wherein the processor circuitry is further configured to change the first entry in the page table to indicate read and write access and to point to a location in the memory where data for the write request was written.

15. The host of claim 13 , wherein the processor circuitry is further configured to:

read a block of data for the first entry from the SCM;

store the read block of data in the buffer of the memory;

modify the block of data in the buffer to perform the write request; and

send a write command to the device using a block device interface to flush the modified block of data from the buffer of the memory to the SCM.

16. The host of claim 13 , wherein the processor circuitry is further configured to:

indicate that the first entry in the page table is unavailable for writing data in response to preparing to flush the modified block of data to the SCM;

set the first entry as read-only in the page table in response to the completion of the flushing of the modified block of data to the SCM; and

update the first entry in the page table to point to a location in the SCM where the modified block of data was flushed.

17. The host of claim 13 , wherein the processor circuitry is further configured to redirect the write request from the memory device interface to a block device interface for performance of the write request.

18. The host of claim 13 , wherein the memory device interface accesses a Base Address Register (BAR) of the SCM to read data from the SCM.

19. A device, comprising:

a Storage Class Memory (SCM) for storing data; and

control circuitry configured to:

use a block device interface for receiving write commands from a host to write data in blocks to the SCM and for receiving read commands from the host to read data in blocks from the SCM;

use a memory device interface for receiving read commands from the host to read byte-addressable data from the SCM; and

block performance of a write command received via the memory device interface.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2019
From: MANZANARES, ADAM; GUYOT, CYRIL
To: WESTERN DIGITAL TECHNOLOGIES, INC
Reel/Frame 051001/0785 →