IP Library › Granted Patent US 9,921,747
Granted Patent B2
US 9,921,747 · App. 15/114,427 · Granted Mar 20, 2018

Unifying memory controller

Inventors: Andrew R. Wheeler (Fort Collins, CO); Boris Zuckerman (Marblehead, MA); Greg Astfalk (Parker, TX); Russ W. Herrell (Fort Collins, CO)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0604G06F3/06G06F3/0631G06F3/0638G06F3/0647G06F3/0683G06F12/0223G06F12/0802G06F13/16G06F13/1694G06F13/4068G06F2212/60Y02B60/1228Y02B60/1235
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 9,921,747
App. No.
15/114,427
Granted
Mar 20, 2018
Kind
B2
Abstract

A unifying memory controller (UMC) to send and receive data to and from a local host. The UMC also may manage data placement and retrieval by using an address mapper. The UMC may also selectively provide power to a plurality of memory locations. The UMC may also manage data placement based on a policy that can make use of a property stored in the metadata storage location. The property may be a property describing the data that is being managed. The UMC also may use its own local cache that may store copies of data managed by the circuit.

Claims (58)

1. A unifying memory controller, comprising:

a circuit to:

connect to a local host such that the circuit can send and receive data to and from the local host via a communication link; and

manage data placement and retrieval via an address mapper across a plurality of memory locations;

a metadata storage to store a property of the data managed by the circuit;

a policy engine to apply a policy to data managed by the circuit in order to determine placement and retrieval of the data between the plurality of memory locations, wherein the policy determines placement and retrieval of data based on the property about the data stored in the metadata storage; and

a cache to store copies of data managed by the circuit;

wherein the circuit is to migrate data between a fast nonvolatile memory location and a slow nonvolatile memory location; and

implementing a policy determines from stored properties that the data stored in a fast nonvolatile memory location has not been retrieved within a policy determined time frame;

wherein the circuit is to connect with at least one additional memory controller, wherein each additional connected memory controller is to manage data placement and retrieval for a plurality of additional memory locations; and

wherein the policy engine implements the policy in cooperation with an additional policy engine in the at least one additional connected memory controller to determine data placement and retrieval across the additional memory locations, wherein the data are accessed by an additionally connected local host connected to each additionally connected memory controller.

2. The unifying memory controller of claim 1 , wherein the circuit is to migrate data between a fast nonvolatile memory location, a slow nonvolatile memory location, a fast volatile memory location, and a slow volatile memory location.

3. The unifying memory controller of claim 1 , wherein the circuit is to:

migrate data stored in a number of memory locations to a smaller number of one or more memory locations resulting in unused memory locations; and

selectively provide power to a plurality of unused memory locations.

4. The unifying memory controller of claim 1 , wherein:

the policy engine is to implement a policy through the circuit that provides RAID capability using connected memory controllers and the memory locations of the connected memory controllers.

5. The unifying memory controller of claim 1 , wherein the metadata storage stores a frequency that a particular additional memory controller of the at least one additional memory controllers has accessed a data element, and the circuit is to migrate the data to memory controlled by the additional memory controller based on the frequency.

6. The unifying memory controller of claim 1 , wherein the stored properties include a tag describing the data received from the local host.

7. The unifying memory controller of claim 6 , wherein the policy is selected from a plurality of policies based on the tag.

8. The unifying memory controller of claim 1 , wherein the tag describes whether the data associated with the tag is persistent or non-persistent.

9. The unifying memory controller of claim 1 , wherein the circuit is further to manage data placement across a plurality of storage locations.

10. The unifying memory controller of claim 1 , wherein the policy engine is to store a plurality of policies and to select the policy from the plurality of policies.

11. A computing system, comprising:

a processor to execute stored instructions;

a memory that stores instructions; and

a unifying memory controller (UMC), the memory controller comprising:

a circuit to:

connect to the processor such that the circuit can send and receive data to and from the processor via a communication link; and

manage data placement and retrieval via an address mapper across a plurality of memory locations;

a metadata storage location to store a property of the data managed by the circuit;

a policy engine to apply a policy to data managed by the circuit in order to determine placement and retrieval of the data between the plurality of memory locations, wherein the policy is to determine placement and retrieval of data based on the property about the data that is stored in the metadata storage location; and

a cache to store copies of data managed by the circuit;

wherein the circuit is to migrate data stored in a number of memory locations to a smaller number of memory locations resulting in unused memory locations; and selectively provide power to a plurality of unused memory locations;

wherein the circuit is to connect with at least one additional memory controller, wherein each additional connected memory controller is to manage data placement and retrieval for a plurality of additional memory locations; and

wherein the policy engine implements the policy in cooperation with an additional policy engine in the at least one additional connected memory controller to determine data placement and retrieval across the additional memory locations, wherein the data are accessed by an additionally connected local host connected to each additionally connected memory controller.

12. The computer system of claim 11 , wherein the circuit is to migrate data between a fast nonvolatile memory location and a slow nonvolatile memory location.

13. The computer system of claim 12 , wherein the circuit is to migrate data when a policy engine implementing a policy determines from stored properties that the data stored in a fast nonvolatile memory location has not been retrieved within a policy determined time frame.

14. The system of claim 11 , wherein the metadata storage location stores a frequency that another memory controller has accessed a data element, and

the circuit is to migrate the data to memory controlled by the other memory controller based on the frequency.

15. The computing system of claim 11 , further comprising a storage comprising a plurality of storage locations, and wherein the circuit of the memory controller is further to manage data placement across the plurality of storage locations.

16. A method of data management via a unifying memory controller circuit comprising:

sending data to and from a local host via a communication link between the local host and the circuit;

storing relevant heuristic information about the data managed by the circuit, subsets of the data, or both in a metadata storage location;

storing copies of data managed by the circuit in a cache;

applying a policy to data managed by the circuit in order to determine placement of the data between a plurality of memory locations, where placement of the data comprises:

determining placement of data based on a property about the data that is stored in the metadata storage location;

managing data placement via an address mapper across a plurality of memory locations by:

determining from a stored property that data stored in a fast nonvolatile memory location has not been retrieved within a policy determined time frame;

migrating that data from a fast nonvolatile memory location to a slow nonvolatile memory location when a policy engine is to implement a policy; and

selectively providing power to a plurality of unused memory locations;

connecting the circuit to at least one additional unifying memory controller, wherein each additional connected memory controller is to manage data placement and retrieval for a plurality of additional memory locations; and

applying the policy in cooperation with an additional policy engine in the at least one additional connected memory controller to determine data placement and retrieval across the additional memory locations, wherein the data are accessed by an additionally connected local host connected to each additionally connected memory controller.

17. The method of claim 16 wherein the circuit further manages data by:

creating unused memory locations by migrating data stored in a number of memory locations to a smaller number of memory locations; and

selectively provide power to a plurality of unused memory locations.

18. The method of claim 16 , further comprising storing a frequency that another memory controller has accessed a data element, and

migrating the data to memory controlled by the other memory controller based on the frequency.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2016
From: WHEELER, ANDREW R; ZUCKERMAN, BORIS; ASTFALK, GREG; HERRELL, RUSS W
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 039266/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2016
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 039486/0040 →
Continuity (1)
Related Publication 20160342333A1 · Nov 24, 2016