In March 2021, the Senate of the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) established the Priority Program “Disruptive Memory Technologies” (SPP 2377). The program is designed to run for six years.
The call for project proposals (PDF) for the first three-year funding period has been published on June 11th, 2021. Final decisions on the list of funded projects have been made in May 2022. The kick-off meeting took place in Dresden on September 21st to 22nd, 2022.
The call for the second three-year funding period has been published on November 29th, 2024. Follow-up proposals as well as new proposals can be submitted until March 5th, 2025.
Motivation
Ever since pioneers like Konrad Zuse and John von Neumann laid the foundation for today’s computer architectures, memory has been a central component in every system. The hardware technology of memories has evolved over the decades, leading to greater capacities and higher speeds, but essential properties of the interface between hardware and software have remained the same: Main memories were usually volatile, passive and largely homogeneous. These typical properties are now so firmly anchored in the expectations of software developers that they manifest in their products.
We are currently observing a wave of innovations in the field of memory that nullify these assumptions and, in this sense, are disruptive for the entire software industry and various sub-domains of computer science. For example, current server systems are operating with a multitude of heterogeneous memory types. In addition to ordinary DRAM, they can access extremely fast “high-bandwidth memory” and CXL-attached memory that can be shared with accelerators or even with other servers. An increasing number of embedded computer systems are being equipped with “non-volatile memories”, e.g. on the basis of FRAM technology. Intensive research and development is also being done on “in-memory” and “near-memory” computing approaches, which abandon the traditional Von Neumann architecture. They allow a large number of parallel operations on data objects in or close to the memory with an enormous potential for performance improvements.
Overall, these and other ongoing innovations in main memory technology promise various improvements for all computer systems, for example lower energy consumption, higher processing power, more reliability, and simplifications and thus cost reductions. However, it is largely unclear how to make use of all these new possibilities for existing and future software and thus overall systems.
Goals
The aim of this priority program is therefore to explore the potentials of ongoing developments in the field of main memory technologies and architectures. Despite the disruptive nature of these technologies, systems software and applications shall be enabled to fully exploit them. In order to master disruptive memory technologies and their impact on the overall memory hierarchy, research efforts are required on all levels of the classic system software stack, for example:
- Computer Architecture (Technical Computer Science): Innovative architectures, for example sensor nodes with fully-persistent state; Improving/adapting existing architectures, for example, issues of volatile and non-volatile memory co-existence; Instruction set extensions and memory management units
- Operating Systems: Software abstractions for new types of memory, including disaggregated on-demand memory from shared pools; Integration into the memory hierarchy; Fine-grained isolation and sharing sharing of persistent objects; Synchronization mechanisms and memory transactions; Systems that never reboot; Removal of “persistent” faults or bugs; models and strategies for thread and data placement in a world of changing memory technologies
- Algorithms / Data Structures: Dealing with heterogeneity (high/low bandwidth, different read/write performance); Lightweight transactions on data structures by making use of in-/near-memory computing
- Databases: Optimized usage of different memory types, for example, index structures in persistent memory or optimized query execution
- Languages / Compilers/ Software Engineering: Support for In/Near-Memory Computing; Evolution of persistent state; Extended type systems and other models for novel classes of memory; Conversion of legacy software; Potential bugs related to the new technology
The projects and, thus, addressed research questions are expected to be evolutionary (improving existing systems in a compatible manner), disruptive (making use of novel memory technology for new and potentially incompatible features), or visionary (rethinking systems completely). Cross-project collaboration during the runtime of the program will be encouraged for mutual benefit.
Getting in Touch
If you have any questions about this priority program, don’t hesitate to contact the coordinator Olaf Spinczyk.