Power savings via dynamic page type selection
First Claim
1. A method of optimizing a computing system, comprising:
- receiving a plurality of performance metrics of a data access engine, the data access engine configured to assist in performing at least one memory access operation in one of a first memory module and a second memory module in the computing system, wherein the first memory module is a first type of memory device, the second memory module is a second type of memory device, and the first and second types of memory are different types of memory devices having different performance attributes;
determining, based on a first performance metric of the plurality of performance metrics, that the data access engine is underutilized according to a predefined threshold, and in response increasing the energy efficiency of the data access engine by selecting a first entry from a plurality of entries of the address translation table to reconfigure from association with the second type of memory device to association with the first type of memory device, wherein the first type of memory device is more energy efficient than the second type of memory device and wherein the selection is based on a predicted number of times a data page associated with the first entry is read from or written to, and then reconfiguring the address translation table such that the first entry in the address translation table maps a first virtual address to a first physical address corresponding to the first memory module;
determining based on a second performance metric of the plurality of performance metrics that the data access engine is over-utilized, and in response reconfiguring an address translation table such that the first entry in the address translation table re-maps the first virtual address from the first physical address corresponding to the first memory module to a second physical address corresponding to the second memory module in order to effect a change in utilization of the data access engine; and
determining, based on a third performance metric of the plurality of performance metrics, that the data access engine is over-utilized according to the predefined threshold, and in response reconfiguring the address translation table such that a second entry in the address translation table maps a second virtual address to a physical address corresponding to the second memory module.
1 Assignment
0 Petitions
Accused Products
Abstract
An operating system monitors a performance metric of a direct memory access (DMA) engine on an I/O adapter to update a translation table used during DMA operations. The translation table is used during a DMA operation to map a virtual address provided by the I/O adapter to a physical address of a data page in the memory modules. If the DMA engine is being underutilized, the operating system updates the translation table such that a virtual address maps to physical address corresponding to a memory location in a more energy efficient memory module. However, if the DMA engine is over-utilized, the operating system may update the translation table such that the data used in the DMA engine is stored in memory modules that provide quicker access times—e.g., the operating system may map virtual addresses to physical addresses in DRAM rather than phase change memory.
-
Citations
18 Claims
-
1. A method of optimizing a computing system, comprising:
-
receiving a plurality of performance metrics of a data access engine, the data access engine configured to assist in performing at least one memory access operation in one of a first memory module and a second memory module in the computing system, wherein the first memory module is a first type of memory device, the second memory module is a second type of memory device, and the first and second types of memory are different types of memory devices having different performance attributes; determining, based on a first performance metric of the plurality of performance metrics, that the data access engine is underutilized according to a predefined threshold, and in response increasing the energy efficiency of the data access engine by selecting a first entry from a plurality of entries of the address translation table to reconfigure from association with the second type of memory device to association with the first type of memory device, wherein the first type of memory device is more energy efficient than the second type of memory device and wherein the selection is based on a predicted number of times a data page associated with the first entry is read from or written to, and then reconfiguring the address translation table such that the first entry in the address translation table maps a first virtual address to a first physical address corresponding to the first memory module; determining based on a second performance metric of the plurality of performance metrics that the data access engine is over-utilized, and in response reconfiguring an address translation table such that the first entry in the address translation table re-maps the first virtual address from the first physical address corresponding to the first memory module to a second physical address corresponding to the second memory module in order to effect a change in utilization of the data access engine; and determining, based on a third performance metric of the plurality of performance metrics, that the data access engine is over-utilized according to the predefined threshold, and in response reconfiguring the address translation table such that a second entry in the address translation table maps a second virtual address to a physical address corresponding to the second memory module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of optimizing a computing system, comprising:
-
receiving a plurality of utilization rates of a data access engine, the data access engine configured to assist in performing at least one memory access operation in one of a first memory module and a second memory module in the computing system, wherein the first memory module is a first type of memory device, the second memory module is a second type of memory device, and the first and second types of memory are different types of memory devices having different performance attributes; determining, based on a first utilization rate of the plurality of utilization rates, that the data access engine is underutilized according to a predefined threshold, and in response increasing the energy efficiency of the data access engine by selecting a first entry from a plurality of entries of the address translation table to reconfigure from association with the second type of memory device to association with the first type of memory device, wherein the first type of memory device is more energy efficient than the second type of memory device and wherein the selection is based on a predicted number of times a data page associated with the first entry is read from or written to, and then reconfiguring the address translation table such that the first entry in the address translation table maps a first virtual address to a first physical address corresponding to the first memory module; based on a second utilization rate of the plurality of utilization rates, reconfiguring an address translation table such that a first entry in the table re-maps a first virtual address from a first physical address corresponding to the first memory module to a second physical address corresponding to the second memory module in order to effect a change in utilization of the data access engine; and determining, based on a third utilization rate of the plurality of utilization rates, that the data access engine is over-utilized according to the predefined threshold, and in response reconfiguring the address translation table such that a second entry in the address translation table maps a second virtual address to a physical address corresponding to the second memory module. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method of optimizing a computing system, comprising:
-
receiving a plurality of performance metrics of a data access engine, the data access engine configured to assist in performing at least one memory access operation in one of a first memory module and a second memory module in the computing system, wherein the first memory module is a first type of memory device, the second memory module is a second type of memory device, and the first and second types of memory are different types of memory devices having different performance attributes; determining, based on a first performance metric of the plurality of performance metrics, that the data access engine is underutilized according to a predefined threshold, and in response increasing the energy efficiency of the data access engine (i) selecting a first entry from a plurality of entries of an address translation table to reconfigure from association with the second type of memory device to association with the first type of memory device, wherein the first type of memory device is more energy efficient than the second type of memory device and wherein the selection is based on a predicted number of times a data page associated with the first entry is read from or written to and (ii) reconfiguring the address translation table such that the first entry in the address translation table re-maps a first virtual address from a first physical address corresponding to the first memory module to a second physical address corresponding to the second memory module in order to effect a change in utilization of the data access engine; and determining, based a second performance metric of the plurality of performance metrics, that the data access engine is over-utilized according to the predefined threshold, and in response reconfiguring the address translation table such that a second entry in the address translation table re-maps a second virtual address from a second physical address corresponding to the second memory module to a third physical address corresponding to the first memory module in order to effect a change in utilization of the data access engine.
-
Specification