IP Library › Granted Patent US 11,003,378
Granted Patent B2
US 11,003,378 · App. 16/403,181 · Granted May 11, 2021

Memory-fabric-based data-mover-enabled memory tiering system

Inventors: Shyamkumar T. Iyer (Austin, TX); William Price Dawkins (Lakeway, TX); Kurtis John Bowman (Austin, TX); Jimmy Doyle Pike (Georgetown, TX)
Assignee: Dell Products L.P.
G06F3/0647G06F3/0604G06F3/067G06F3/0659G06F9/45558G06F12/10G06F13/1668G06F13/4027G06F2009/45583G06F2212/657
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,003,378
App. No.
16/403,181
Filed
May 3, 2019
Granted
May 11, 2021
Kind
B2
Art Unit
2139
USPC
711/165
Abstract

A memory tiering system includes a data mover device coupling a memory fabric to a processing system. At each of a plurality of different times, the data mover device receives a data access request for data from a computer context provided by the processing system, retrieves the data based on a compute-context-memory-fabric mapping that maps the compute context to the first memory subsystem, and provides the data to the processing system for use with the computer context. If the data mover device determines that the data has been retrieved and provisioning for use with the compute context above a memory tiering frequency, it moves the data from the first memory subsystem to a second memory subsystem in the memory fabric that includes higher performance memory characteristics, and causes the compute-context-memory-fabric mapping to be modified to provide a modified compute-context-memory-fabric mapping that maps the compute context to the second memory subsystem.

Claims (75)

1. A memory tiering system, comprising:

a memory fabric including a plurality of memory subsystems;

a processing system that is configured to provide at least one compute context; and

a data mover device that couples the processing system to the memory fabric, wherein the data mover device is configured to:

receive, at a plurality of different first times from a first compute context provided by the processing system, a first data access request for first data at a Memory Mapped Input/Output (MMIO) space via a data mover function, wherein the MMIO space and the data mover function are allocated to the first compute context;

retrieve, at each of the plurality of different first times from a first memory subsystem that is included in the memory fabric and in response to the first data access request, the first data based on a first-compute-context-memory-fabric mapping that maps the first compute context to the first memory subsystem;

provide, at each of the plurality of different first times, the first data to the processing system for use with the first computer context; and

determine that the first data has been retrieved and provisioning for use with the first compute context above a first memory tiering frequency over the plurality of different first times and, in response:

move the first data from the first memory subsystem in the memory fabric to a second memory subsystem in the memory fabric that includes higher performance memory characteristics relative to the first memory subsystem; and

cause the first-compute-context-memory-fabric mapping to be modified to provide a modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem.

2. The system of claim 1 , wherein the data mover device is configured to:

receive, at a second time that is subsequent to the plurality of different first times and from the first compute context provided by the processing system, a second data access request for the first data;

retrieve, at the second time from the second memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on the modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem; and

provide, at the second time, the first data to the processing system for use with the first computer context.

3. The system of claim 1 , wherein the data mover device is configured to:

receive, at a plurality of different second times from a second compute context provided by the processing system, a second data access request for second data;

retrieve, at each of the plurality of different second times from a third memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on a second-compute-context-memory-fabric mapping that maps the second compute context to the third memory subsystem;

provide, at each of the plurality of different second times, the second data to the processing system for use with the second computer context; and

determine that the second data has been retrieved and provisioning for use with the second compute context below a second memory tiering frequency over the plurality of different second times and, in response:

move the second data from the third memory subsystem in the memory fabric to a fourth memory subsystem in the memory fabric that includes lower performance memory characteristics relative to the third memory subsystem; and

cause the second-compute-context-memory-fabric mapping to be modified to provide a modified second-compute-context-memory-fabric mapping that maps the second compute context to the fourth memory subsystem.

4. The system of claim 1 , further comprising:

a hypervisor subsystem that is provided by the processing system and that is coupled to the data mover device, wherein the hypervisor subsystem is configured to:

create the first-compute-context-memory-fabric mapping; and

modify the first-compute-context-memory-fabric mapping to provide the modified first-compute-context-memory-fabric mapping.

5. The system of claim 1 , wherein the first-compute-context-memory-fabric mapping maps first physical address space that defines the first memory subsystem to virtual address space that is allocated to the first compute context, and wherein the modified first-compute-context-memory-fabric mapping maps second physical address space that defines the second memory subsystem to the virtual address space that is allocated to the first compute context.

6. An Information Handling System (IHS), comprising:

a data mover processing system; and

a data mover memory system that is coupled to the data mover processing system and that includes instructions that, when executed by the data mover processing system, cause the data mover processing system to provide a data mover engine that is configured to:

receive, at a plurality of different first times from a first compute context, a first data access request for first data at a Memory Mapped Input/Output (MMIO) space via a data mover function, wherein the MMIO space and the data mover function are allocated to the first compute context;

retrieve, at each of the plurality of different first times from a first memory subsystem that is included in a memory fabric and in response to the first data access request, the first data based on a first-compute-context-memory-fabric mapping that maps the first compute context to the first memory subsystem;

provide, at each of the plurality of different first times, the first data for use with the first computer context;

determine that the first data has been retrieved and provisioning for use with the first compute context above a first memory tiering frequency over the plurality of different first times and, in response:

move the first data from the first memory subsystem in the memory fabric to a second memory subsystem in the memory fabric that includes higher performance memory characteristics relative to the first memory subsystem; and

cause the first-compute-context-memory-fabric mapping to be modified to provide a modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem.

