IP Library Granted Patent US 10,719,238
Granted Patent B1
US 10,719,238 · App. 15/782,384 · Granted Jul 21, 2020

Memory fabric with reliability zone comprising two or more fabric attached memory endpoints

Inventors: James Espy (Andover, MA); William P. Dawkins (Lakeway, TX); Dragan Savic (Brookline, MA); Amnon Izhar (Newton, MA); Patrick J. Weiler (Northborough, MA); Michael Robillard (Shrewsbury, MA)
Assignee: EMC IP Holding Company LLC
G06F3/061G06F3/0614G06F3/0683G11C14/0045
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,719,238
App. No.
15/782,384
Granted
Jul 21, 2020
Kind
B1
Abstract

A first endpoint comprises a fabric attach point for attachment to a memory fabric, a first media controller, and a first non-volatile memory media. The memory fabric comprises a reliability zone comprising the first endpoint and at least a second endpoint. The first media controller is configured to receive, from at least one processor coupled to the first endpoint via the at least one fabric attach point, a memory fabric store command to store an object in the reliability zone. The first media controller is further configured to store the object in the first non-volatile memory media, to receive from the second endpoint a message indicating that the same object has been stored by the second endpoint, and to send to the at least one processor a single acknowledgement indicating that the at least one object has been stored in both the first and second endpoints of the reliability zone.

Claims (78)

1. A first fabric attached memory endpoint comprising:

at least one fabric attach point for attachment of the first fabric attached memory endpoint to a memory fabric;

a first media controller; and

a first non-volatile memory media;

wherein the memory fabric comprises a reliability zone, the reliability zone comprising the first fabric attached memory endpoint and at least a second fabric attached memory endpoint;

wherein the first media controller is configured:

to receive, from at least one processor coupled to the first fabric attached memory endpoint via the at least one fabric attach point, a memory fabric store command to store at least one object in the reliability zone;

to store the at least one object in the first non-volatile memory media;

to receive, from the second fabric attached memory endpoint, a message indicating that the at least one object has been stored by the second fabric attached memory endpoint; and

to send, to the at least one processor, a single acknowledgement indicating that the at least one object has been stored by both the first and second fabric attached memory endpoints of the reliability zone;

wherein the first media controller is configured to receive the memory fabric store command via a memory fabric expansion switch coupled between the first fabric attached memory endpoint and the at least one processor;

wherein the memory fabric store command is tagged with endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint, the memory fabric expansion switch being configured to multicast the memory fabric store command to the endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint tagged in the memory fabric store command; and

wherein the memory fabric store command designates the first fabric attached memory endpoint as a primary endpoint responsible for sending the single acknowledgement and designates the second fabric attached memory endpoint as a mirror endpoint responsible for sending the message to the primary endpoint responsive to storing the at least one object at the second fabric attached memory endpoint.

2. The first fabric attached memory endpoint of claim 1 wherein:

the first non-volatile memory media comprises storage class memory;

the first media controller comprises a cache, the cache comprising persistent memory; and

the first media controller is configured to send the single acknowledgement responsive to storing the at least one object in the cache prior to writing the at least one object stored in the cache to the first non-volatile memory media.

3. The first fabric attached memory endpoint of claim 2 wherein the persistent memory has access timing characteristics meeting specified dynamic random access memory (DRAM) requirements and the storage class memory has access timing characteristics slower than the specified DRAM requirements.

4. The first fabric attached memory endpoint of claim 1 wherein the memory fabric store command comprises the at least one object, and the first media controller is further configured to receive, over a physical connection between the first media controller and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

5. The first fabric attached memory endpoint of claim 4 wherein the physical connection comprises at least one of:

a non-memory fabric physical connection; and

a dedicated daisy-chain connection supported by the memory fabric.

6. The first fabric attached memory endpoint of claim 1 wherein the first media controller is configured to receive, over a messaging connection between the first media controller and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

7. The first fabric attached memory endpoint of claim 6 wherein the messaging connection comprises at least one of:

a direct-connected acknowledge line; and

a message path of the memory fabric.

8. A method comprising:

receiving, at a first fabric attached memory endpoint in a memory fabric from at least one processor, a memory fabric store command to store at least one object in a reliability zone of the memory fabric, the reliability zone comprising the first fabric attached memory endpoint and at least a second fabric attached memory endpoint;

storing the at least one object in a first non-volatile media of the first fabric attached memory endpoint;

receiving, from the second fabric attached memory endpoint, a message indicating that the at least one object has been stored by the second fabric attached memory endpoint; and

sending, to the at least one processor, a single acknowledgement indicating that the at least one object has been stored by both the first and second fabric attached memory endpoints of the reliability zone;

wherein the memory fabric store command is received via a memory fabric expansion switch coupled between the first fabric attached memory endpoint and the at least one processor;

wherein the memory fabric store command is tagged with endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint, the memory fabric expansion switch being configured to multicast the memory fabric store command to the endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint tagged in the memory fabric store command; and

wherein the memory fabric store command designates the first fabric attached memory endpoint as a primary endpoint responsible for sending the single acknowledgement and designates the second fabric attached memory endpoint as a mirror endpoint responsible for sending the message to the primary endpoint responsive to storing the at least one object at the second fabric attached memory endpoint.

9. The method of claim 8 wherein:

the first non-volatile memory media comprises storage class memory;

a first media controller of the first fabric attached memory endpoint comprises a cache, the cache comprising persistent memory; and

