Memory controller for non-homogenous memory system
First Claim
1. A controller, comprising:
- a first memory interface adapted to be coupled to one or more first memory devices wherein the first memory devices comprise volatile memory devices;
a second memory interface adapted to be coupled to one or more second memory devices wherein the second memory devices comprise non-volatile memory devices; 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 at least some memory transactions having a predefined second characteristic to the second memory interface, wherein the second characteristic comprises a usage characteristic selected from the group consisting of a read-mostly characteristic and read-only characteristic; and
wherein the usage characteristic of at least some memory transactions is updated during operation.
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.
192 Citations
31 Claims
-
1. A controller, comprising:
-
a first memory interface adapted to be coupled to one or more first memory devices wherein the first memory devices comprise volatile memory devices; a second memory interface adapted to be coupled to one or more second memory devices wherein the second memory devices comprise non-volatile memory devices; 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 at least some memory transactions having a predefined second characteristic to the second memory interface, wherein the second characteristic comprises a usage characteristic selected from the group consisting of a read-mostly characteristic and read-only characteristic; and
wherein the usage characteristic of at least some memory transactions is updated during operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A controller, comprising:
-
first interface means for coupling the controller to one or more first memory devices wherein the first memory devices comprise volatile memory devices; second interface means for coupling the controller to one or more second memory devices wherein the second memory devices comprise non-volatile memory devices; 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 means and for directing at least some memory transactions having a predefined second characteristic to the second memory interface means, wherein the second characteristic comprises a usage characteristic selected from the group consisting of a read-mostly characteristic and read-only characteristic, and wherein the usage characteristic of at least some memory transactions is updated during operation.
-
-
15. A 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 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 interface means and to direct memory transactions having a predefined second characteristic to the second interface means; 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.
-
-
23. 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 (24, 25, 26, 27, 28, 29, 30, 31)
-
Specification