IP Library Granted Patent US 12,386,765
Granted Patent B2
US 12,386,765 · App. 17/828,562 · Granted Aug 12, 2025

Method and system for a disaggregated persistent memory system using persistent memory servers

Inventor: Adrian Michaud (Carlisle, MA)
Assignee: DELL PRODUCTS L.P.
G06F13/28G06F2213/28
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 12,386,765
App. No.
17/828,562
Filed
May 31, 2022
Granted
Aug 12, 2025
Kind
B2
Art Unit
2184
USPC
710/22
Abstract

A system for managing data includes a client device, a remote direct memory access (RDMA) fabric network, and a persistent memory (PMEM) system comprising a plurality of PMEM servers, wherein a RDMA fabric device of the RDMA fabric is programmed to: obtain a RDMA request, associated with the data, from the client device, wherein the RDMA request specifies a PMEM address of a PMEM region, identify a PMEM server of the plurality of PMEM servers based on the PMEM address, and access the PMEM region using the PMEM server to service the RDMA request.

Claims (100)

1. A system for managing data, comprising:

a client device, comprising:

a virtual memory address space;

a virtual memory manager managing the virtual memory address space; and

a networking interface connected to a remote direct memory access (RDMA) fabric device of a plurality of RDMA fabric devices;

a RDMA fabric network comprising the plurality of RDMA fabric devices; and

a persistent memory (PMEM) system comprising a plurality of PMEM servers,

wherein the plurality of PMEM servers comprises a PMEM server,

wherein the PMEM server comprises a PMEM region,

wherein the PMEM region corresponds to a portion of the virtual memory address space, and

wherein the PMEM server further comprises:

a first processor socket comprising a first processor core and a networking interface,

a second processor socket comprising a second processor core,

a plurality of PMEM devices, and

a peripheral component interconnect express (PCIe) device,

wherein the RDMA fabric device of the plurality of RDMA fabric devices is programmed to:

obtain a RDMA request, associated with data, from the client device, wherein the RDMA request specifies a PMEM address of the PMEM region, wherein the PMEM region comprises the plurality of PMEM devices;

identify a PMEM server of the plurality of PMEM servers based on the PMEM address; and

access, without the use of the first processor core or the second processor core, the PMEM region of the PMEM server using the networking interface, the PCIe device, and an interconnect between the first processor socket and the second processor socket to service the RDMA request, and wherein the PMEM address corresponds to persistent memory in the second processor socket,

wherein the RDMA fabric device operates in a non-blocking manner relative to other RDMA fabric devices of the plurality of RDMA fabric devices, and

wherein the non-blocking manner enables the RDMA fabric device to not require the use of any of the other RDMA fabric devices to service the RDMA request.

2. The system of claim 1 ,

wherein the PMEM server further comprises cache, and

wherein accessing the PMEM region comprises utilizing the cache to access the data stored in the PMEM region.

3. The system of claim 1 , wherein the RDMA fabric device is further programmed to:

obtain a second RDMA request from the client device, wherein the second RDMA request specifies a second PMEM address of a second PMEM region;

identify a second PMEM server of the plurality of PMEM servers; and

access the second PMEM region using the second PMEM server to service the second RDMA request.

4. The system of claim 1 ,

wherein the RDMA request is a write request, and

wherein servicing the RDMA request comprises writing the data to the PMEM address of the PMEM region.

5. The system of claim 1 ,

wherein the RDMA request is a read request, and

wherein servicing the RDMA request comprises obtaining a copy of the data stored in the PMEM address of the PMEM region.

6. The system of claim 1 , wherein the client device further comprises:

an application,

wherein the virtual memory manager is programmed to: obtain an application request from the application;

identify the PMEM address in the PMEM region based on the application request and using the virtual memory address space; and

generate the RDMA request using the PMEM address and the application request.

7. The system of claim 1 , wherein the networking interface is a RDMA network interface controller (RNIC).

8. A method for managing storage of data, comprising:

obtaining, by a remote direct memory access (RDMA) fabric device of a plurality of RDMA fabric devices, a RDMA request, associated with data, from a client device,

wherein the RDMA request specifies a persistent memory (PMEM) address of a PMEM region,

wherein the client device comprises:

a virtual memory address space;

a virtual memory manager managing the virtual memory address space; and

a networking interface connected to the RDMA fabric device;

identifying a PMEM server of a plurality of PMEM servers based on the PMEM address,

wherein the PMEM server comprises:

a first processor socket comprising a first processor core and a networking interface;

a second processor socket comprising a second processor core; and

the PMEM region comprising a plurality of PMEM devices,

wherein the PMEM region corresponds to a portion of the virtual memory address space, and

a peripheral component interconnect express (PCIe) device; and

accessing, without the use of the first processor core or the second processor core, the PMEM region using the networking interface, the PCIe device, and an interconnect between the first processor socket and the second processor socket to service the RDMA request,

wherein the PMEM address corresponds to persistent memory in the second processor socket,

wherein a RDMA fabric network is operatively connected to the client device and to the PMEM server,