sending the single acknowledgement is responsive to storing the at least one object in the cache prior to writing the at least one object stored in the cache to the first non-volatile memory media.

10. The method of claim 8 , further comprising:

receiving, over a physical connection between a first media controller of the first fabric attached memory endpoint and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

11. The method of claim 8 wherein the method further comprises receiving, over a messaging connection between a first media controller of the first fabric attached memory endpoint and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

12. A computer program product comprising a non-transitory computer-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a first media controller of a first fabric attached memory endpoint cause the first fabric attached memory endpoint:

to receive, from at least one processor, a memory fabric store command to store at least one object in a reliability zone of a memory fabric, the reliability zone comprising the first fabric attached memory endpoint and at least a second fabric attached memory endpoint;

to store the at least one object in a first non-volatile media of the first fabric attached memory endpoint;

to receive, from the second fabric attached memory endpoint, a message indicating that the at least one object has been stored by the second fabric attached memory endpoint; and

to send, to the at least one processor, a single acknowledgement indicating that the at least one object has been stored by both the first and second fabric attached memory endpoints of the reliability zone;

wherein the memory fabric store command is received via a memory fabric expansion switch coupled between the first fabric attached memory endpoint and the at least one processor;

wherein the memory fabric store command is tagged with endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint, the memory fabric expansion switch being configured to multicast the memory fabric store command to the endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint tagged in the memory fabric store command; and

wherein the memory fabric store command designates the first fabric attached memory endpoint as a primary endpoint responsible for sending the single acknowledgement and designates the second fabric attached memory endpoint as a mirror endpoint responsible for sending the message to the primary endpoint responsive to storing the at least one object at the second fabric attached memory endpoint.

13. The computer program product of claim 12 wherein the memory fabric store command comprises the at least one object, and wherein the program code when executed by the first media controller of the first fabric attached memory endpoint further causes the first fabric attached memory endpoint to receive, over a physical connection between the first media controller and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

14. The computer program product of claim 13 wherein the physical connection comprises at least one of:

a non-memory fabric physical connection; and

a dedicated daisy-chain connection supported by the memory fabric.

15. The computer program product of claim 12 wherein the program code when executed by the first media controller of the first fabric attached memory endpoint further causes the first fabric attached memory endpoint to receive, over a messaging connection between the first media controller and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

16. The computer program product of claim 15 wherein the messaging connection comprises at least one of:

a direct-connected acknowledge line; and

a message path of the memory fabric.

17. A memory fabric comprising:

at least one processor comprising a media interface;

at least one memory fabric expansion switch; and

a plurality of fabric attached memory endpoints, each of the fabric attached memory endpoints having a fabric attach point for coupling to the media interface of the at least one processor via the at least one memory fabric expansion switch, two or more of the plurality of fabric attached memory endpoints being associated with a reliability zone;

the at least one processor being configured:

to send a memory fabric store command to store at least one object in the reliability zone; and

to receive, from a first one of the two or more fabric attached memory endpoints of the reliability zone, a single acknowledgement indicating that the at least one object has been stored by both the first fabric attached memory endpoint and at least a second one of the fabric attached memory endpoints of the reliability zone;

wherein the first fabric attached memory endpoint is configured to store the at least one object in a first non-volatile memory media and the second fabric attached memory endpoint is configured to store the at least one object in a second non-volatile memory media; and

wherein the first fabric attached memory endpoint is configured, prior to sending the single acknowledgement to the at least one processor, to receive a message from the second fabric attached memory endpoint indicating that the at least one object has been stored by the second fabric attached memory endpoint;

wherein the memory fabric store command is sent to the first fabric attached memory endpoint and the second fabric attached memory endpoint via the at least one memory fabric expansion switch;

wherein the memory fabric store command is tagged with endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint, the at least one memory fabric expansion switch being configured to multicast the memory fabric store command to the endpoint locations of the first fabric attached memory endpoint and the second fabric attached memory endpoint tagged in the memory fabric store command; and

wherein the memory fabric store command designates the first fabric attached memory endpoint as a primary endpoint responsible for sending the single acknowledgement and designates the second fabric attached memory endpoint as a mirror endpoint responsible for sending the message to the primary endpoint responsive to storing the at least one object at the second fabric attached memory endpoint.

18. The memory fabric of claim 17 wherein:

the first non-volatile memory media comprises storage class memory;

a first media controller of the first fabric attached memory endpoint comprises a cache, the cache comprising persistent memory; and

the first media controller is configured to send the single acknowledgement responsive to storing the at least one object in the cache prior to writing the at least one object stored in the cache to the first non-volatile memory media.

19. The memory fabric of claim 17 wherein:

the second non-volatile memory media comprises storage class memory;

a second media controller of the second fabric attached memory endpoint comprises a cache, the cache comprising persistent memory; and

the second media controller is configured to send the acknowledgment to the first fabric attached memory endpoint responsive to storing the at least one object in the cache prior to writing the at least one object stored in the cache to the second non-volatile memory media.

20. The memory fabric of claim 17 wherein a first media controller of the first fabric attached memory endpoint is configured to receive, over a messaging connection between the first media controller and a second media controller of the second fabric attached memory endpoint, the message indicating that the at least one object has been stored by the second fabric attached memory endpoint.

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 (044535/0109) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/0001 →
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 (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
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 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: ESPY, JAMES; DAWKINS, WILLIAM P.; SAVIC, DRAGAN; IZHAR, AMNON; WEILER, PATRICK J.; ROBILLARD, MICHAEL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044008/0645 →