Dynamic selection of memory virtualization techniques
First Claim
1. A computer-implemented method, comprising, during execution of a first application:
- receiving, on behalf of said first application, a first memory request directed to a first virtual memory address;
translating said first virtual memory address to a corresponding first physical address according to a first address translation technique;
analyzing performance of said first application;
dynamically selecting a second address translation technique for translating virtual memory addresses to corresponding physical memory addresses on behalf of said first application; and
subsequent to said selecting a second address translation technique, receiving, on behalf of said first application, a second memory request directed to a second virtual memory address, and translating said second virtual memory address to a corresponding second physical address according to said second address translation technique;
wherein said dynamically selecting a second address translation technique is dependent, at least in part, on a user policy and on results of said analyzing; and
wherein said dynamically selecting and said translating according to said second address translation technique are performed transparently to said first application.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system may be configured to dynamically select a memory virtualization and corresponding virtual-to-physical address translation technique during execution of an application and to dynamically employ the selected technique in place of a current technique without re-initializing the application. The computer system may be configured to determine that a current address translation technique incurs a high overhead for the application'"'"'s current workload and may be configured to select a different technique dependent on various performance criteria and/or a user policy. Dynamically employing the selected technique may include reorganizing a memory, reorganizing a translation table, allocating a different block of memory to the application, changing a page or segment size, or moving to or from a page-based, segment-based, or function-based address translation technique. A selected translation technique may be dynamically employed for the application independent of a translation technique employed for a different application.
-
Citations
19 Claims
-
1. A computer-implemented method, comprising, during execution of a first application:
-
receiving, on behalf of said first application, a first memory request directed to a first virtual memory address; translating said first virtual memory address to a corresponding first physical address according to a first address translation technique; analyzing performance of said first application; dynamically selecting a second address translation technique for translating virtual memory addresses to corresponding physical memory addresses on behalf of said first application; and subsequent to said selecting a second address translation technique, receiving, on behalf of said first application, a second memory request directed to a second virtual memory address, and translating said second virtual memory address to a corresponding second physical address according to said second address translation technique; wherein said dynamically selecting a second address translation technique is dependent, at least in part, on a user policy and on results of said analyzing; and wherein said dynamically selecting and said translating according to said second address translation technique are performed transparently to said first application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system, comprising:
-
a processor configured to support a plurality of memory virtualization techniques; and a memory configured to communicate with said processor; wherein said processor is further configured to; determine a first one of said plurality of address translation techniques dependent on a predicted distribution of virtual memory locations to be accessed by a first application; translate, on behalf of said first application executing on said processor, a memory request directed to a first virtual memory address to a first physical memory address of said memory according to said first one of said plurality of memory virtualization techniques; during said executing, dynamically select a second one of said plurality of memory virtualization techniques for translating virtual addresses, on behalf of said first application, to corresponding physical addresses of said memory; during said executing and subsequent to said selecting a second one of said plurality of memory virtualization techniques, translate, on behalf of said first application, a second memory request directed to a virtual memory address to a corresponding physical memory address of said memory according to said second one of said plurality of memory virtualization techniques; wherein said dynamically selecting and said translating according to said second one of said plurality of memory virtualization techniques are performed transparently to said first application. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A processor, comprising:
-
an address translator configured to support a plurality of memory virtualization techniques; and a virtualization technique selector; wherein said address translator is configured to translate, on behalf of a first application executing on said processor, a memory request directed to a first virtual memory address to a first physical memory address according to a first memory virtualization technique; wherein said virtualization technique selector is configured to dynamically select a second memory virtualization technique for translating virtual addresses to physical addresses on behalf of said first application during said executing; wherein said first memory virtualization technique comprises translating virtual addresses to physical addresses using one or more look-up operations on a stored mapping of virtual addresses to physical addresses; wherein said second memory virtualization technique comprises translating virtual addresses to physical addresses by generating physical addresses from respective virtual addresses using a mathematical or logical function applied to the respective virtual addresses without performing a look-up operation on a stored mapping of virtual addresses to physical addresses; wherein, during said executing and subsequent to said virtualization technique selector selecting a second memory virtualization technique, said address translator is configured to translate a second memory request directed to a second virtual memory address to a second physical memory address on behalf of said first application according to said second memory virtualization technique; and wherein said dynamically selecting and said translating according to said second memory virtualization technique are performed transparently to said first application. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification