Timothy Roscoe has been giving the following talk at three institutions in the US and Canada (Cornell University, University of Toronto and Waterloo University).
Title: Treating cores as devices
Power management, dark silicon, and partial failures mean that, in the future, computer hardware will most likely consist of a dynamically- changing set of heterogeneous processor cores. Contemporary operating system structures were not designed with this hardware model in mind, and have difficulty adapting to relatively simple concepts such as processor hotplug. Our work on meeting this challenge in the Barrelfish research OS has led us to treat cores as much as possible (but not entirely) like any other devices in the system. Several novel ideas make this possible: aside from the multikernel architecture itself, we leverage the externalization of kernel state through capabilities, and the concept of a "boot driver", which is the equivalent of a device driver for a processor core.
In this talk I will present our framework for managing a changing set ofcores in a multikernel OS, and some of the surprising consequences: individual kernels can be rebooted, replaced, or upgraded on the fly, cores and hardware threads can be temporarily turned into coprocessors and back again, and per-core OS state can be quickly moved around the hardware to minimize energy usage or enforce performance guarantees.