dc.description.abstract | This thesis presents a Time Management Unit (TMU) that provides assistance to the
scheduler and the interrupt handling of a real-time operation system. The unit provides
functionality for monitoring task execution time and a mechanism for signalling when a
task depletes its resources. This applies to both regular tasks and the handling of sporadic
events. By putting the TMU inside a processor core, it has a more predictable impact on
the overhead related to task switching.
The implemented TMU is tested as a stand-alone unit with a hardware testbench,
and then integrated into the OpenRISC 1000 based OR1200 processor as special purpose
registers. The behaviour of OR1200 is verified through hardware simulation, using
compiled software as input. The Or1ksim instruction-set simulator is modified to include
the TMU functionality, which provides a reference point for the behaviour of the altered
processor.
The real-time operating system FreeRTOS is adapted to utilize the functionality of
the TMU. Its behaviour is verified through simulation on Or1ksim, simulated hardware
and execution on a Cyclone V FPGA.
Analysis of runtime statistics shows that the module is working as expected through
all phases of verification, and that it can increase determinism, reliability and user control.
Tests have shown that the TMU is able to recover a faulting task from spin-locks and
aid in fail-soft operations for software faults. By placing the TMU inside the processor
core, a fixed overhead of 131 cycles is achieved during a context switch when no caches
are used. | |