Federation: Out-of-Order Execution Using Simple In-order Cores for Improved Performance in Manycore ChipsReport
Manycore architectures with dozens, hundreds, or thousands of threads are likely to use single-issue, in-order execution cores with simple pipelines but multiple thread contexts per core. This approach is beneficial for throughput but only with thread counts high enough to keep most thread contexts occupied. If these manycore architectures do not want to be limited to niches with embarrassing levels of parallelism, they must cope with the case when thread count is limited: too many threads for dedicated, high-performance cores (which come at high area cost), but too few to exploit the huge number of thread contexts. The only solution is to augment the simple, scalar cores.
This paper describes how to create an out-of-order processor on the fly by �federating� each pair of neighboring, scalar cores.This adds a few new structures between each pair but otherwise repurposes the existing cores. It can be accomplished with less than 2KB of extra hardware per pair, nearly doubling the performance of a single, scalar core and approaching that of a traditional, dedicated 2-way out-of-order core. The key insights that make this possible are the use of the large number of registers in multi-threaded scalar cores to support out-of-order execution and the removal of large, associative structures. Federation provides a scalable, energy-efficient, and area-efficient solution for limited thread counts, with the ability to boost performance across a wide range of thread counts, until thread count returns to a level at which the baseline, multithreaded, �throughput mode� can resume.
All rights reserved (no additional license for public reuse)
Tarjan, David, Michael Boyer, and Kevin Skadron. "Federation: Out-of-Order Execution Using Simple In-order Cores for Improved Performance in Manycore Chips." University of Virginia Dept. of Computer Science Tech Report (2007).
University of Virginia, Department of Computer Science