7. The IHS of claim 6 , wherein the data mover engine is configured to:

receive, at a second time that is subsequent to the plurality of different first times and from the first compute context, a second data access request for the first data;

retrieve, at the second time from the second memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on the modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem;

provide, at the second time, the first data for use with the first computer context.

8. The IHS of claim 6 , wherein the data mover engine is configured to:

receive, at a plurality of different second times from a second compute context, a second data access request for second data;

retrieve, at each of the plurality of different second times from a third memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on a second-compute-context-memory-fabric mapping that maps the second compute context to the third memory subsystem;

provide, at each of the plurality of different second times, the second data for use with the second computer context; and

determine that the second data has been retrieved and provisioning for use with the second compute context below a second memory tiering frequency over the plurality of different second times and, in response:

move the second data from the third memory subsystem in the memory fabric to a fourth memory subsystem in the memory fabric that includes lower performance memory characteristics relative to the third memory subsystem; and

cause the second-compute-context-memory-fabric mapping to be modified to provide a modified second-compute-context-memory-fabric mapping that maps the second compute context to the fourth memory subsystem.

9. The IHS of claim 6 , wherein the first compute context is a virtual machine.

10. The IHS of claim 9 , further comprising:

a hypervisor subsystem that is coupled to the data mover processing system, wherein the hypervisor subsystem is configured to:

create the first-compute-context-memory-fabric mapping that maps the virtual machine to the first memory subsystem; and

modify the first-compute-context-memory-fabric mapping to provide the modified first-compute-context-memory-fabric mapping that maps the virtual machine to the second memory subsystem.

11. The IHS of claim 6 , wherein the first-compute-context-memory-fabric mapping maps first physical address space that defines the first memory subsystem to virtual address space that is allocated to the first compute context, and wherein the modified first-compute-context-memory-fabric mapping maps second physical address space that defines the second memory subsystem to the virtual address space that is allocated to the first compute context.

12. A method for using a data mover device to perform memory-fabric-based memory tiering, comprising:

receiving, by a data mover device at a plurality of different first times from a first compute context, a first data access request for first data at a Memory Mapped Input/Output (MMIO) space via a data mover function, wherein the MMIO space and the data mover function are allocated to the first compute context;

retrieving, by the data mover device at each of the plurality of different first times from a first memory subsystem that is included in a memory fabric and in response to the first data access request, the first data based on a first-compute-context-memory-fabric mapping that maps the first compute context to the first memory subsystem;

providing, by the data mover device at each of the plurality of different first times, the first data for use with the first computer context;

determining, by the data mover device, that the first data has been retrieved and provisioning for use with the first compute context above a first memory tiering frequency over the plurality of different first times and, in response:

moving the first data from the first memory subsystem in the memory fabric to a second memory subsystem in the memory fabric that includes higher performance memory characteristics relative to the first memory subsystem; and

causing the first-compute-context-memory-fabric mapping to be modified to provide a modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem.

13. The method of claim 12 , further comprising:

receiving, by the data mover device at a second time that is subsequent to the plurality of different first times and from the first compute context, a second data access request for the first data;

retrieving, by the data mover device at the second time from the second memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on the modified first-compute-context-memory-fabric mapping that maps the first compute context to the second memory subsystem;

providing, by the data mover device at the second time, the first data for use with the first computer context.

14. The method of claim 12 , further comprising:

receiving, by the data mover device at a plurality of different second times from a second compute context, a second data access request for second data;

retrieving, by the data mover device at each of the plurality of different second times from a third memory subsystem that is included in the memory fabric and in response to the second data access request, the second data based on a second-compute-context-memory-fabric mapping that maps the second compute context to the third memory subsystem;

providing, by the data mover device at each of the plurality of different second times, the second data for use with the second computer context; and

determining, by the data mover device, that the second data has been retrieved and provisioning for use with the second compute context below a second memory tiering frequency over the plurality of different second times and, in response:

moving the second data from the third memory subsystem in the memory fabric to a fourth memory subsystem in the memory fabric that includes lower performance memory characteristics relative to the third memory subsystem; and

causing the second-compute-context-memory-fabric mapping to be modified to provide a modified second-compute-context-memory-fabric mapping that maps the second compute context to the fourth memory subsystem.

15. The method of claim 12 , wherein the first compute context is a virtual machine.

16. The method of claim 15 , further comprising:

creating, by a hypervisor subsystem that is coupled to the data mover device, the first-compute-context-memory-fabric mapping that maps the virtual machine to the first memory subsystem; and

modifying, by a hypervisor subsystem, the first-compute-context-memory-fabric mapping to provide the modified first-compute-context-memory-fabric mapping that maps the virtual machine to the second memory subsystem.

17. The method of claim 12 , wherein the first-compute-context-memory-fabric mapping maps first physical address space that defines the first memory subsystem to virtual address space that is allocated to the first compute context, and wherein the modified first-compute-context-memory-fabric mapping maps second physical address space that defines the second memory subsystem to the virtual address space that is allocated to the first compute context.

Assignments (9)
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 (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 (053311/0169) 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
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 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 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 →
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 Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2019
From: IYER, SHYAMKUMAR T.; DAWKINS, WILLIAM PRICE; BOWMAN, KURTIS JOHN; PIKE, JIMMY DOYLE
To: DELL PRODUCTS L.P.
Reel/Frame 049077/0184 →
Continuity (1)
Related Publication 20200348874A1 · Nov 5, 2020
Cited By (1)
US 12,277,323