wherein the RDMA fabric network comprises the plurality of RDMA fabric devices,

wherein the RDMA fabric device operates in a non-blocking manner relative to other RDMA fabric devices of the plurality of RDMA fabric devices, and

wherein the non-blocking manner enables the RDMA fabric device to not require the use of any of the other RDMA fabric devices to service the RDMA request.

9. The method of claim 8 , further comprising:

obtaining a second RDMA request from the client device, wherein the second RDMA request specifies a second PMEM address of a second PMEM region;

identifying a second PMEM server of the plurality of PMEM servers; and

accessing the second PMEM region using the second PMEM server to service the second RDMA request.

10. The method of claim 8 ,

wherein the RDMA request is a write request, and

wherein servicing the RDMA request comprises writing the data to the PMEM address of the PMEM region.

11. The method of claim 8 ,

wherein the RDMA request is a read request, and

wherein servicing the RDMA request comprises obtaining a copy of the data stored in the PMEM address of the PMEM region.

12. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing data, comprising:

obtaining, by a remote direct memory access (RDMA) fabric device of a plurality of RDMA fabric devices, a RDMA request, associated with data, from a client device,

wherein the RDMA request specifies a persistent memory (PMEM) address of a PMEM region,

wherein the client device comprises:

a virtual memory address space;

a virtual memory manager managing the virtual memory address space; and

a networking interface connected to the RDMA fabric device;

identifying a PMEM server of a plurality of PMEM servers based on the PMEM address,

wherein the PMEM server comprises:

a first processor socket comprising a first processor core and a networking interface;

a second processor socket comprising a second processor core;

the PMEM region comprising a plurality of PMEM devices, and

a peripheral component interconnect express (PCIe) device,

wherein the PMEM region corresponds to a portion of the virtual memory address space; and

accessing, without the use of the first processor core or the second processor core, the PMEM region using the networking interface, the PCIe device, and an interconnect between the first processor socket and the second processor socket to service the RDMA request,

wherein the PMEM address corresponds to persistent memory in the second processor socket,

wherein a RDMA fabric network is operatively connected to the client device and to the PMEM server,

wherein the RDMA fabric network comprises the plurality of RDMA fabric devices,

wherein the RDMA fabric device operates in a non-blocking manner relative to other RDMA fabric devices of the plurality of RDMA fabric devices, and

wherein the non-blocking manner enables the RDMA fabric device to not require the use of any of the other RDMA fabric devices to service the RDMA request.

13. The non-transitory computer readable medium of claim 12 , further comprising:

obtaining a second RDMA request from the client device, wherein the second RDMA request specifies a second PMEM address of a second PMEM region;

identifying a second PMEM server of the plurality of PMEM servers; and

accessing the second PMEM region using the second PMEM server to service the second RDMA request.

14. The non-transitory computer readable medium of claim 12 ,

wherein the RDMA request is a write request, and

wherein servicing the RDMA request comprises writing the data to the PMEM address of the PMEM region.

15. The non-transitory computer readable medium of claim 12 ,

wherein the RDMA request is a read request, and

wherein servicing the RDMA request comprises obtaining a copy of the data stored in the PMEM address of the PMEM region.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: MICHAUD, ADRIAN
To: DELL PRODUCTS L.P.
Reel/Frame 060365/0311 →
Continuity (1)
Related Publication 20230385213A1 · Nov 30, 2023
References Cited (24)
US 9405566B2 · Chawla · 2016 [cited by examiner]
US 10244069B1 · Michaud · 2019 [cited by examiner]
US 10817447B2 · Vakharwala · 2020 [cited by examiner]
US 11451476B2 · Shalev · 2022 [cited by examiner]
US 11656916B2 · Kakaiya · 2023 [cited by examiner]
US 11784990B2 · Kida · 2023 [cited by examiner]
US 20160267052A1 · Metzler · 2016 [cited by examiner]
US 20160299702A1 · Chawla · 2016 [cited by examiner]
US 20170187629A1 · Shalev · 2017 [cited by examiner]
US 20180137069A1 · Vakharwala · 2018 [cited by examiner]
US 20190363989A1 · Shalev · 2019 [cited by examiner]
US 20200065297A1 · Taylor · 2020 [cited by examiner]
US 20200218684A1 · Sen · 2020 [cited by examiner]
US 20200401404A1 · Robillard · 2020 [cited by examiner]
US 20210064489A1 · Robillard · 2021 [cited by examiner]
US 20210132870A1 · Bono · 2021 [cited by examiner]
US 20220100581A1 · Lal · 2022 [cited by examiner]
US 20220103536A1 · Kida · 2022 [cited by examiner]
US 20230029380A1 · Hyatt · 2023 [cited by examiner]
US 20230231811A1 · Dalal · 2023 [cited by examiner]
US 20230251912A1 · Kakaiya · 2023 [cited by examiner]
US 20230396599A1 · Kida · 2023 [cited by examiner]
US 20240028530A1 · Ki · 2024 [cited by examiner]
US 20240236058A1 · Kida · 2024 [cited by examiner]