Personal tools

Difference between revisions of "Real-time Linux on RISC-V"

From iis-projects

Jump to: navigation, search
(Created page with "<!-- Real-time Linux on RISC-V --> Category:Digital Category:Computer Architecture Category:SW/HW Predictability and Security Category:HW/SW Safety and Security...")
 
Line 17: Line 17:
 
== Status: Available ==
 
== Status: Available ==
  
* Type: Semester Thesis/Master Thesis
+
* Type: Semester Thesis or Master Thesis
 
* Professor: Prof. Dr. L. Benini
 
* Professor: Prof. Dr. L. Benini
 
* Supervisors:
 
* Supervisors:
Line 24: Line 24:
  
 
= Introduction =
 
= Introduction =
 +
Linux[1] is a monolithic, modular, Unix-like, open-source general-purpose kernel running on servers, workstations, mobile devices and embedded systems.
  
Real-time systems are systems that need to guarantee certain time constraints such as for example responding within a certain time frame. This means that computations not only need to be logically correct but also the physical instant of the result computation has to meet a particular timing constraint.
+
Currently, mainline Linux is not suitable for real-time workloads which require a deterministic and predictable behavior. Many design decision rather focus on throughput. There have been various approaches trying to address problem such as RTLinux[4], Xenomai[5] and PREEMPT_RT [2]. This work will focus on PREEMPT_RT.
  
Regular general-purpose operating systems such as Linux are often not designed to ensure that real-time constraints are respected.
+
PREEMPT_RT is a set of patches for Linux to turn into a kernel that is more suitable for real-time applications. These changes try to ''minimize the amount of kernel code that is non-preemptible'' which translates directly into a more reactive system.
  
To address that problem several so called real-time operating systems have been developed in the last decades and used in several fields where the design of safety-critical systems matters (automotive and aerospace above all). Among these, Zephyr OS [1] is a promising scalable real-time operating system with small memory footprint designed for resource-constrained systems following modern security practices. It supports a lot of architectures such as ARM (Cortex series), MIPS, SPARC, AMD64, and RISC-V. The development model is very similar to the linux kernel: The kernel sources, drivers and any bootstrapping code are part of the same project giving a nice out-of-the-box experience.
 
  
ControlPULP is an open-source HW/SW platform based on PULP [2], a parallel embedded MCU implementing the RISC-V ISA. ControlPULP has been developed to serve as an integrated power controller for HPC processors [3]. In this scenario, a timely response from multiple MIMO interfaces is required to be able to track and set the operating point of the controlled system in a workload-aware manner.
+
Cheshire
 
 
Currently, we already support FreeRTOS [6] in ControlPULP as real-time operating system
 
  
 
= Project =
 
= Project =
  
The goal of this project is to port Zephyr OS to ControlPULP:
+
The goal of this project is to port PREEMPT_RT Linux to run on 64-bit RISC-V Linux.
  
 
* a
 
* a
 
* b
 
* b
 
* c
 
* c
 +
cyclitest
  
  
Line 47: Line 46:
  
 
* 15% Literature / architecture review
 
* 15% Literature / architecture review
* 65% Software layer
+
* 65% C programming
 
* 20% Evaluation
 
* 20% Evaluation
  
Line 58: Line 57:
  
 
[1] https://www.kernel.org/
 
[1] https://www.kernel.org/
 +
[2] https://wiki.linuxfoundation.org/realtime/start
 +
[3] https://lwn.net/Articles/146861/
 +
[4] https://www.yodaiken.com/papers/rtlmanifesto.pdf
 +
[5] https://source.denx.de/Xenomai/xenomai/-/wikis/home

Revision as of 18:06, 7 July 2023


Overview

Status: Available

Introduction

Linux[1] is a monolithic, modular, Unix-like, open-source general-purpose kernel running on servers, workstations, mobile devices and embedded systems.

Currently, mainline Linux is not suitable for real-time workloads which require a deterministic and predictable behavior. Many design decision rather focus on throughput. There have been various approaches trying to address problem such as RTLinux[4], Xenomai[5] and PREEMPT_RT [2]. This work will focus on PREEMPT_RT.

PREEMPT_RT is a set of patches for Linux to turn into a kernel that is more suitable for real-time applications. These changes try to minimize the amount of kernel code that is non-preemptible which translates directly into a more reactive system.


Cheshire

Project

The goal of this project is to port PREEMPT_RT Linux to run on 64-bit RISC-V Linux.

  • a
  • b
  • c

cyclitest


Character

  • 15% Literature / architecture review
  • 65% C programming
  • 20% Evaluation

Prerequisites

  • Experience with digital design in SystemVerilog as taught in VLSI I
  • Basic knowledge of operating systems
  • Knowledge of C programming language and UNIX tooling as from previous bachelor/master courses

References

[1] https://www.kernel.org/ [2] https://wiki.linuxfoundation.org/realtime/start [3] https://lwn.net/Articles/146861/ [4] https://www.yodaiken.com/papers/rtlmanifesto.pdf [5] https://source.denx.de/Xenomai/xenomai/-/wikis/home