Collection of projects for students

On this page you will find a summary of all open projects for study/bachelor and diploma theses.

Embedded Systems

Make embedded systems resilient to supply chain disruptions

Europe is leading in the field of embedded systems. However, the embedded software running the systems is highly specific with respect to the controller used. Transferring the embedded software from one controller to another or developing the embedded software for two interchangeable controllers in parallel, is a hefty effort as it requires two distinct embedded software projects. To reduce development costs, most embedded systems are designed only for one specific controller (single source). Consequently, the producer of the embedded system is solely reliant on the continuous long-term availability and affordability of the controller used. In order to ensure continuous availability, affordability and to boost the resilience through their complete life-span embedded systems must be designed for multiple controllers, what in turn enables an efficient multi-source software development with no vendor lock-in.

Want to shake up the embedded systems market?

Automatic interface matching for multi-source programming of embedded controllers

The heart of a multi-source system is an intelligent process of matching the software interfaces of different semiconductor manufacturers. As a member of the team, your task is to compare the software development kits (SDKs) from two semiconductor manufacturers with each other and to develop a generalizable matching methodology between the software interfaces. As a result, the application code developed on platform A can be ported unchanged to platform B, while ensuring correct execution with low overhead.

You can find more details in the task description.

Compatibility analysis methodology for multi-source programming of embedded controllers

The basis of a multi-source system is the compatibility of the target systems under consideration. As a member of the team, your job is to develop a fully automated tool that checks the given hardware and software of the target systems for compatibility. The result is to create a first database that shows the compatibility of at least 5 different microcontrollers with each other analyzed and evaluated.

You can find more details in the task description.

Contact: Dr. Steffen Köhler

 

Machine Learning and Heuristics

Modeling Source Code for Machine Learning

Central to ML-Methods is the way how to represent and model data, with the goal to learn meaningful features for the given task. In compilers, knowledge from analysis can be exploited to construct better models. So far, we have explored representations at different levels and modeled them using Graph Neural Network (GNN) models. Your task will be to work on new models with additional compiler-internal semantics.

Requirements: C/C++, Python
Beneficial: Machine Learning, Graph Algorithms
Related Work: [1], [2], [3]

Tools for Emerging Memory Technologies
  • Compilation for unconventional architectures:

Emerging non-volatile memory technologies have the potential to compute various logic and compute operations in place. They, however, have their own limitations. In this project, you will work on developing/extending a compiler that hides/mitigate these limitations and exploit the full potential of these novel architectures. As a target system, you will work on compute-in-memory (CIM) systems using various nonvolatile memory technologies.

Requirement(s): You should be motivated and have some C++ background (LLVM/MLIR background is preferred).

  • Simulation infrastructure for CIM systems:

To quickly characterize and understand the various tradeoffs in CIM systems (see the description of the project above), it is imperative to have simulation tools that can model them. In this project, you will work on developing a gem5-based simulation infrastructure for CIM systems (similar to the following). The tools will enable the exploration of different NVM technologies at different memory hierarchy levels. Feel free to ping me for more details.

Requirement(s): C/C++ (basic computer architecture knowledge is preferred).

  • Intelligent Data Movement in the Memory Hierarchy:
Data movement in the memory hierarchy is expensive and memory systems, generally, are blind to running applications. In this project, you will analyze the applications statically to find out which hierarchy level best suits the memory requirement of the current input program (there are tools that can be used) and place it accordingly. If done correctly, you may guarantee a 100% cache hit rate.

Contact details and further tasks description can be found here.