文摘
As the computing industry enters the multicore era, exponential growth in the number of transistors on a chip continues to present challenges and opportunities to computer architects. This dissertation identifies and addresses one emerging issue in particular: that of dynamic heterogeneity, which can arise, even among physically homogeneous cores, from changing reliability, power, or thermal conditions, or different cache and TLB contents. This heterogeneity greatly complicates software's traditional task of assigning computation to cores because the conditions can change more rapidly than software can adapt.;This dissertation begins a push toward hardware taking a more active role in the management of its computation resources. This dissertation proposes hardware techniques to virtualize the cores of a multicore processor, allowing hardware to transparently remap any number of the virtual processors exposed even to a single operating system to any subset of physical cores. Multicore virtualization operates with minimal overhead, and is shown to enable three novel resource management applications.;In the first, intermittent faults are exposed as an emerging reliability challenge for computer systems. These faults, arising from a combination of physical variation and fluctuations in operating conditions, can cause certain cores to become unable to reliably execute for a short period of time. Multicore virtualization can quickly adapt to cores' changing capabilities, resulting in numerous performance and other benefits compared to existing techniques.;Multicore virtualization is then used to improve the scheduling of consolidated servers, allowing the cores of a chip to be dynamically partitioned among guest virtual machines. Compared to gang scheduling, dynamic partitioning provides higher throughput, lower transaction latency, and more isolation, yet can quickly adapt to bursts in demand and changing capabilities of the underlying hardware.;Finally, a Mixed-Mode Multicore (MMM) is proposed, which allows the simultaneous execution of applications that require high reliability, and those that require high performance. Though conceptually simple, several challenges arise, requiring the use of multicore virtualization and other techniques. The proposed MMM design is shown to improve overall system performance, compared to a traditional DMR system, by approximately 2 times when one extra-reliable and one extra-performance application are concurrently executing.