As memory technologies rapidly advance, system software and programming models must catch up at the software level for enabling energy-efficient systems. The project Memento sets out to advance the current state of the art in this regard by exploiting energy-efficient storage placement strategies for disruptive memory systems.
The advent of novel memory technologies has brought about a shift of fundamental design principles in computer architecture:
whereas previously, the characteristics of state-of-the-art memory resources were sufficiently similar to allow for a high degree of abstraction from a programmer’s and system designer’s perspective, those abstractions lack the expressive power to capture the current diversification in memory technologies and characteristics.
In view of the societal importance of economic and ecologic concerns in the realm of computing technology, it is crucial to leverage each memory technology to its fullest potential to meet both performance and energy efficiency objectives.
New memory technologies such as byte-addressable non-volatile memory (NVM), high-bandwidth memory (HBM), and Graphics DDR memory (GDDR) are increasingly being deployed as complementing memory alongside traditional main memory resources.
However, systems software and programming models are yet to catch up with this rapid transformation on the hardware plane.
Established resource abstractions largely hide the unique characteristics (e.g., persistence guarantees, low power demand) of disruptive memory technologies, precluding optimisation strategies that involve proactive reasoning about placement of allocated memory partitions and the resulting impact on performance and energy consumption.
The Memento project proposal addresses the shortcomings of the current state of the art with methods for analysing both program code at development time, its operational characteristics at runtime, as well as characteristics of memory resources at system setup time.
With the goal of improving overall energy efficiency, the proposed Memento notation establishes a format for facilitating the exchange, interpretation, and continuous refinement of analysis results.
This information is complemented by a programming interface that offers explicit controls on memory placement requirements.
Both sources of information feed into a Memory Governor implemented at the operating system level, which performs strategic memory placement decisions and purposefully reduces the system’s energy demand.