Hardware support for superpage coalescing
First Claim
1. A method of assigning virtual memory to physical memory in a data processing system, comprising the steps of:
- allocating a set of physical memory pages of the data processing system for a new virtual superpage mapping;
instructing a memory controller of the data processing system to move a plurality of virtual memory pages corresponding to an old page mapping to the set of physical memory pages corresponding to the new virtual superpage mapping; and
accessing at least one of the virtual memory pages using the new virtual superpage mapping while the memory controller is copying old physical memory pages to new physical memory pages.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of assigning virtual memory to physical memory in a data processing system allocates a set of contiguous physical memory pages for a new page mapping, instructs the memory controller to move the virtual memory pages according to the new page mapping, and then allows access to the virtual memory pages using the new page mapping while the memory controller is still copying the virtual memory pages to the set of physical memory pages. The memory controller can use a mapping table which temporarily stores entries of the old and new page addresses, and releases the entries as copying for each entry is completed. The translation lookaside buffer (TLB) entries in the processor cores are updated for the new page addresses prior to completion of copying of the memory pages by the memory controller. The invention can be extended to non-uniform memory array (NUMA) systems. For systems with cache memory, any cache entry which is affected by the page move can be updated by modifying its address tag according to the new page mapping. This tag modification may be limited to cache entries in a dirty coherency state. The cache can further relocate a cache entry based on a changed congruence class for any modified address tag.
79 Citations
23 Claims
-
1. A method of assigning virtual memory to physical memory in a data processing system, comprising the steps of:
-
allocating a set of physical memory pages of the data processing system for a new virtual superpage mapping;
instructing a memory controller of the data processing system to move a plurality of virtual memory pages corresponding to an old page mapping to the set of physical memory pages corresponding to the new virtual superpage mapping; and
accessing at least one of the virtual memory pages using the new virtual superpage mapping while the memory controller is copying old physical memory pages to new physical memory pages. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A memory controller comprising:
-
an input for receiving page remapping instructions;
a mapping table which temporarily stores entries of old page addresses and corresponding new page addresses associated with the page remapping instructions; and
a memory access device which directs the copying of memory pages from the old page addresses to the new page addresses and releases the entries in said mapping table as copying for each entry is completed. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
a processing unit;
an interconnect bus connected to said processing unit;
a memory array; and
a memory controller connected to said interconnect bus and said memory array, wherein said memory controller copies memory pages from old page addresses to new page addresses while said processing unit carries out program instructions using the new page addresses. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A cache memory for a processing unit, comprising:
-
a data array which stores values associated with respective locations in system memory;
a tag array which stores address tags corresponding to the values in said data array;
a cache controller which receives cache instructions and accesses said data array and said tag array to carry out read and write operations; and
a state machine which modifies an address tag for a cache entry based on a new memory mapping for an associated memory location of the cache entry. - View Dependent Claims (22, 23)
-
Specification