Processor virtualization divides a physical processor's time among a set of virual machines, enabling efficient hardware utilization, application security and allowing co-existence of different operating systems on the same processor. Through initially intended for the server domain, virtualization gains popularity also in embemmed systems, where it is mainly meant to isolate real-time from best effort applications, as they require different types of schedulers and performance guarantees. More-over, for design productivity and cost reasons, one would like to indepently design, test, and verify applications, then easily integrate them on a shared hardware platform. For best effort, this requires composable capacity, i.e. an application's number of processor cycles is independent of other applications. In real-time, performance prediction and guarantees preservation is crucial, thus the timing of an application's cycles should also be indepent, i.e. composable performance/timing. Virtualization is a good first step towards these, however existing approaches do not ensure timing composability. In this paper we propose a processor virtualization scheme with: (1) composable timing and capacity, and (2) different task schedulers per application. This scheme is based on: (1) a budget-based scheduler for composable capacity, plus (2) the ability to program application switching at fixed points in time, for composable timing. We implemented this scheme on an FPGA multiprocessor running a synthetic application and experiments show composability.
|Title of host publication||Proceedings of the 1st Workshop on Computer Architecture and Operating System Co-Design (CAOS), 25-27 January 2010, Pisa, Italy|
|Publication status||Published - 2010|