Memory controller for non-homogeneous memory system
First Claim
1. A controller, comprising:
- a first memory interface adapted to be coupled to one or more first memory devices of a first memory type having a first set of attributes;
a second memory interface adapted to be coupled to one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute; and
interface logic coupled to the first and second interfaces and configured to direct memory transactions having a predefined first characteristic to the first memory interface and to direct memory transactions having a predefined second characteristic to the second memory interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory controller includes a first memory interface adapted to be coupled to one or more first memory devices of a first memory type having a first set of attributes, and a second memory interface adapted to be coupled to one or more second memory devices of a second memory type having a second set of attributes. The first and second sets of attributes have at least one differing attribute. The controller also includes interface logic configured to direct memory transactions having a predefined first characteristic to the first memory interface and to direct memory transactions having a predefined second characteristic to the second memory interface. Pages having a usage characteristic of large volumes of write operations may be mapped to the one or more first memory devices, while pages having a read-only or read-mostly usage characteristic may be mapped to the one or more second memory devices.
224 Citations
32 Claims
-
1. A controller, comprising:
-
a first memory interface adapted to be coupled to one or more first memory devices of a first memory type having a first set of attributes;
a second memory interface adapted to be coupled to one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute; and
interface logic coupled to the first and second interfaces and configured to direct memory transactions having a predefined first characteristic to the first memory interface and to direct memory transactions having a predefined second characteristic to the second memory interface. - View Dependent Claims (2, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
- 3. The controller of clam 2, wherein the second memory devices have a limited write operation endurance.
-
15. The system, comprising:
-
a first memory interface adapted to be coupled to one or more first memory devices of a first memory type having a first set of attributes;
a second memory interface adapted to be coupled to one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute;
interface logic coupled to the first and second interfaces and configured to direct memory transactions having a predefined first characteristic to the first memory interface and to direct memory transactions having a predefined second characteristic to the second memory interface; and
a processor having virtual memory logic for mapping virtual memory addresses into physical memory addresses and page logic for assigning physical memory addresses to virtual memory addresses, wherein the page logic is configured to assign physical memory addresses in the one or more first memory devices to virtual memory addresses associated with a first usage characteristic, and to assign physical memory addresses in the one or more second memory devices to virtual memory addresses associated with a second usage characteristic. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method of managing memory in a non-homogeneous memory system, comprising:
-
establishing a plurality of page table entries, each entry in the plurality of page table entries mapping a virtual memory page address to a physical memory page address, each said entry including a usage field identifying a respective portion of main memory in which the physical memory page address is located, wherein the main memory includes at least two distinct portions, including a first portion implemented with one or more first memory devices of a first memory type having a first set of attributes and a second portion implemented with one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute;
receiving a memory transaction request;
translating a virtual address of a page associated with the memory transaction request into a physical address in accordance with a corresponding page table entry of the plurality of page table entries, the physical address comprising a physical address in a respective portion of main memory;
directing the memory transaction to the physical address in the respective portion of main memory. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A controller, comprising:
-
first interface means for coupling the controller to one or more first memory devices of a first memory type having a first set of attributes;
second interface means for coupling the controller to one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute; and
logic means coupled to the first and second interface means for directing memory transactions having a predefined first characteristic to the first memory interface and for directing memory transactions having a predefined second characteristic to the second memory interface.
-
-
32. The system, comprising:
-
first interface means for coupling to one or more first memory devices of a first memory type having a first set of attributes;
second interface means for coupling to one or more second memory devices of a second memory type having a second set of attributes, wherein the first and second sets of attributes have at least one differing attribute;
logic means coupled to the first and second interface means for directing memory transactions having a predefined first characteristic to the first memory interface and to direct memory transactions having a predefined second characteristic to the second memory interface; and
virtual memory means for mapping virtual memory addresses into physical memory addresses and page means for assigning physical memory addresses to virtual memory addresses, wherein the page means assigned physical memory addresses in the one or more first memory devices to virtual memory addresses associated with a first usage characteristic, and assigns physical memory addresses in the one or more second memory devices to virtual memory addresses associated with a second usage characteristic.
-
Specification