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 11/06/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.
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 processors allow the use of non-volatile main memory modules with a low price and very high capacity. An increasing number of embedded computer systems is also being equipped with non-volatile memories, e.g. on the basis of FRAM technology. In the area of high-performance computing, there are platforms with hybrid memories that combine extremely fast “high-bandwidth memories” with classic memory modules. 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, how to make use of all these new possibilities for existing and future software and thus overall systems, is largely unclear.
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; 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
- Algorithms / Data Structures: Dealing with heterogeneity (high/low bandwidth, different read/write performance); Lightweight transactions on data structures
- 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 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.