In cyber-physical systems, where embedded computation interacts with physical processes, correctness depends on timing behavior, not just functionality. For high confidence in the timing behavior of real-time embedded software, the underlying hardware must support predictable and isolated task execution. These properties are sacrificed in many conventional processors that use frequent interrupts and hardware prediction mechanisms to improve average-case performance. Mixed-criticality systems—where tasks with different levels of safety criticality are integrated on a single hardware platform to share resources and reduce costs—facilitate complex functionality but further complicate design and verification. The challenge is designing processor architectures that provide high confidence in software functionality and timing behavior without sacrificing processor throughput. This dissertation presents architectural techniques for task-level trade-offs between predictability, hardware-based isolation, and overall instruction throughput—facilitating the verification of safety-critical tasks and allowing software to meet precise timing constraints. Our processor design, named FlexPRET, uses fine-grained multithreading with flexible hard- ware thread scheduling and integrated timers to evaluate these techniques. With no restrictions on thread interleaving, the hardware thread scheduler executes hard real-time threads (HRTTs) at specific cycles for isolated and predictable behavior and allows soft real-time threads (SRTTs) to use both specific and spare cycles for efficient operation. A configurable version of FlexPRET is implemented in simulation and on FPGA using Chisel, a hardware construction language that generates both C++ and Verilog code. For a given program path at a constant thread scheduling frequency, the latency of every instruction is constant and known, and the precision of input/output (I/O) instruction timing is bounded. The comparison of FlexPRET with two baseline processors provides the FPGA resource costs of FlexPRET’s microarchitectural features. Using two example applications, we demonstrate a mixed-criticality deployment methodology that provides hardware-based isolation to critical tasks and improves overall instruction throughput by using spare cycles and software scheduling for less critical tasks. FlexPRET can also use software to perform multiple independent I/O operations instead of requiring hardware peripherals.




Download Full History