IP Library Granted Patent US 11,755,223
Granted Patent B2
US 11,755,223 · App. 17/037,433 · Granted Sep 12, 2023

Systems for modular hybrid storage devices

Inventors: Rajeev Tiwari (San Jose, CA); Yong Zou (San Jose, CA)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F1/263G06F3/0604G06F3/0653G06F3/0665G06F3/0673
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,755,223
App. No.
17/037,433
Granted
Sep 12, 2023
Kind
B2
Abstract

A volatile storage component operatively connected to a node, that includes a volatile storage device, a power source, and a plurality of processor cores, where, a first processor core of the plurality of processor cores is executing a volatile storage firmware, and a second processor core of the plurality of processor cores is executing a volatile storage operating system.

Claims (40)

1. A volatile storage component operatively connected to a node, comprising:

a volatile storage device (VSD) comprising a shared memory partition (SMP) and a user space partition (USP);

a volatile storage firmware (FW);

a volatile storage operating system (OS);

a direct memory access (DMA) engine configured to detect a remapped data request (RDR) that has been written to the SMP, wherein, upon detection of the RDR that has been sent by a storage module driver (SMD) of an OS external to the volatile storage component, the DMA engine sends an instruction to the VSD to complete an action specified in the RDR;

the VSD configured to perform the action specified in the RDR, wherein the SMD has received the RDR from a virtual SMD of the OS, wherein, prior to sending the RDR to the SMD, the virtual SMD has intercepted a data request (DR) that has been sent by an application executing on a user space external to the volatile storage component and remapped the DR to a USP offset to obtain the RDR, wherein the DR specifies a virtual USP associated with the USP offset; and

a plurality of processor cores, wherein:

a first processor core of the plurality of processor cores is executing the volatile storage FW, wherein the volatile storage FW sends a management request, wherein the management request specifies at least one selected from a group consisting of a storage health query for a non-volatile storage device external to the volatile storage component, an encryption request to encrypt data on the volatile storage device, and an erase request to erase the data on the volatile storage device; and

a second processor core of the plurality of processor cores is executing the volatile storage OS,

wherein the volatile storage FW executes a first process on the first processor core and the volatile storage operating system executes a second process on the second processor core, wherein the first process and the second process are processed concurrently.

2. The volatile storage component of claim 1 , wherein the VSD is partitioned into the USP and the SMP.

3. The volatile storage component of claim 2 , wherein the USP is partitioned into a plurality of virtual USPs.

4. The volatile storage component of claim 2 , wherein the volatile storage FW sends the management request to the volatile storage OS by copying data into the SMP.

5. The volatile storage component of claim 2 , wherein the node is configured to write data requests to the SMP, and wherein the volatile storage FW is configured to identify and process data requests in the SMP.

6. The volatile storage component of claim 1 , wherein a third processor core of the plurality of processor cores is executing the DMA engine.

7. The volatile storage component of claim 6 , wherein the volatile storage component is operatively connected to the non-volatile storage device, wherein the DMA engine is configured to copy data from the volatile storage device to the non-volatile storage device.

8. The volatile storage component of claim 6 , wherein the volatile storage FW executes a first process on the first processor core, the volatile storage OS executes a second process on the second processor core, and the DMA engine executes a third process on the third processor core, wherein the first process, the second process, and the third process are processed concurrently.

9. The volatile storage component of claim 1 , further comprising:

a power source, wherein the power source is a battery capable of providing a battery voltage to the volatile storage component greater than or equal to a node voltage provided, by the node, to the volatile storage component.

10. A node, comprising:

a user space, wherein an application executes on the user space;

an operating system (OS) comprising a storage module driver (SMD) and a virtual SMD, wherein the user space is external to the OS, wherein the OS is external to a hardware layer; and

the hardware layer comprising a node processor, a non-volatile storage device, and a volatile storage component, comprising:

a volatile storage firmware (FW);

a volatile storage OS;

a volatile storage device (VSD) comprising a shared memory partition (SMP) and a power source;

a user space partition (USP);

a direct memory access (DMA) engine configured to detect a remapped data request (RDR) that has been written to the SMP, wherein, upon detection of the RDR that has been sent by the SMD, the DMA engine sends an instruction to the VSD to complete an action specified in the RDR;

the VSD configured to perform the action specified in the RDR, wherein the SMD has received the RDR from the virtual SMD, wherein, prior to sending the RDR to the SMD, the virtual SMD has intercepted a data request (DR) that has been sent by the application and remapped the DR to a USP offset to obtain the RDR, wherein the DR specifies a virtual USP associated with the USP offset; and

a plurality of processor cores, wherein:

a first processor core of the plurality of processor cores is executing the volatile storage FW, wherein the volatile storage FW sends a management request, wherein the management request specifies at least one selected from a group consisting of a storage health query for the non-volatile storage device, an encryption request to encrypt data on the volatile storage device, and an erase request to erase the data on the volatile storage device; and

a second processor core of the plurality of processor cores is executing the volatile storage OS,

wherein the volatile storage FW executes a first process on the first processor core and the volatile storage OS executes a second process on the second processor core, wherein the first process and the second process are processed concurrently.

11. The node of claim 10 , wherein the VSD is partitioned into a USP and the SMP.

12. The node of claim 11 , wherein the USP is partitioned into a plurality of virtual USPs.

13. The node of claim 11 , wherein the volatile storage FW sends the management request to the volatile storage OS by copying data into the SMP.

14. The node of claim 11 , wherein the node is configured to write data requests to the SMP, and wherein the volatile storage FW is configured to identify and process data requests in the SMP.

15. The node of claim 10 , wherein a third processor core of the plurality of processor cores is executing the DMA engine.

16. The node of claim 15 , wherein the DMA engine is configured to copy data from the volatile storage device to the non-volatile storage device.

17. The node of claim 15 , wherein the volatile storage FW executes a first process on the first processor core, the volatile storage OS executes a second process on the second processor core, and the DMA engine executes a third process on the third processor core, wherein the first process, the second process, and the third process are processed concurrently.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2020
From: TIWARI, RAJEEV; ZOU, YONG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053931/0586 →