As chips have moved from homogeneous single core systems to much more complex, heterogeneous multi-core systems, the ability to create both uniform and efficient operating system services has begun to diminish. The importance of these services suggests that these primitives should no longer be virtual, but rather physical services built into modern computing devices. In this paper we outline some of the challenges involved in building traditional OS services in heterogeneous computing systems. We present a hardware-based solution that provides basic OS primitives to heterogeneous systems that are both efficient and uniformly accessible to heterogeneous compute elements. A prototype system utilizing a hardware-based microkernel is demonstrated that allows programmers to target systems with ISA-level heterogeneity using a familiar, uniform multithreaded programming model.
['Jason Agron', 'David L. Andrews']
Distributed Hardware-Based Microkernels: Making Heterogeneous OS Functionality a System Primitive