Date of Graduation


Document Type


Degree Name

Doctor of Philosophy in Engineering (PhD)

Degree Level



Computer Science & Computer Engineering


David Andrews

Committee Member

John Gauch

Second Committee Member

Jackson Cothren

Third Committee Member

Miaoqing Huang


Applied sciences, Adaptive computing, FPGA, MPSoCs, Partial reconfiguration, Reconfigurable computing


The heterogeneity of multiprocessor systems on chip (MPSoC) has presented unique opportunities for furthering today’s diverse application needs. FPGA-based MPSoCs have the potential of bridging the gap between generality and specialization but has traditionally been limited to device experts. The flexibility of these systems can enable computation without compromise but can only be realized if this flexibility extends throughout the software stack. At the top of this stack, there has been significant effort for leveraging the heterogeneity of the architecture. However, the betterment of these abstractions are limited to what the bottom of the stack exposes: the runtime system.

The runtime system is conveniently positioned between the heterogeneity of the hardware, and the diverse mix of both programming languages and applications. As a result, it is an important enabler of realizing the flexibility of an FPGA-base MPSoC. The runtime system can provide the abstractions of how to make use of the hardware. However, it is also important to know when and which hardware to use. This is a non-issue for a homogeneous system, but is an important challenge to overcome for heterogeneous systems.

This thesis presents a self-aware runtime system that is able to adapt to the application’s hardware needs with a runtime overhead that is comparable to a naive approach. It achieves this through a combination of pre-generated offline data, and the utilization of runtime data. For systems with diminishing hardware, the results confirmed that the runtime system provided high resource efficiency. This thesis also explored different runtime metrics that can affect the application on a heterogeneous system and offers concluding remarks on future work.