IP Library Granted Patent US 10,235,052
Granted Patent B2
US 10,235,052 · App. 15/975,254 · Granted Mar 19, 2019

Storage system with data durability signaling for directly-addressable storage devices

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,235,052
App. No.
15/975,254
Granted
Mar 19, 2019
Kind
B2
Abstract

A storage system in one embodiment comprises at least one processor, a processor memory, an input-output controller, and a directly-addressable storage device having volatile memory and non-volatile memory. The input-output controller generates a plurality of write commands in conjunction with storage of data in the storage system, the write commands including at least a first write command comprising the data and a second write command comprising one or more interrupts. If an address of a given one of the write commands falls within a specified interrupt group window, the write command is copied to the directly-addressable storage device so as to provide at least one of the one or more interrupts to that storage device. The directly-addressable storage device responds to receipt of the interrupt by writing data from the volatile memory to the non-volatile memory and generating a corresponding additional interrupt to the processor.

Claims (38)

1. A storage system comprising:

at least one processor;

a processor memory;

an input-output controller; and

a directly-addressable storage device having volatile memory and non-volatile memory;

wherein the input-output controller generates a plurality of write commands in conjunction with storage of data in the storage system, the write commands including at least a first write command comprising the data and a second write command comprising one or more interrupts;

wherein the storage system is configured:

to determine which of first and second windows that an address of a given one of the write commands falls within;

responsive to the address falling within the first window, to write the data to the processor memory and to copy the write command to the directly-addressable storage device so as to cause the data to also be written to the volatile memory of that storage device; and

responsive to the address falling within the second window, to copy the write command to the directly-addressable storage device so as to provide at least one of the one or more interrupts to that storage device.

2. The storage system of claim 1 wherein the processor further comprises a PCIe root complex having a plurality of root ports supporting communication with the input-output controller and the directly-addressable storage device.

3. The storage system of claim 2 further comprising a PCIe switch coupled via an upstream port of the PCIe switch to a given one of the root ports of the PCIe root complex of the processor and coupled via respective downstream ports of the PCIe switch to the input-output controller and the directly-addressable storage device.

4. The storage system of claim 3 wherein the PCIe switch further comprises multicast logic configured to determine if the address of the given write command falls within a specified data group window or a specified interrupt group window and to control copying of the write command in accordance with that determination.

5. The storage system of claim 1 wherein the write commands comprise respective PCIe writes.

6. The storage system of claim 1 wherein the directly-addressable storage device comprises one or more solid-state drives.

7. The storage system of claim 1 wherein the interrupt provided to the directly-addressable storage device is interpreted by the directly-addressable storage device as a request to commit any outstanding data in the volatile memory to the non-volatile memory.

8. The storage system of claim 1 wherein the directly-addressable storage device comprises at least one programmable base address register.

9. The storage system of claim 8 wherein the directly-addressable storage device confirms that the interrupt provided to the directly-addressable storage device falls within a range of a predefined base address register prior to responding to receipt of the interrupt.

10. The storage system of claim 1 wherein the directly-addressable storage device responds to receipt of the interrupt by writing data from the volatile memory to the non-volatile memory and generating a corresponding additional interrupt to the processor, and wherein the interrupt to the processor provides an acknowledgment from the directly-addressable storage device to the processor that any outstanding data in the volatile memory has been committed to the non-volatile memory.

11. The storage system of claim 1 wherein the directly-addressable storage device responds to receipt of the interrupt by writing data from the volatile memory to the non-volatile memory and generating a corresponding additional interrupt to the processor, and wherein the interrupt to the processor comprises a modified version of the interrupt provided to the directly-addressable storage device.

12. The storage system of claim 1 wherein the directly-addressable storage device responds to receipt of the interrupt by writing data from the volatile memory to the non-volatile memory and generating a corresponding additional interrupt to the processor, and wherein the interrupt to the processor comprises a unique interrupt that is distinct from the interrupt provided to the directly-addressable storage device.

13. The storage system of claim 1 wherein the interrupts comprise respective message signaled interrupts.

14. An information processing system comprising the storage system of claim 1 and one or more additional devices that provide the data to the input-output controller.

15. A method comprising:

configuring a storage system to include at least one processor, a processor memory, an input-output controller, and a directly-addressable storage device having volatile memory and non-volatile memory;

generating in the input-output controller a plurality of write commands in conjunction with storage of data in the storage system, the write commands including at least a first write command comprising the data and a second write command comprising one or more interrupts;

determining which of first and second windows that an address of a given one of the write commands falls within;

responsive to the address falling within the first window, writing the data to the processor memory and copying the write command to the directly-addressable storage device so as to cause the data to also be written to the volatile memory of that storage device; and

responsive to the address falling within the second window, copying the write command to the directly-addressable storage device so as to provide at least one of the one or more interrupts to that storage device.

16. The method of claim 15 wherein the storage system further comprises a PCIe switch coupled via an upstream port of the PCIe switch to a root port of a PCIe root complex of the processor and coupled via respective downstream ports of the PCIe switch to the input-output controller and the directly-addressable storage device.

17. The method of claim 16 wherein the PCIe switch further comprises multicast logic configured to determine if the address of the given write command falls within a specified data group window or a specified interrupt group window and to control copying of the write command in accordance with that determination.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by a storage system comprising at least one processor, a processor memory, an input-output controller, and a directly-addressable storage device having volatile memory and non-volatile memory, causes the storage system:

to generate in the input-output controller a plurality of write commands in conjunction with storage of data in the storage system, the write commands including at least a first write command comprising the data and a second write command comprising one or more interrupts;

to determine which of first and second windows that an address of a given one of the write commands falls within;

responsive to the address falling within the first window, to write the data to the processor memory and to copy the write command to the directly-addressable storage device so as to cause the data to also be written to the volatile memory of that storage device; and

responsive to the address falling within the second window, to copy the write command to the directly-addressable storage device so as to provide at least one of the one or more interrupts to that storage device.

19. The computer program product of claim 18 wherein the storage system further comprises a PCIe switch coupled via an upstream port of the PCIe switch to a root port of a PCIe root complex of the processor and coupled via respective downstream ports of the PCIe switch to the input-output controller and the directly-addressable storage device.

20. The computer program product of claim 19 wherein the PCIe switch further comprises multicast logic configured to determine if the address of the given write command falls within a specified data group window or a specified interrupt group window and to control copying of the write command in accordance with that determination.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →