A survey of processors with explicit multithreading
Top Cited Papers
- 1 March 2003
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 35 (1) , 29-63
- https://doi.org/10.1145/641865.641867
Abstract
Hardware multithreading is becoming a generally applied technique in the next generation of microprocessors. Several multithreaded processors are announced by industry or already into production in the areas of high-performance microprocessors, media, and network processors.A multithreaded processor is able to pursue two or more threads of control in parallel within the processor pipeline. The contexts of two or more threads of control are often stored in separate on-chip register sets. Unused instruction slots, which arise from latencies during the pipelined execution of single-threaded programs by a contemporary microprocessor, are filled by instructions of other threads within a multithreaded processor. The execution units are multiplexed between the thread contexts that are loaded in the register sets.Underutilization of a superscalar processor due to missing instruction-level parallelism can be overcome by simultaneous multithreading, where a processor can issue multiple instructions from multiple threads each cycle. Simultaneous multithreaded processors combine the multithreading technique with a wide-issue superscalar processor to utilize a larger part of the issue bandwidth by issuing instructions from different threads simultaneously.Explicit multithreaded processors are multithreaded processors that apply processes or operating system threads in their hardware thread slots. These processors optimize the throughput of multiprogramming workloads rather than single-thread performance. We distinguish these processors from implicit multithreaded processors that utilize thread-level speculation by speculatively executing compiler- or machine-generated threads of control that are part of a single sequential program.This survey paper explains and classifies the explicit multithreading techniques in research and in commercial microprocessors.Keywords
This publication has 29 references indexed in Scilit:
- SMT layout overhead and scalabilityIEEE Transactions on Parallel and Distributed Systems, 2002
- Multithreaded ProcessorsThe Computer Journal, 2002
- The MAJC architecture: a synthesis of parallelism and scalabilityIEEE Micro, 2000
- One billion transistors, one uniprocessor, one chipComputer, 1997
- Converting thread-level parallelism to instruction-level parallelism via simultaneous multithreadingACM Transactions on Computer Systems, 1997
- Trace processors: moving to fourth-generation microarchitecturesComputer, 1997
- Exploiting instruction- and data-level parallelismIEEE Micro, 1997
- Compiler techniques for concurrent multithreading with hardware speculation supportPublished by Springer Nature ,1997
- MicroUnity's MediaProcessor architectureIEEE Micro, 1996
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985