IP Library › Granted Patent US 9,921,972
Granted Patent B2
US 9,921,972 · App. 15/281,383 · Granted Mar 20, 2018

Method and apparatus for implementing a heterogeneous memory subsystem

Inventors: Christopher B. Wilkerson (Portland, OR); Alaa R. Alameldeen (Hillsboro, OR); Zeshan A. Chishti (Hillsboro, OR); Jaewoong Sim (Atlanta, GA)
Assignee: Intel Corporation
G06F12/122G06F3/06G06F3/061G06F3/0644G06F3/0647G06F3/0673G06F12/0893G11C7/1072G06F2212/1016
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,972
App. No.
15/281,383
Granted
Mar 20, 2018
Kind
B2
Abstract

An apparatus and method for implementing a heterogeneous memory subsystem is described. For example, one embodiment of a processor comprises: memory mapping logic to subdivide a system memory space into a plurality of memory chunks and to map the memory chunks across a first memory and a second memory, the first memory having a first set of memory access characteristics and the second memory having a second set of memory access characteristics different from the first set of memory access characteristics; and dynamic remapping logic to swap memory chunks between the first and second memories based, at least in part, on a detected frequency with which the memory chunks are accessed.

Claims (27)

1. A processor comprising:

memory mapping circuitry to map a first type of memory and a second type of memory as a single physical address space comprising a plurality of memory chunks, the first type of memory having a first set of memory access characteristics and the second type of memory having a second set of memory access characteristics different from the first set of memory access characteristics; and

dynamic remapping circuitry to

dynamically update the memory mapping circuitry to cause one or more memory chunks to be swapped between the first and second types of memory based, at least in part, on a detected frequency with which the memory chunks are accessed; and

perform chunk-restricted remapping in which a particular chunk is only permitted to be stored in one or more specific regions within the first type of memory and one or more specific regions in the second type of memory.

2. The processor as in claim 1 wherein the first set of memory access characteristics comprise higher performance characteristics than the second set of memory access characteristics and wherein the dynamic remapping circuitry is to allocate memory chunks to the first memory which are accessed relatively more frequently than the memory chunks allocated the second memory.

3. The processor as in claim 2 wherein the first and second sets of memory access characteristics include a memory access latency value.

4. The processor as in claim 2 wherein the first and second sets of memory access characteristics include a memory access bandwidth.

5. The processor as in claim 1 wherein the first memory and the second memory are both dynamic random access (DRAM) memory.

6. The processor as in claim 1 wherein the first memory is on a common die with the processor and the second memory is off-die.

7. The processor as in claim 1 wherein each memory chunk comprises a 2 KB region of memory.

8. The processor as in claim 1 , wherein each memory chunk is associated with a corresponding counter to track the frequency at which each memory chunk is being accessed.

9. The processor as in claim 1 wherein the memory mapping circuitry comprises a chunk remapping table (CRT), wherein each entry in the CRT is to specify one or more regions within the fast memory and one or more regions in the slow memory.

10. The processor as in claim 9 wherein the memory mapping circuitry comprises a chunk remapping cache for caching frequently accessed chunk mappings.

11. The processor as in claim 10 further comprising:

at least one competing counter to be incremented when a first memory chunk within an entry is accessed and to be decremented when a second chunk within the entry is accessed, wherein the dynamic remapping circuitry determines whether to swap the first chunk with the second chunk based on a current value of the competing counter.

12. A method comprising:

mapping a first type of memory and a second type of memory as a single physical address space comprising a plurality of memory chunks, the first type of memory having a first set of memory access characteristics and the second type of memory having a second set of memory access characteristics different from the first set of memory access characteristics; and

dynamically updating a memory mapping to cause one or more memory chunks to be swapped between the first and second types of memory based, at least in part, on a detected frequency with which the memory chunks are accessed; and

performing chunk-restricted remapping in which a particular chunk is only permitted to be stored in one or more specific regions within the first type of memory and one or more specific regions in the second type of memory.

13. The method as in claim 12 wherein the first set of memory access characteristics comprise higher performance characteristics than the second set of memory access characteristics and wherein the dynamic remapping is performed to allocate memory chunks to the first memory which are accessed relatively more frequently than the memory chunks allocated the second memory.

14. The method as in claim 13 wherein the first and second sets of memory access characteristics include a memory access latency value.

15. The method as in claim 13 wherein the first and second sets of memory access characteristics include a memory access bandwidth.

16. The method as in claim 12 wherein the first memory and the second memory are both dynamic random access (DRAM) memory.

17. The method as in claim 12 wherein the first memory is on a common die with the processor and the second memory is off-die.

18. The method as in claim 12 wherein each memory chunk comprises a 2 KB region of memory.

19. The method as in claim 12 wherein each memory chunk is associated with a corresponding counter to track the frequency at which each memory chunk is being accessed.

Continuity (2)
Continuation 14228856 · Mar 28, 2014
Related Publication 20170017580A1 · Jan 19, 2017